先说数字

一个叫 ALoDLM 的开权重模型,放出来两档:1.7B 和 8B。思路是按 token 分配算力,难的 token 多算几轮,简单的 token 少算几轮。公布的成绩是 11 个基准上 1.7B 从 63.8 到 65.5,8B 从 78.5 到 80.3。吞吐那边的对比数字更吸引人:同尺寸下对比 vLLM 服务起来的 Qwen3-8B,在 GSM8K 上报到 2.7 倍。

两个数字放在一起,方向很清楚。能力涨的是零头,吞吐涨的是量级。这类模型的卖点是同样一台机器能多干多少活,不是能多答对几道题。

它改的不是参数量

常规语言模型从左往右逐字往外吐,第 n 个字必须等第 n-1 个字出来。另一条路线是把整段输出一次铺开,再反复修正,几轮之后收敛。后者的自由度落在「修正」这一层:一轮可以对所有位置做,也可以只挑一部分位置做。

ALoDLM 动的就是这里。哪个 token 已经稳了就提前结束它的循环,把省下来的轮次让给还没收敛的那些。参数量一个没变,变的是每个位置算几轮。

这事容易和另外两种省算力的做法混成一笔账,分开看更清楚:

  • MoE 解决的是「这次调用用到哪些参数」,总参可以很大,激活的只是其中一小块;
  • 投机解码省的是串行步数,先让便宜模型出草稿,再让大模型验收;
  • 按 token 循环省的是「已经想明白的位置不用再想」。

那两分要不要当回事

涨 1.7 和 1.8 分属于小幅。想判断这两分是真的还是噪声,至少看三件事。

基准的口径。11 个基准是汇总分还是单项平均,单项里有没有一边涨一边跌。汇总涨、单项大面积持平,说明增益集中在少数任务上,换到你的场景未必落得着。

基线是否公平。两边是不是同一套解码参数、同一套提示模板。评测里最常见的偏差,就是其中一方的参数被认真调过,另一方直接用默认值。

量级对比。同一个家族里 1.7B 到 8B 差了 15 分上下,架构带来的 1.7 分跟这个差着数量级。它能帮你决定同一档里选谁,决定不了你该选哪一档。

2.7 倍的边界在哪

吞吐和延迟是两件事。吞吐上的倍数通常出现在大 batch、输出偏短的负载里,GSM8K 正是这种:题干短、答案短、每一步都要算。你的活如果是长文档生成,或者请求来得稀、batch 堆不起来,这个倍数会缩水。

另外这次对比跨了模型族:一边是全新路线,一边是 Qwen3-8B 配 vLLM。模型换了,服务栈也换了,两个变量叠在一起,比值不能直接算成架构的收益。干净的同族对比应该是同尺寸、同服务栈、同量化,只动一个变量。

真要核实一个吞吐数字,问这几项就够:什么卡、几张;batch 开到多大;量化了没有;输入输出各多长;prefill 和 decode 各占多少时间。这几项不交代,倍数就没有可比性。

想换的话,先自己验一遍

换模型前的验证顺序
  1. 1切任务切片从真实流量里挑一小段有代表性的样本,别用公开榜单
  2. 2跑基线记下吞吐、延迟、成本,以及答错的那批样本长什么样
  3. 3只换一处一次只动一个变量,模型或服务栈二选一
  4. 4同批重跑样本、参数、硬件都别变,否则对比无效
  5. 5看失败样本分数持平不算数,错的类型换了一批才算真变化
走完五步再决定动不动作

这套顺序的价值在最后一步。新架构经常出现总分持平、错题换了一批的情况,那说明能力边界确实挪动了,只是还没挪到你关心的方向上。

什么时候不值得换

瓶颈在正确率上。1.7 分补不上这个缺口,该做的是往上一档选模型,或者把评测集里真正难的样本挑出来单独处理。

输出以长文为主。循环加去噪这套机制在长输出上的收益得重新测一遍,宣传里的数字大多来自短答任务。

依赖现有推理栈。连续批处理、前缀缓存、KV cache 这些优化是照着自回归结构设计的,新路线不一定能直接吃上,实际吞吐可能低于纸面。配套的量化工具、微调链路、部署框架成熟度,也都是要算进去的成本。

口径

不问参数多大,问这一版把哪个指标挪动了。ALoDLM 这份答卷是把吞吐推上去、能力守住,适合放进量大但容错高的环节。要是痛点在答不对,这份成绩单回答不了。