加了 1 个参数,GLM-5.3-Flash 便宜了 6.3 倍

我们问了 GLM-5.3-Flash 一个非常简单的问题:SSH 默认使用哪个端口。它用了 625 个输出 Token,最后才给出答案:"22"。

这不是我们特意挑出来的极端案例,而是 5 次测试的中位数。Qwen3.8-Max 回答同一个问题只用了 156 个 Token。Flash 这些调用中,我们支付的大部分输出成本,其实都花在了用户根本看不到的推理过程上,而这个问题最终的答案只有两个字符。

结果发现,解决办法只需要改一行参数。在请求里加入 reasoning_effort: "low",同一个问题就只需要 155 个 Token。GLM-5.3-Flash 默认会使用最高的推理强度,但仅从请求本身你根本看不出来。只增加这一个参数,就让 Flash 在我们的整套 Prompt 测试中便宜了 6.3 倍

这一点对大多数人来讲很重要,因为模型是按 Token 收费的,但价格页面不会告诉你一个模型通常会生成多少 Token。GLM-5.3-Flash 的输出价格只有 Qwen3.8-Max 的十二分之一,也只有 Kimi K3 的三十分之一。为了看看这些纸面价格比例落到真实请求里到底是什么样,我们在 DigitalOcean 无服务器推理上实际跑了 2700 次 API 调用。

使用默认配置时,Flash 相比 Qwen 的成本优势是 2.3 倍,而不是 12 倍。显式配置后,这个优势变成了 14.5 倍;相比 Kimi K3,则达到 106 倍。这几个数字之间的差距,只来自一个参数。本文后面会完整讲清楚我们是怎么找到它的,包括一开始走错的那条路。

整个测试总共花了 14.75 美元。下面所有结果都可以通过这个代码仓库(github.com/Jameshskelton/GLM-Flash-Analysis)复现,包括 Prompt、测试脚本、原始日志,以及重新生成文中所有图表的脚本。

GLM-5.3-Flash 是什么:3200 亿参数,每个 Token 激活 180 亿,采用 MIT 许可证

GLM-5.3-Flash 是 Z.ai GLM-5 系列中首个原生多模态模型,采用 MIT 许可证发布。它并不是在 GLM-5.2 基础上做的一次后训练更新,而是从一个重新训练的基础模型开始,整个架构和训练方案都围绕效率进行了重新设计。

最值得关注的架构数字,也是和成本最相关的数字,是:总参数量 3200 亿,但每个 Token 只激活 180 亿参数。 Z.ai 表示,GLM-5.3-Flash 在多项 Benchmark 上超过 GLM-5.2,而价格只有后者的十分之一;同时在代码和 Agent 任务上接近 Claude Opus 4.8,例如 Terminal-Bench 2.1 得分 84.3,DeepSWE 得分 63.4。

这主要由两项架构变化推动。第一项是将稀疏注意力与线性注意力结合起来的混合注意力设计,这是 GLM 系列首次采用这种架构,目标是在保留长上下文能力的同时,降低长上下文推理成本。第二项是 Manifold-Constrained Hyper-Connections,Z.ai 用它来提升模型扩展效率。这两项设计都建立在一个包含 30 万亿 Token 的多模态预训练语料之上。

如果把它和 DigitalOcean 无服务器推理 最近上线的其他开放权重模型放在一起看,最有意思的是它的计算规模。Qwen3.8-Max 是一个 2.4 万亿参数 的模型,每个 Token 激活 950 亿参数 ;Kimi K3 的规模更大。而 Flash 每个 Token 只激活 180 亿参数------大约只有 Qwen 激活参数量的五分之一,相比 Kimi 则更低得多------但它在 Artificial Analysis Intelligence Index 上的得分几乎和 Kimi K3 Max 一样。

这就是 GLM-5.3-Flash 的核心卖点:以远低于传统大模型的单 Token 计算量,提供接近前沿模型的能力。这也是为什么 DigitalOcean 可以把它的输入价格定在 0.15 美元 / 百万 Token ,而 Kimi 则是 3.00 美元 / 百万 Token

这个卖点本身确实成立,对应 Benchmark 数据也来自 Z.ai 官方。但有一个数字几乎没人会公布:一个模型为了得到答案,到底会使用多少 Token。而我们最终发现,相当一部分纸面成本优势,恰恰消耗在这里。

我们如何测量 DigitalOcean 无服务器推理上的实际成本

DigitalOcean 无服务器推理上有三个开放权重模型:glm-5.3-flashqwen3.8-maxkimi-k3。它们在 DigitalOcean 上每百万 Token 的价格如下:

