返回 文章 apply CMS 文章

GLM-5.3 vs Flash:蒸馏模型成本降17倍,能力损失不足3个百分点

蒸馏版 Flash 模型在 DeepSWE 上以 17 倍低成本实现接近完整模型的性能,适合成本敏感场景。

GLM-5.3蒸馏模型DeepSWE成本优化
成长分 / 100 71 综合收获、行动、留存与影响

GLM-5.3 vs Flash:蒸馏模型成本降17倍,能力损失不足3个百分点
为什么值得读了解蒸馏模型在真实编码基准上的性能差距,并非简单的能力下降,而是可靠性损失。

获取具体的成本对比数据(每次 rollout 0.24 美元 vs 3.99 美元)和级联路由策略(80.9% 通过率,成本 1.70 美元)。

关键洞察
  1. Flash 在 pass@1 上落后 5.6 个百分点,但 pass@4 时差距缩小至 2.6 个百分点,表明损失主要是首次尝试的可靠性。
  2. Flash 保留了完整模型解决 94% 的任务能力,但稳定性下降,且无法将额外努力转化为成功(努力回报率 46% vs 61%)。
  3. Flash 在并发、Python、数据建模等领域表现更优,但在 JavaScript 和查询方面较弱(样本小,需谨慎解读)。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:14358

核心要点

先跑 GLM-5.3 Flash,只有在测试拒绝其答案时才升级到完整的 GLM-5.3。这种级联方式能解决 80.9% 的 DeepSWE 任务,每个任务成本 \$1.70。单用 GLM-5.3 能解决 69.0%,成本 \$3.99。通过率高出 12 个百分点,成本低 57%。如果只能选一个模型,那就选 Flash:它在首次尝试上落后 5.6 个百分点,到第四次尝试时只落后 2.6 个百分点,因为蒸馏去掉的是可靠性,而可靠性正是重试能够买回来的东西。

  • 差距是首次尝试效应。pass@1 为 69.0% 对 63.4%,pass@2 相差四个百分点,pass@4 相差 2.6 个百分点(87.6% 对 85.0%)。
  • 价格差距是 17 倍。每次 rollout 成本 \$3.99 对 \$0.24。每花 \$100,Flash 能解决 264 个任务,而完整模型只能解决 17 个。
  • 能力保住了,一致性没有。完整模型解决的 99 个任务中,Flash 仍能解决 93 个。它让 15 个母模型表现不稳定的任务变得稳定,还攻克了 3 个母模型完全过不去的任务。
  • Flash 无法把投入的努力转化为成功。在表现不稳定的任务上,较长的那次运行恰好是通过的那次,完整模型的比例为 61%,Flash 为 46%,低于抛硬币的 50% 水平。
  • 有一处确实退步了:谨慎程度。Flash 在 6.9% 的 rollout 中会破坏原本已通过的基线测试,完整模型则为 4.4%,因此应当用回归测试来把关。

现已上线 · 美国托管

在 Together AI 上运行 GLM 5.3 Flash

每次 rollout 便宜 17 倍,支持函数调用和 JSON 模式,兼容 OpenAI 的 API,由美国基础设施提供服务。

查看模型

‍

GLM-5.3 与 GLM-5.3 Flash 是同一家族的两种规格。GLM-5.3 是完整的开放权重模型;GLM-5.3 Flash 是它的蒸馏版兄弟,rollout 价格仅为前者的十七分之一。对于 flash 类变体,每个团队都会问:它牺牲了多少质量?在 DeepSWE 上(这是一个跨多种任务类型和编程语言来测试模型软件工程能力的基准测试),答案比 pass@1 的表面差距所暗示的要小,因为 Flash 并不是完整模型的等比例缩小版。它是对能力的重新分配,而它真正失去的东西,并不是头条数字所指向的那个。

DeepSWE · 一览

GLM 5.3 与 GLM 5.3 Flash 的核心数据

模型 pass@1 平均成本 每 $100 解决数 平均输出 token 平均步数
GLM 5.3 [max] 69.0% ± 2.7 $3.99 17 80k 125
GLM 5.3 Flash [max] 63.4% ± 4.1 $0.24 264 73k 123

113 个 DeepSWE 任务 · 每种配置 4 次试验 · 均为最高强度(max effort) · 共 900 次 rollout

我们在全部 113 个 DeepSWE 任务上,分别用 GLM-5.3(max)和 GLM-5.3 Flash(max)各跑了四次试验,数据来自已发布的逐次试验记录:共 900 次 rollout,其中完整模型 452 次,Flash 448 次。下文把完整对比和对蒸馏的“解剖”放在一起呈现。以下所有数字均来自这次运行,因此可能与其他公开的 GLM-5.3 与 GLM-5.3 Flash 评分卡有所不同。

