MacBook 上 9B 模型 42 秒变 11 秒,4 倍加速能复现吗
Akshay 在 M5 MacBook Pro 上跑 Qwen3.5 9B,DFlash+Weaver 把同一 prompt 从 42 秒压到 11 秒,每次模型 pass 产出 7.5 个 token。两条命令能装,但 M2 Air 用户只看到 15.1 tok/s,争议集中在 acceptance rate、长上下文和 Weaver 的单独贡献。
Akshay 在 M5 MacBook Pro 上跑 Qwen3.5 9B,同一个 prompt,三种解码方式:无推测 42 秒,常规推测 30 秒,DFlash+Weaver 11 秒。Akshay 说这相当于约 4 倍加速,比常规推测快 2.6 倍。视频并排展示了三种方式。
推测解码不复杂:小模型先猜接下来几个 token,主模型一次把候选全验一遍。DFlash 这类快速 drafter 会并行猜每个位置,问题是每个猜测互相独立,位置 5 看不到位置 4 选了什么,前面一错,后面全丢。
Weaver 补的就是这个依赖关系。它是叠在 DFlash 上的一层 Transformer adapter,从左到右在 DFlash 的 top candidates 里挑,每个选择依赖上一个;它会长出一棵可能的延续树,主模型一次验证整棵树。Akshay 的 Mac 上,每次模型 pass 产出 7.5 个 token,常规方式只有 1 个。B200 GPU 上,Akshay 引用的论文报告 chat、math、code 解码快 4 倍。
TryMirai 把整套栈开源在 uzu 引擎里,面向 Apple Silicon。GitHub 仓库是 trymirai/uzu。
Akshay 给的两条命令:
brew install mirai
mirai --model trymirai/Qwen3.5-9B-M -m "Write a python function to merge two sorted lists"
评论区没有统一鼓掌。Kane Jin 在 M2 MacBook Air 24GB 上复现,Qwen3.5 9B、temperature 0、512 output tokens,warm-up 后中位数是 uzu 15.1 tok/s,MLX 14.8,llama.cpp 12.9,Ollama 8.3。Uzu 报告 512 output tokens 跨 513 次 verification pass,约 1 token/pass。他问是不是有配置步骤没开 speculation,还是加速主要只在 M5。
The Broke Vibe Coder 要求把变量拆开:uzu 不开推测、只开 DFlash、DFlash+Weaver,否则 4 倍结果说不清 Weaver 单独贡献多少。Nodelog 提醒,速度很吃 draft acceptance rate,应该在自己 prompt 上记录每步接受多少 token,不只看墙钟时间,还要对比 batch size 大于 1 的情况,因为目标模型进入 compute-bound 后增益会缩。Tom Sheffield 想看上下文持续增长的长多步任务,Aniket Tapre 问长代码输出里 draft 漂移后还能不能保持,Wecko AI 则问 27B 模型上能不能翻倍。The AI Engine Room 关心 Weaver adapter 在 Mac 上挨着 9B 模型放,会多占多少内存。
质量方面,Akesar 的解释是,按常规推测解码验证,答案质量不该下降,主模型仍会检查每个猜测 token,丢掉自己不会选的,变化只在速度。这个解释成立的前提是验证逻辑正确,acceptance rate 足够高。
Anirudh 的吐槽更直接:4 倍加速之后,agent 可以更快地自信犯错,反正没有 API 账单可以怪。Yuzu 也补了一刀:用生成一个合并两个有序列表的函数来证明 massive breakthrough。Actian for Developers 看到的是另一头,11 秒之后,本地 RAG 的慢点可能只剩 retrieval。
更值得看的是,这类结果通常不是通用承诺。单 prompt、单机器、特定量化格式,都会改变 acceptance rate。M2 Air 的数据已经说明,开源栈能装不等于 4 倍自动到手。uzu 值得试,先记录 acceptance rate、长上下文和长代码输出,再决定要不要把 4 倍写进自己的预期。
发布时间: 2026-10-31 02:37