模型 输入 输出 缓存输入
glm-5.3-flash 0.15 美元 0.50 美元 0.03 美元
qwen3.8-max 2.00 美元 6.00 美元 0.20 美元
kimi-k3 3.00 美元 15.00 美元 0.30 美元

我们准备了两组 Prompt。第一组包含 24 个开放式问题,分为三个难度层级:Tier 1 是类似"SSH 默认端口是什么"这样的简单查询问题;Tier 2 是中等难度分析问题,比如为什么批处理能提高吞吐量,却不一定降低单次请求延迟;Tier 3 则是带多个约束条件的复杂问题,例如在固定预算下选择部署拓扑。所有问题都没有指定输出格式,也没有 System Prompt 和采样参数。第二组包含 20 个有确定答案的任务,用来检查更低成本是否会以牺牲正确率为代价。

每个 Prompt 都会针对每个模型运行 5 次,而且执行顺序随机化。

在看数据之前,需要先说明一个背景。Artificial Analysis 在 Intelligence Index 上给 Kimi K3 和 GLM-5.3-Flash 的评分都是 57。两个模型在同一个独立综合 Benchmark 上得分一样,但输入价格相差 20 倍,输出价格相差 30 倍。这是第三方测量结果,我们没有自行验证。不过,这意味着真正值得问的问题并不是"哪个模型更聪明",而是"它们各自回答一个问题到底要花多少钱"。

GLM-5.3-Flash 实际成本只比 Qwen3.8-Max 低 2.3 倍,而不是 12 倍

模型 官方输出价格 实测单次请求成本 纸面价格比 实测价格比
glm-5.3-flash 0.50 美元 / 百万 Token 0.00156 美元 1 倍 1 倍
qwen3.8-max 6.00 美元 / 百万 Token 0.00361 美元 12 倍 2.31 倍
kimi-k3 15.00 美元 / 百万 Token 0.02661 美元 30 倍 17.01 倍

Flash 依然是最便宜的,而且差距很明显。但如果你只是把 Qwen 的单 Token 价格除以 12 来估算基础设施预算,那么最终结果会偏差超过 5 倍,而且偏差方向对你最不利。

Kimi 的价格优势缩水得没那么明显:纸面上是 30 倍,实际是 17 倍。Qwen 则缩水得更多:纸面 12 倍,实际只剩 2.3 倍。这种不对称是一个重要线索,而原因就藏在输出长度里。

为什么:GLM-5.3-Flash 的输出 Token 是 Qwen3.8-Max 的 4 倍以上

在完全相同的 Prompt 下,而且没有给任何模型指定输出格式时,输出 Token 中位数如下:

模型 Tier 1(简单) Tier 2(中等) Tier 3(困难)
glm-5.3-flash 625 3141 5018
qwen3.8-max 156 645 886
kimi-k3 456 2006 1961

在简单问题上,Flash 输出的 Token 是 Qwen 的 4.0 倍;到了困难问题,这个比例达到 5.7 倍。这基本已经解释了大部分成本差距。一个每 Token 便宜 12 倍、但要多用 5 倍 Token 的模型,实际当然不可能仍然便宜 12 倍。

这些 Token 都去了哪里?Flash 和 Kimi 都会把推理过程单独放在 reasoning_content 字段里,因此我们可以直接统计。下面是输出 Token 中用于推理的比例中位数:

模型 Tier 1 Tier 2 Tier 3
glm-5.3-flash 72% 81% 84%
kimi-k3 65% 77% 82%
qwen3.8-max 默认关闭思考模式

也就是说,输出账单里大约三分之二到六分之五的 Token,都是用户最终看不到的推理内容。在 Tier 1 和 Tier 2 中,Flash 的推理占比还是三个模型里最高的,而且随着问题难度提高,这个比例还会继续上升,而不是保持不变。

尾部情况比中位数看起来更夸张。Flash 的平均输出长度是 3111 Token,但中位数只有 1409,变异系数超过 1.0。我们记录到最长的一条 Response 达到 15,006 Token,其中 94.7% 都是推理 Token ,它回答的是一个部署架构问题。单独这一条 Response 就花了 0.00753 美元,是本次研究中 Flash 平均单次请求成本的 4.8 倍、简单问题中位成本的 24 倍,也是 reasoning_effort: low 下平均请求成本的 30 倍。

这也是为什么本文一直使用中位数,而不是平均值。平均值在这里既不能让数据更好看,也会误导读者。

enable_thinking 在 GLM-5.3-Flash、Qwen3.8-Max 和 Kimi K3 上的行为完全不同