DeepSWE 成绩单:pass@1 与 pass@k

单次尝试时,完整模型领先 5.6 个百分点,69.0% 对 63.4%。这一领先是首次尝试带来的假象:到 pass@2 缩小为四个百分点,到 pass@4 缩小为 2.6 个百分点,即 87.6% 对 85.0%。蒸馏让 Flash 损失的更多是单次尝试的打磨程度,而不是能力上限。对于任何 best-of-k 的工作负载,实际质量损失都不到三个百分点,而价格只有十七分之一。从 5.6 缩小到 2.6,是理解究竟发生了什么变化的第一条线索,下一节会加以解释。

蒸馏真正的代价:一致性,而非能力

对每个模型,把每个任务分为三类:死胡同(4 次全部失败)、不稳定(部分通过)或稳固(全部通过),然后追踪完整模型的任务在 Flash 中落到哪里。

右上角的那个零是本节的关键:在完整模型四次全部通过的 48 个任务中,没有一个在 Flash 中变得无法解决。一半依然完全稳固,另一半只是失去了一致性。覆盖率保留情况说明了同样的事:完整模型至少解决一次的 99 个任务中,Flash 仍能解决 93 个,即 94%。蒸馏并没有去掉解决这些任务的能力,去掉的是可靠性。与能力损失不同,一致性损失恰恰是重试可以弥补的,这就是 pass@4 的差距远小于 pass@1 差距的原因。

成本对比:GLM-5.3 与 GLM-5.3 Flash 的定价和速度

\$0.24 对 \$3.99,Flash 每次 rollout 便宜 17 倍:每 \$100 解决 264 个任务,完整模型只有 17 个。常见的 flash 取舍——每个 token 更慢——并没有出现。Flash 反而更快,平均 26 分钟,完整模型为 35 分钟,而且它并不是靠偷工减料做到的:两者运行的步数相同,123 步对 125 步。全部速度差异来自每步延迟:Flash 每步 12.5 秒,完整模型 17.0 秒,较小的模型在较小的工作窗口(平均峰值上下文 145k,对完整模型的 155k)中执行每一步快了约 27%。成本更低、速度更快、思考时长相同。

一致性去哪了:蒸馏从边缘开始侵蚀

按完整模型解决各任务的可靠程度对任务分组,然后测量 Flash 在每组中的平均通过率。

结果是一条清晰的单调梯度:完整模型对某个任务把握得越牢,Flash 保留的这项能力就越多。蒸馏从能力分布的边缘开始“啃食”,而核心保持完整。它是在锐化模型能做与不能做之间的边界,而不是把整体能力轮廓等比例缩小。

GLM-5.3 Flash 失去了把一次艰难尝试推向成功的能力

这是不稳定性背后的机制,也是这项研究中最出人意料的结果。在一个表现不稳定的任务上,问题在于较长的那次运行是否往往就是成功的那次。任务相同、难度相同,只有运行不同。

  • 完整版 GLM-5.3:在 61% 的不稳定任务上,通过的那次运行比失败的那次用了更多步数。完整模型能够靠思考找到解法,投入的努力会转化为成功。
  • GLM-5.3 Flash:46%,低于抛硬币的水平。不稳定任务能否成功,基本与 Flash 运行多久无关。

所以,蒸馏不只是让模型每一步稍微差了一点,它还剥夺了模型利用额外投入的能力。这也不是漫无目的的探索:Flash 在同一任务内的步数方差其实略低于完整模型,变异系数为 0.12 对 0.14。它每次运行的长度大致相同,有时成功,有时失败。它失去的是那种搜索能力,而正是这种能力让完整模型能把一次艰难的尝试变成已解决的任务。

各自的优势所在:按领域和编程语言划分

损失只是账本的一半。Flash 在某些特定方面反而找回了能力:

  • 完整模型 15 个不稳定的任务在 Flash 中变得稳固,也就是稳定了母模型原本表现摇摆的工作。
  • Flash 攻克了 3 个完整模型完全过不去的任务。
  • 按领域看,它并非处处落后:并发与持久性 +8(62 到 70),Python +5(66 到 71),数据建模 +4(79 到 83),协议 +3(44 到 48)。它在 JavaScript、查询与配置、有状态响应式、Rust 和语言内部实现上落后。

在八个领域中,完整模型赢下 5 个,Flash 赢下 3 个;在语言方面,完整模型赢下四种(Go、TypeScript、JavaScript、Rust),Flash 赢下一种(Python)。完整模型在重推理和重 JavaScript 的工作上占优;Flash 则在系统类和 Python 工作上占优。单看 Flash 的 JavaScript 数字会觉得惊人,但它只基于五个任务的样本,并且由单个任务驱动,因此应视为趋势而非定论。更宏观的解读是:蒸馏重塑了能力轮廓,而不是简单地把它整体压低。

