思路:在CPU上,解码速度取决于每个token的活跃参数,而非总参数。我的目标是尝试在中等配置PC(无GPU)上以100tok/s运行一个10B模型。
摘要
提出了CPU解码速度取决于每个token的活跃参数而非总参数的见解,并提出一个使用三元权重和细粒度MoE的10B参数模型,以在中等配置PC上实现高token速率。报告了沙箱测量结果,显示在8.3M模型上速度从176 tok/s提升到848 tok/s,且质量损失极小。
在CPU上,batch 1受内存带宽限制。但如果 token/s = 带宽 / (每权重字节数 * 每个token的活跃权重数),那么总参数数量并不会减慢生成速度。因此,围绕每个token的一小组“活跃参数”来构建架构(三元权重和细粒度MoE),总容量可以增长而不影响速度。现在的新问题是:如果速度不是问题(105M和206M模型以相同的tok/s运行(预测739–1309 tok/s)),模型容量会随参数数量扩展,还是模型会因为专家增多而缺乏路由容量,变得“更笨”?我的测量结果:在Ryzen r5 3600X(单线程)上,引擎在8.3M沙箱模型上从176 tok/s提升到848 tok/s,使用了三元LUT MLP、激活跳过、确定性SSM扫描、双池MoE,仅增加了+0.00004 BPB的质量成本。(这里模型是缓存驻留的。)我在Kaggle的2x T4上启动了一个30M(11M活跃)模型的完整训练。运行前我进行了5项门控实验。四项通过,一项失败:使用不同分词器从更大的教师模型蒸馏,输给了简单的交叉熵(-0.0116 BPB,约相差2.3个sigma),因此我将配方改为以CE为主。这是一个我设想的100%透明项目。(8.3M沙箱之上尚未训练任何东西,10B是目标。)仓库在评论中。
相似文章
2倍 tok/s(在1块MI50上从19.4 tok/s提升到38.1 tok/s)尝试类似推测解码的假设……但不是用额外的侧模型,而是利用我可以同时运行多个计算,就好像内存里加载了两份Qwen3.6-27B一样——小量化不占用所有可用算力。
打包双推理(PTI)是一种通过单批解码中运行多个token序列来实现约2倍LLM吞吐量的技术,它利用了llama.cpp中的权重共享,无需草稿模型或额外VRAM。
极高的解码速度(tok/s)真的有用吗?
讨论:对于Qwen 3.5 397B或GLM-5.2等大模型,极高的解码速度(1k-10k tok/s)是否能解锁新的应用场景,还是更适合用来加载更大的模型。
@0x0SojalSec: 最终观点:腾讯最近发布了一个295B参数的模型,每个token仅激活21B参数。而大多数实验室仍在……
腾讯发布了Hy3,一个295B参数的MoE模型,每个token激活21B参数,在代理编程和工具使用任务上与更大的模型相竞争,并提供了Apache 2.0权重。
尝试预测下一个token会用到哪些MoE专家来加速CPU/GPU offload,得到了一些实际数据,这真的可实现吗还是我在浪费时间(30tg/s -> 150-200tg/s)
探索通过预测下一个token将使用的MoE专家来改进CPU/GPU offload,实现了30->150-200 tg/s的加速,并质疑实现可行性。
@iotcoi:Qwen3.6-27B-FP8 + Dflash + DDTree,256k 上下文,10 个智能体,单颗 49W GB10 上峰值 200 tokens/s,平均解码 136 tokens/s
量化版 27B Qwen3.6 在单颗 49W GB10 GPU 上借助 Dflash+DDTree 优化,256k 上下文、10 智能体并发,峰值达 200 tok/s,平均 136 tok/s。