DigitalOcean 的 API 端点兼容 OpenAI API,并且会转发 chat_template_kwargs,因此你可以传入 enable_thinking: false,让模型尝试跳过推理过程。很多文章都会直接把它当作关闭思考模式的开关,我们一开始也是这么做的。

我们让每个模型把完整 Prompt Set 各跑了三遍:一次完全不发送思考参数,一次将 enable_thinking 设置为开启,一次设置为关闭。结果,同一个参数在三个模型上的行为完全不同。

在 GLM-5.3-Flash 上,它基本只是改变了推理内容展示的位置。 把它设为 false 之后,reasoning_content 字段确实变空了,所以日志里看不到推理过程了。但输出 Token 反而增加了 20.9% ,成本也增加了 11.1%

推理并没有停止,只是跑进了用户能看到的答案里。比如,在思考模式理论上已经关闭的情况下,模型回答部署拓扑问题时,开头是:

Let me analyze this problem carefully. The setup: - 70B model - Peak traffic: 40 requests/second...

再比如,回答"TTFT 是什么缩写"这种简单问题时:

The user is asking about "TTFT" in the context of LLM inference... Let me think about what I know about TTFT:

我们至少在 120 条 Response 中的 103 条里检测到了残留在可见答案中的 Chain-of-thought。这个检测使用的是关键词启发式规则,因此应该把 103 看作下限,而不是精确总数。在 40 条简单问题中命中了 38 条,在 40 条困难问题中命中了 31 条。

在 Kimi K3 上,同一个参数则能正常生效。 输出 Token 下降了 67.9% ,成本下降了 75.5%。每次调用的输入额外 Token 也从 99 个降到 32 个,因为 Chat Template 中的推理模板同样被移除了。

在 Qwen3.8-Max 上,思考模式默认就是关闭的。 DigitalOcean 当前就是以这个配置提供 Qwen。把思考模式打开后,输出 Token 增加了 429% ,成本增加了 508%

所以,enable_thinking 并不是一个可以跨模型直接复用的统一参数。在一个模型上,它可以省 75%;在另一个模型上,它会让成本提高约 5 倍;到了第三个模型,它除了改变你能不能看到推理过程之外,几乎什么也没改变。

而对于 GLM-5.3-Flash 来说,这甚至根本不是正确的控制参数。Model Card 里其实写了另一个参数,只是我们一开始没有仔细看到。

GLM-5.3-Flash 的 reasoning_effort 默认是 max,设置成 low 后成本降低 84%

GLM-5.3-Flash 通过 reasoning_effort 控制推理强度,可设置为 lowhighmax。Model Card 明确说明:如果不传这个参数,默认就是 max。我们针对同样的 24 个 Prompt,把三个等级都测试了一遍。

设置 输出 Token 中位数 单次请求成本 相比默认配置
未设置(默认) 1409 0.001564 美元 1.00 倍
reasoning_effort: max 1434 0.001526 美元 0.98 倍
reasoning_effort: high 580 0.000384 美元 0.25 倍
reasoning_effort: low 414 0.000250 美元 0.16 倍

这里有两个关键结果。

默认设置确实就是 max。 对同一个 Prompt 和同一次重复测试做配对比较后,默认配置和显式 max 的中位比值是 0.984。也就是说,每一个没有额外配置的 GLM-5.3-Flash 请求,都会使用它最昂贵的推理强度。

降低推理强度可以节省 4~6.3 倍成本。 low 相比默认配置降低了 84% 的成本。这是整个研究中我们测到的最大单项优化幅度,甚至比直接更换模型的影响还大。

而且这种变化并不是统一压缩,而是会根据难度自动调整,这其实正是我们希望看到的行为。下面是不同难度下推理 Token 占比的中位数:

设置 Tier 1(简单) Tier 2(中等) Tier 3(困难)
默认 72% 81% 84%
high 4% 18% 47%
low 3% 35% 40%

low 下,简单问题上的推理基本消失了------推理 Token 只占输出的 3%,而默认设置是 72%。到了困难问题,模型仍然会进行较多推理,大约占 40%。也就是说,这并不是把模型"砍掉脑子",而是告诉它不要在根本不需要复杂推理的问题上花太多时间。

我们还测试了 Model Card 推荐用于 Chat 场景的 clear_thinking: true。结果几乎没有任何可测量变化:配对比值是 0.99,而且成本还略微更高。这个结果也值得记住,避免有人把它误当成一个省钱参数。

只比较 enable_thinking 时,单次请求成本相差 18.5 倍;加入 reasoning_effort 后,相差达到 106 倍

9 种配置------3 个模型 × 3 种思考模式------单次请求成本跨度达到 18.5 倍。