精度对覆盖面

在覆盖率与可靠性的平面上,完整模型位于右上方:覆盖率 87.6%、可靠性 78.8%,而 Flash 为 85.0% 和 74.7%。完整模型有 48 个任务四次全过,Flash 为 39 个;完整模型有 14 个任务全军覆没,Flash 为 17 个。蒸馏在两个维度上都削掉了一点,但 Flash 在成绩单上的逐次运行方差增大的幅度超过了其均值下降的幅度(pass@1 标准差 4.1 对 2.7),这与前面讲的一致性问题是同一个故事的汇总视角。

唯一真正的退步:附带破坏

并非所有方面净结果都对 Flash 有利。除了准确率和一致性之外,蒸馏还使模型在避免附带破坏方面明显不那么小心。以未出错的 rollout 中至少破坏一个原本已通过的基线测试的比例来衡量:

  • GLM-5.3:4.4%
  • GLM-5.3 Flash:6.9%

Flash 在动手时扰乱正常代码的可能性高出 50% 以上。这是它唯一一个不只是成本更低、而是确实更差的维度,也是唯一需要加护栏的地方:在未经审查就接受 Flash 的 diff 之前,先运行完整的回归测试套件。

在两者之间路由:同家族级联

由于 Flash 放弃的质量很小且大多可以挽回,而它节省的价格很大,同家族级联就是一笔实打实的成本削减。先运行 Flash,只有在验证器拒绝答案时才升级到完整模型:每个任务 \$1.70,通过率 80.9%,高于完整模型自身单次尝试 69.0% 的 pass@1,而价格不到其一半。两者的逐任务相关系数为 0.61,并集覆盖 113 个任务中的 102 个(90.3%),因此低成本的第一阶段清掉了队列中的大部分任务,完整模型只需处理剩下的难题,并因此获得第二次独立尝试。

这意味着什么

把 GLM-5.3 蒸馏成 GLM-5.3 Flash 是手术刀,而不是大锤。它保留了能力,换掉的是一致性:完整模型的稳固任务中没有一个变得无法解决,pass@4 的差距是 2.6 个百分点,而不是 5.6。它去掉的是让模型能把艰难尝试推向成功的搜索能力,努力的回报率从 61% 降到 46%,这才是不稳定性的真正来源。它重塑了能力轮廓而不是缩小它:在并发、Python、数据建模和协议上有所增益,在 JavaScript 和查询类工作上有所让步;而这些结果中最吓人的头条——JavaScript 下滑——只是五个任务样本中单个任务造成的效应。它唯一真正的退步是谨慎程度:破坏基线测试的比例为 6.9%,而完整模型为 4.4%。

经济账压倒其余一切:每次 rollout 成本低 17 倍,每 \$100 解决 264 个任务,实际耗时更短,而 best-of-k 质量只损失不到三个百分点。对于受成本和吞吐量约束的工作,以及任何 best-of-k 流水线,默认使用 GLM-5.3 Flash。当任务以 JavaScript 或查询为主,或需要首次尝试就可靠时,再选用完整的 GLM-5.3。用回归测试为 Flash 把关。而如果你本来就在用完整模型,在它前面加一层 Flash,可以让账单降低一半以上。

现已上线 · 美国托管

在 Together AI 上运行 GLM 5.3 Flash

每次 rollout 便宜 17 倍,支持函数调用和 JSON 模式,兼容 OpenAI 的 API,由美国基础设施提供服务。

查看模型

数据表:GLM-5.3 与 GLM-5.3 Flash 完整结果

DeepSWE · 数据表

完整对比,逐项指标

指标GLM 5.3 (max)GLM 5.3 Flash (max)
pass@1(官方)69.0%63.4%
pass@2 / pass@3 / pass@481.1 / 85.4 / 87.6%77.1 / 82.1 / 85.0%
覆盖率 / 可靠性87.6 / 78.8%85.0 / 74.7%
稳固(4/4)/ 死胡同(0/4)48 / 1439 / 17
每次 rollout 成本$3.99$0.24
每 $100 解决数17264
平均分钟数 / 步数 / 每步秒数35 / 125 / 17.0s26 / 123 / 12.5s
平均输出 token / 峰值上下文80k / 155k73k / 145k
失败回归占比 / 基线破坏率61% 接近,11% / 4.4%61% 接近,13% / 6.9%
完整模型稳固、但在 Flash 中变得无法解决的任务48 个中的 0 个
不稳定任务上的努力回报(更深入的运行获胜)61%46%
覆盖率保留(占完整模型解决的 99 个)93 (94%)
领先的领域数(共 8 个)53
领先的语言4(Go、TS、JS、Rust)1(Python)
Flash 的增益(Flash > 完整模型)并发 +8,Python +5,数据 +4,协议 +3
逐任务相关系数 / 并集0.61 / 113 个中的 102 个(90.3%)
级联 Flash → 完整模型(准确率 / 成本)80.9% / $1.70(对比单用完整模型 69.0% / $3.99)
基础设施错误10