排名 配置 单次请求成本 相比最低成本
1 glm-5.3-flash / default 0.00156 美元 1.00 倍
2 glm-5.3-flash / on 0.00157 美元 1.01 倍
3 glm-5.3-flash / off 0.00174 美元 1.11 倍
4 qwen3.8-max / off 0.00359 美元 2.29 倍
5 qwen3.8-max / default 0.00361 美元 2.31 倍
6 kimi-k3 / off 0.00651 美元 4.17 倍
7 qwen3.8-max / on 0.02196 美元 14.04 倍
8 kimi-k3 / default 0.02661 美元 17.01 倍
9 kimi-k3 / on 0.02892 美元 18.49 倍

把第 6 行和第 7 行放在一起看。配置得当的 Kimi K3,实际成本甚至低于配置错误的 Qwen3.8-Max,尽管 Kimi 的官方输出价格是 Qwen 的 2.5 倍。仅仅一个布尔参数,就能让 Kimi 从 17.01 倍降到 4.17 倍------这个变化幅度甚至比直接换模型还大。

Flash 的三种 enable_thinking 配置之间成本差距只有 11%。这并不是因为 Flash 没有可调节的参数,而是因为我们一开始调错了参数。把 reasoning_effort 加进来之后,同一张成本阶梯就变成了这样:

配置 单次请求成本 相比最低成本
glm-5.3-flash / reasoning_effort: low 0.000250 美元 1.00 倍
glm-5.3-flash / reasoning_effort: high 0.000384 美元 1.54 倍
glm-5.3-flash / default 0.001564 美元 6.26 倍
qwen3.8-max / default 0.003610 美元 14.44 倍
kimi-k3 / off 0.006510 美元 26.04 倍
kimi-k3 / default 0.026610 美元 106.44 倍

此时成本跨度不再是 18.5 倍,而是 106 倍。其中最大的单一影响因素,只是一个模型上的一个参数。

这里还有一个值得单独强调的二阶影响:不同模型的默认配置根本不一致------Qwen 默认关闭思考模式,而 Flash 默认使用最高推理强度。因此,如果你拿几个模型直接"开箱即用"做对比,实际上比较的并不只是模型,而是模型 + 默认配置。绝大多数公开模型对比都会这么做,包括我们自己在补测这些配置之前也是如此。

降低推理强度会影响准确率吗?会,但只出现在困难问题上

看到这里,一个很自然的质疑是:也许贵模型之所以贵,就是因为能力更强,而我们测到的只是"更高质量答案所对应的价格"。

所以我们又构建了第二套任务:20 个有确定答案的问题,包括成本计算、Retry Policy 下的期望值、组合数学问题,以及延迟预算推导。每个问题都要求最后一行严格使用 ANSWER: 固定格式,这样评分可以直接通过字符串提取完成,而不依赖人工判断。测试覆盖 3 个模型、3 种思考模式和 2 种降低后的推理强度,每个配置运行 5 次,总共得到 1099 条可评分 Response。

在默认配置下,三个模型全部拿到了 100%。

模型 设置 pass@1 单个正确答案成本 相比最低成本
glm-5.3-flash effort: low 92.0% 0.00008 美元 1.00 倍
glm-5.3-flash effort: high 98.0% 0.00012 美元 1.47 倍
glm-5.3-flash enable_thinking: false 100.0% 0.00018 美元 2.15 倍
glm-5.3-flash default 100.0% 0.00018 美元 2.17 倍
glm-5.3-flash enable_thinking: true 100.0% 0.00019 美元 2.26 倍
qwen3.8-max enable_thinking: false 100.0% 0.00226 美元 26.64 倍
qwen3.8-max default 100.0% 0.00235 美元 27.65 倍
kimi-k3 enable_thinking: false 98.0% 0.00282 美元 33.23 倍
qwen3.8-max enable_thinking: true 100.0% 0.00383 美元 45.14 倍
kimi-k3 default 100.0% 0.00565 美元 66.47 倍
kimi-k3 enable_thinking: true 100.0% 0.00601 美元 70.78 倍

在 9 种 enable_thinking 配置中,各模型的准确率都达到或接近 100%,但单个正确答案成本相差了 33 倍。在这个测试范围内,便宜模型并不是因为能力差才便宜。至少在这些任务上,它并没有更差。

但降低推理强度并不是没有代价。 Flash 在默认设置下得分 100%,high 是 98%,而 low 降到 92%。也就是说,省钱确实会带来一定准确率损失,而且我们能明确看到损失发生在哪里:所有错误都出现在 Tier 3 任务中。Tier 1 和 Tier 2 在所有推理强度下都是满分。

设置 失败次数 对应任务
默认 0/100 ---
high 2/100 概率(1)、逻辑(1)
low 8/100 成本建模(3)、概率(2)、逻辑(3)

low 下,一个多步成本建模问题 5 次里错了 3 次------其中两次把正确答案 61.22 写成了 0.6122,这更像是单位错误,而不是纯粹的推理错误。降低推理强度并不会让模型突然不会记忆或算术,而是会降低它维持多步推理链条、并在最后检查结果的能力。

从单个正确答案成本来看,low 依然更划算,因为在这套相对简单的测试里,8% 的失败率仍然抵不过 84% 的成本下降。但我们不会把这个结论直接推广到更复杂的任务上。这里最重要的限制是:我们的任务集对模型来说还是太简单,11 种配置里有 6 种达到 100%。这样的测试足以证明"降低推理强度会带来准确率下降",但不足以告诉你在真正困难的任务上会下降多少。对于更难的推理任务,可以预期差距会进一步扩大。

结构化输出可以让 GLM-5.3-Flash 重新获得接近纸面价格的成本优势

两组 Prompt 之间有一个重要区别:可验证任务强制要求固定输出格式,而开放式 Prompt 没有任何格式限制。这个原本并不是主要测试变量的差异,最后却变成了整个研究中最有价值的结果之一。

模型 开放式输出 Token 中位数 结构化输出 Token 中位数 降幅
glm-5.3-flash 1409 276 80.4%
kimi-k3 1133 248 78.1%
qwen3.8-max 435 144 66.9%

结构化输出对 Flash 的压缩效果比另外两个模型更明显,而 Flash 的冗长输出恰恰就是此前侵蚀它价格优势的主要原因。因此,Flash 的实际成本优势会随着工作负载形式变化:

GLM-5.3-Flash 相比 开放式 Prompt 结构化输出
qwen3.8-max 2.3 倍 12.8 倍
kimi-k3 17.0 倍 30.7 倍

在结构化输出下,Flash 几乎完全兑现了官方价格暗示的成本优势;而在完全不受约束的开放式输出中,它相对 Qwen 只能兑现大约五分之一。

但这里也有一个不能忽略的限制。我们还把 8 个简单问题重新测试了一遍,只在结尾加上一句 "Answer in one sentence."。结果三个模型的输出 Token 都下降了 70%~91%,效果甚至比思考参数在其中两个模型上的影响还大。但推理 Token 占比几乎没变化:Flash 从 72% 变成 77%,Kimi 则始终是 65%。

也就是说,这条指令压缩的是最终答案,而不是模型内部的推理过程。你仍然会把相同比例的账单花在用户看不到的推理上,只是整个账单本身变小了。

不同工作负载应该使用什么 reasoning_effort

在 GLM-5.3-Flash 上显式设置 reasoning_effort 如果不设置,它就会使用 max,也就是最昂贵的配置。这是整个测试中影响最大的单一成本调节手段。

对于分类、信息提取、模型路由、格式转换和简单查询,使用 reasoning_effort: low 在所有低于复杂多步推理的任务上,它没有带来准确率损失,但相比默认配置便宜了 6.3 倍。

对于混合工作负载,high 比默认配置更适合作为默认值。 在我们的任务集上,它相比 max 便宜 4 倍,准确率是 98%,而默认配置是 100%。如果你只想选择一个设置长期使用,优先考虑这个。

对于真正困难的多步推理,保持 max 我们在降低推理强度后看到的所有错误都出现在 Tier 3,而我们的测试集本身还不够难,无法准确告诉你在更复杂任务中性能会下降多少。

如果输出是开放式且没有长度限制,预算应该基于实际 Token,而不是官方价格。 先跑 100 次具有代表性的真实请求,再根据实际 Token 量估算。

如果你已经在使用 Kimi K3,可以测试工作负载是否能接受 enable_thinking: false 在我们的测试里,它节省了 75% 成本,但准确率下降了 2 个百分点。

如果你正在使用 Qwen3.8-Max,并考虑打开思考模式,要先注意它会让成本增加约 5 倍。 开启之前,最好先验证它是否真的能带来实际收益。

不要 在 GLM-5.3-Flash 上使用 enable_thinking: false 并期待它能省钱。我们的测试中,它反而让成本增加了 11%。同样,也不要指望 clear_thinking: true 能改变成本,因为实测没有效果。

目前,这三个模型都已经可以通过 DigitalOcean 无服务器推理 使用。API 端点兼容 OpenAI,地址是 https://inference.do-ai.run/v1,因此要在自己的工作负载上复现这些测试,基本只需要修改 Base URL 和模型 ID:glm-5.3-flashqwen3.8-maxkimi-k3。本文所有测试都是通过这个 API 端点,使用标准 openai Python Client 完成的。