DeepSWE v1.1 · 113 个任务 × 每种配置 4 次试验 · 均为最高强度(max effort) · Flash 成本使用其当前每任务平均 $0.24

方法与注意事项

  • 数据:DeepSWE v1.1 导出数据,113 个任务,每种配置 4 次试验,均为最高强度。GLM-5.3 有 452 次试验,其中 1 次基础设施错误;GLM-5.3 Flash 在 452 次中有 448 次,0 次基础设施错误,因此少数任务只有 3 次 Flash 试验,分类和通过比例均按每个任务实际的试验次数计算。
  • 分类:死胡同 = 0 次通过,稳固 = 所有试验均通过,不稳定 = 部分通过。覆盖率 = 至少解决一次。保留率分箱按完整模型的逐任务结果对任务分组。
  • 努力回报:在每个不稳定任务内,比较通过试验与失败试验的平均智能体步数,并报告通过试验步数多于失败试验的不稳定任务所占比例。这样可以控制任务难度。行为方差指任务内部步数的变异系数。
  • 附带破坏:未出错的 rollout 中存在被破坏的基线测试(p2p < 1)的占比。每步耗时为平均时长除以平均步数。步数、token、分钟数和峰值上下文均为平均值,与 DeepSWE 网站一致。
  • Flash 成本使用其当前每任务平均 \$0.24。领域采用基于产物(artifact)的分类体系。两批 GLM-5.3 的逐轮轨迹 JSON 均未出现在公共 CDN 上,因此所有结果都是索引级别的。
  • 按语言的拆分样本较小。尤其是 JavaScript 只基于五个任务,因此单个任务的变动就会让该单元格大幅摆动。

常见问题

GLM-5.3 Flash 和 GLM-5.3 一样好吗?

很接近,而且允许的尝试次数越多越接近。GLM-5.3 在 pass@1 上领先 5.6 个百分点(69.0% 对 63.4%),但到 pass@4 差距降为 2.6 个百分点(87.6% 对 85.0%)。GLM-5.3 四次全过的 48 个任务中,没有一个对 Flash 变得无法解决,所以损失的是可靠性,而不是能力。

GLM-5.3 Flash 比 GLM-5.3 便宜多少?

在我们的运行中,最高强度下 GLM-5.3 Flash 每次 rollout 成本为 \$0.24,GLM-5.3 为 \$3.99,大约便宜 17 倍。按每个已解决任务计算,Flash 每 \$100 解决 264 个任务,完整模型为 17 个,每美元完成的已解决工作量约为其十六倍。

写代码方面,GLM-5.3 和 GLM-5.3 Flash 哪个更好?

取决于工作内容。GLM-5.3 在五种语言中领先四种(Go、TypeScript、JavaScript、Rust),并在 8 个领域中领先 5 个,对于首次尝试的可靠性和重推理的任务,它是更强的选择。GLM-5.3 Flash 则在并发与持久性(70 对 62)、Python(71 对 66)、数据建模(83 对 79)和协议工作(48 对 44)上领先。

我应该在 GLM-5.3 Flash 和 GLM-5.3 之间做路由吗?

如果你能验证结果,就应该。先运行 GLM-5.3 Flash,在测试套件拒绝其输出时再升级到 GLM-5.3,每个任务 \$1.70 即可达到 80.9%,优于单用 GLM-5.3(\$3.99 达到 69.0%),而价格不到一半。逐任务相关系数为 0.61,两者合计覆盖 113 个任务中的 102 个。

GLM-5.3 Flash 的输出可以不经审查直接接受吗?

请加上回归关卡。在未出错的 rollout 中,GLM-5.3 Flash 有 6.9% 会破坏至少一个原本已通过的基线测试,GLM-5.3 为 4.4%,因此它扰乱正常代码的可能性高出 50% 以上。在接受 diff 之前运行一次完整的回归测试,可以弥补其中的大部分差距。

DeepSWE 上的 pass@k 是什么?

pass@k 衡量对某个任务的 k 次尝试中,是否至少有一次通过了隐藏的测试套件。pass@1 奖励一次就做对;k 越大,越奖励那些经过多次尝试最终能得到解法的模型。随着 k 增大,GLM-5.3 Flash 的差距会缩小,这就是它适合容忍重试的流水线的原因。