为什么要在 DigitalOcean 上运行 GLM-5.3-Flash,而不是其他平台?

先坦诚说明一点:本文使用的价格并不是 DigitalOcean 独有。GLM-5.3-Flash 采用 MIT 许可证,Z.ai 公布的官方价格与我们测试使用的价格一致,因此单纯看模型的单 Token 成本,并不足以成为选择某个托管平台的理由。如果有人以明显更低的价格提供完全相同的模型权重,要么是平台自己做了折扣,要么比较的其实不是同一件东西。

真正不同的,是 Token 周围的整套基础设施。这次测试过程中,有三个因素很重要,而它们在生产环境里同样重要。

周边技术栈都在同一个地方。 Token 价格只是推理账单的一部分。如果向量数据库、对象存储和应用服务器在一家 Cloud,而模型部署在另一家,那么每次 Retrieval 都需要支付出站流量费用,还要承担跨平台往返延迟。对于一个每次请求需要进行多次 Retrieval 的 RAG Pipeline 来说,这种跨平台请求增加的延迟,甚至可能高于模型自身的首 Token 延迟(TTFT)------而这些成本和延迟都不会出现在单 Token 价格比较里。如果推理服务和 Managed Postgres、Spaces、App Platform 部署在同一平台上,就可以避免这一次跨平台跳转。

一个账号,一张账单。 无服务器推理的使用量和其他 DigitalOcean 基础设施都会出现在同一个 DigitalOcean 账号和同一张账单上。这听起来只是管理上的便利,但如果你真正尝试过审计一张拆在三个平台、使用三种计费模式和三套 Token 统计规则的推理账单,就会知道差别有多大。这也意味着,测试一个新模型时不需要重新走一套独立采购流程。

还有一条可以离开按 Token 计费的路径。 本文所有测试都使用无服务器推理。如果你的工作负载继续增长,例如需要持续高吞吐、流量更加稳定可预测,或者对资源隔离有要求,那么专属推理可以继续提供相同的 OpenAI-compatible API,同时使用预留 Capacity,因此迁移更像是一次配置调整,而不是重写应用。再往下一层,GPU Droplets 允许你在自己的 GPU 实例上运行自己的推理服务------这确实属于一次真正的架构调整,但依然可以在同一个账号下完成,不需要更换 Cloud Provider。

这些因素都不会出现在单纯的 Token 单价比较中,而这恰恰是重点。单 Token 价格是最容易比较的数字,但正如本文前面的测试所展示的,它反而最不可能单独决定你的最终账单。

测试方法:这些数字是如何得到的

所有测试都运行在 DigitalOcean 无服务器推理的 https://inference.do-ai.run/v1 API 端点上,该端点兼容 OpenAI API。

没有发送任何采样参数。 我们没有设置 Temperature、top_p 或 Penalty。Kimi K3 使用固定采样参数,因此如果只给另外两个模型设置这些参数,就会引入新的不对称,后面还得额外解释。三个模型全部使用平台默认值。

使用非流式输出,并设置 max_tokens=32000 早期一次测试使用 8000 Token 上限,结果 Flash 的 Tier 3 Response 有 20% 被截断------也就是说,Token Budget 用完时模型还在进行推理,甚至还没输出最终答案。本文最终使用的数据中没有任何截断记录,所有 finish_reason 都是 stop

随机化执行顺序。 完整的"模型 × Prompt × 重复次数"测试矩阵使用固定 Seed 打乱执行顺序,这样平台随着时间产生的性能变化会平均分散到各模型,而不是集中影响最后执行的那个模型。

Token 统计。 DigitalOcean 的 usage Object 不会单独统计推理 Token,completion_tokens_details 返回的是 null。但模型会把推理内容放在 Message 的 reasoning_content 字段中。我们使用每个模型自己的 Tokenizer 在本地统计这部分 Token,再与实际计费的 completion_tokens 对齐。剩余差值是每个模型固定的 Chat Template Offset:Flash 为 +2,Qwen 为 +1,Kimi 为 +13。固定 Offset 通常说明 Tokenizer 使用正确;如果这个差值随机波动,就意味着我们的统计方式有问题。本文所有比例都基于实际计费 Token,并保留这些 Offset。

推理控制参数通过三种不同方式发送 ,因为它们不能互换。enable_thinkingclear_thinking 放在 chat_template_kwargs 中,而 reasoning_effort 放在 Request Body 顶层。每一次请求都会记录它实际发送的 extra_body。我们没有因为 API 返回 200 就假设参数真的生效,而是通过实际行为验证:不同测试组会针对同样的 Prompt 和重复次数做配对比较。如果参数被忽略,那么 Token 分布应该几乎没有差异。

使用中位数,而不是平均值,原因前面已经解释过。5 次重复测试足以支持一个中位数和范围,但不足以给出非常窄的置信区间。

这项研究的限制

本文测的是单次请求成本和单个正确答案成本,而不是完成整个任务的成本。 没有 Sandbox、多轮 Agent Loop,也没有代码执行。Agent 工作负载显然是下一步最值得测的方向,但我们目前还没有做。

模型能力通过第三方数据保持可比,而不是由我们重新测试。 Artificial Analysis 在 Intelligence Index 上给 Kimi K3 和 GLM-5.3-Flash 都打了 57 分。这是他们的测量结果,不是我们的,我们也没有尝试复现。

可验证任务集太简单。 11 种配置里有 6 种拿到了 100%。这套测试足以发现降低推理强度会让准确率下降------low 下是 92%------但不足以告诉你在真正困难的工作负载中会下降多少。因此,这里的准确率比较只能说明:在这一难度、这一类任务上,模型表现接近,不能推广到更广泛场景。

我们一开始测试错了参数。 最初的实验使用了 enable_thinking,但这并不是 GLM-5.3-Flash Model Card 推荐的控制方式。直到我们重新仔细阅读 Model Card 后,才发现真正应该使用的是 reasoning_effort,而这个参数显著改变了结论。本文仍然保留 enable_thinking 的测试结果,但应该把它理解为"这个参数在模型上的行为",而不是"模型能不能减少推理"的最终结论。

我们的答案 Key 有一道题写错了。 在延迟预算任务中,45 条 Response 全部回答 43,而我们的答案 Key 写的是 42。后来确认模型是对的:第一个 Token 在 TTFT 时已经到达,只有后续 Token 才会继续增加总延迟。我们修正了答案 Key,并且选择公开这个问题,因为一个永远不会出错的固定答案 Key,很多时候只是因为根本没人真正检查过。

Kimi K3 有 12 条 Response 存在无法解释的计费 Token。 这些记录里的 completion_tokens 比实际返回的推理内容 + 最终答案多出 85~391 Token。在大约 1000 条 Kimi Record 中共有 12 条出现这种情况,我们没能解释原因。Flash 和 Qwen 没有出现类似尾部现象。

2700 次调用里有 1 次失败。 这次请求在重试 5 次之后仍然返回 HTTP 429。

297 条记录触发了 Prompt Cache。 每次都恰好缓存 128 Token,因为相同 Prompt 在后续重复测试中命中了 Cache。这只会影响输入成本,而输入成本在这组账单里占比很小。我们没有人为禁用它,而是保留了真实行为。

两套 Prompt Set 的 Token 数不能直接互相比。 可验证任务额外带有格式说明,而开放式 Prompt 没有。应该比较同一个任务集内不同模型之间的比例,而不是跨两个任务集比较绝对 Token 数。

所有数据都只是某一时间点的结果。 价格、Serving Default 和模型版本都会变化。代码仓库里记录了本次测试所使用的价格快照日期。

自己复现这些测试

代码仓库(github.com/Jameshskelton/GLM-Flash-Analysis)中包含固定版本的 Prompt Set 及其 SHA256、测试脚本、所有原始 Response Log、Grader,以及重新生成本文全部数字和图表的分析脚本。使用的模型 ID 分别是 glm-5.3-flashqwen3.8-maxkimi-k3

整个研究大约只需要 14 美元和半天时间。

如果你重新运行后得到不同的数据,欢迎提交 Issue。我们也很想知道结果。

FAQ

GLM-5.3-Flash 是 DigitalOcean 无服务器推理上最便宜的模型吗?

在我们的测试范围内,是的,而且在所有测试配置中都是最便宜的。默认设置下,它的单次请求成本是 0.00156 美元,Qwen3.8-Max 为 0.00361 美元,Kimi K3 为 0.02661 美元。设置 reasoning_effort: low 后,成本进一步降到 0.00025 美元------比 Qwen 便宜 14.5 倍,比 Kimi 便宜 106 倍。

关闭思考模式能降低成本吗?

取决于模型,也取决于你使用的是哪个参数。在 Kimi K3 上,enable_thinking: false 可以降低 75.5% 的成本。Qwen3.8-Max 默认已经关闭思考模式。而在 GLM-5.3-Flash 上,enable_thinking: false 反而让成本增加了 11.1%,因为模型继续在用户可见答案里进行推理;真正有效的参数是 reasoning_effort,最多可以降低 84% 成本。

GLM-5.3-Flash 默认的 reasoning_effort 是什么?

max。如果请求里没有发送 reasoning_effort,模型就会运行在 max。我们针对完全相同的 Prompt,把未设置和显式 max 做了对比,中位比值是 0.984。这意味着每个未显式配置的请求,实际上都运行在最昂贵的设置。

降低推理强度会影响准确率吗?

会,主要出现在困难问题上。在 20 个可验证任务中,GLM-5.3-Flash 默认配置得分 100%,high 为 98%,low 为 92%。所有失败都发生在多步推理任务上,简单任务在所有等级下都没有受到影响。

为什么我的 LLM 账单比价格页面算出来的高?

最可能的原因是输出 Token 数量。推理模型会生成大量计费但不会展示给用户的 Token。在我们的测试中,这部分占输出费用的 65%~84%。单 Token 价格只告诉你单价,却不会告诉你最终会生成多少 Token。

LLM 账单里推理 Token 占多少?

GLM-5.3-Flash 默认设置下,简单问题中位数为 72%,困难问题会上升到 84%。使用 reasoning_effort: low 后,简单问题降到 3%,困难问题约为 40%。Kimi K3 则从 65% 上升到 82%。Qwen3.8-Max 默认关闭思考模式,因此默认不会承担这部分额外推理成本。

便宜模型的答案会更差吗?

在默认配置下没有。我们一共评分了 899 条 Response,覆盖 3 个模型和各自 3 种 enable_thinking 模式。在有确定答案的问题上,三个模型都达到或接近 100%;最低的是关闭思考模式的 Kimi K3,为 98%。但单个正确答案成本相差达到 33 倍。降低 GLM-5.3-Flash 的推理强度确实会影响准确率:high 为 98%,low 为 92%。因此完整评分数据一共包含 11 种配置、1099 条 Response。

在哪里可以运行 GLM-5.3-Flash?

模型权重采用 MIT 许可证,并已经发布在 Hugging Face,因此既可以自行部署,也可以通过任何提供该模型的平台运行。我们是在 DigitalOcean 无服务器推理上进行测试的,目前它与 Qwen3.8-Max、Kimi K3 都可以通过 https://inference.do-ai.run/v1 这个兼容 OpenAI 的 API 端点调用,GLM-5.3-Flash 的模型 ID 是 glm-5.3-flash

GLM-5.3-Flash 在 DigitalOcean 上比其他平台更便宜吗?

单 Token 价格并不是差异点:这个模型是开放权重模型,而且 DigitalOcean 的价格与 Z.ai 公布的官方价格一致。真正会影响总成本的,是模型与其他技术栈之间的距离------例如每次 Retrieval 产生的出站流量和网络往返延迟并不会体现在单 Token 价格比较中------以及当工作负载增长后,能不能在不重新迁移整套平台的情况下切换到专属 Capacity。

如何降低输出 Token 成本?

有三个主要手段,按影响大小排序。第一,在 GLM-5.3-Flash 上显式设置 reasoning_effortlow 比默认便宜 6.3 倍,high 便宜 4 倍。第二,限制输出格式:强制使用固定答案结构,让 Flash 的输出 Token 中位数降低了 80.4%。第三,加上简洁回答要求,例如 "Answer in one sentence",可以让三个模型在简单问题上的输出减少 70%~91%。其中只有第一个方法真正降低了账单里推理 Token 所占的比例;另外两个方法只是让总账单变小,而推理 Token 占比基本不变。

相关推荐
武子康20 分钟前
图像生成为什么需要独立的 Gateway 抽象:参数、重试与幂等设计
人工智能·llm·agent
tachibana220 分钟前
微调和 RAG 各自的优劣势是什么?
人工智能·ai·大模型·llm·agent
桃西西呀3 小时前
RAG 接个向量库就完事?从切块到重排的 7 步流水线,我替你踩了 8 个深坑
人工智能·llm·ai编程
momo4 小时前
LightRAG Query Pipeline 核心架构与源码设计分析报告(2)
llm·lightrag
得物技术6 小时前
得物小摊 AI Native 演进实录:用 Harness 构建可控 AI 交付
人工智能·架构·llm
北落L7 小时前
我用 Python 做了一个 Token 计算器:一段文字到底消耗多少 Token?
llm
张彦峰ZYF8 小时前
从对话记忆到状态控制平面:长程 Agent 的状态治理工程
人工智能·llm·agent·loopengineering·langgroup
johnny2339 小时前
LocalAI、LocalAGI、LocalRecall
llm
漂流瓶jz16 小时前
【AI】大模型本地部署与量化:Ollama、transformers、llama.cpp实践
人工智能·llm·ai编程