一、先说这次实测的条件
最近后台被问得最多的一句话是:deepseek-v4.1-flash 和 GLM-5.3 到底该选哪个?
大部分对比文章会直接甩一张单价表,然后给一句“看预算选”。但真正跑过生产流量的团队都知道,单价表只解决了三分之一的问题:同样一段文字,模型在“回答之前想了多久”,直接决定了账单的最后一位数。
所以这篇文章不吹参数,只放实测数据。条件交代清楚:
- 同一台机器、同一条网络、同一个 API Key,串行调用(不并发,避免相互干扰)
- 四类真实任务:长文摘要(约 3000 字中文 → 200 字)、结构化抽取(客服对话 → JSON)、代码生成(区间合并函数)、多步推理(一道需要穷举的三位数题)
- 参与模型三个:deepseek-v4.1-flash、GLM-5.3、glm-5.3-flash
- 记录字段:输入 token、输出 token、其中思考 token、正文长度、端到端耗时
二、同一批任务,三个模型的真实用量
| 任务 | 模型 | 输入 token | 输出 token | 其中思考 token | 正文 | 耗时 |
|---|---|---|---|---|---|---|
| 长文摘要 | deepseek-v4.1-flash | 449(缓存命中 384) | 917 | 759 | 235 字 | 9.97 s |
| 长文摘要 | GLM-5.3 | 426 | 1218 | 1082 | 203 字 | 14.87 s |
| 长文摘要 | glm-5.3-flash | 426 | 1058 | 903 | 241 字 | 33.20 s |
| 结构化抽取 | deepseek-v4.1-flash | 165 | 622 | 584 | 106 字 | 6.38 s |
| 结构化抽取 | GLM-5.3 | 150 | 437 | 400 | 106 字 | 8.97 s |
| 结构化抽取 | glm-5.3-flash | 150 | 820 | 763 | 136 字 | 8.32 s |
| 代码生成 | deepseek-v4.1-flash | 122 | 657 | 514 | 457 字 | 6.30 s |
| 代码生成 | GLM-5.3 | 103 | 979 | 840 | 387 字 | 13.43 s |
| 代码生成 | glm-5.3-flash | 103 | 837 | 632 | 554 字 | 7.95 s |
三个模型都稳定给出了结果,抽取任务的 JSON 结构完全一致。但看最后一列上面那一列,有个共同点很扎眼。
三、发现一:思考 token 占了输出的 75% 到 100%
把上表的比例算一下就清楚了:
| 模型 | 思考 token 占输出比例 |
|---|---|
| deepseek-v4.1-flash | 78%(代码)~ 94%(抽取) |
| GLM-5.3 | 86%(代码)~ 92%(抽取) |
| glm-5.3-flash | 75%(代码)~ 93%(抽取) |
也就是说,你付的钱里,四分之三以上是模型“想”掉的部分,而不是你最后看到的那段文字。235 字的摘要背后,是 759 个思考 token。
这一步没有任何问题——思考确实提升了复杂题的正确率。问题在于:摘要、抽取、分类这类任务,真的需要模型想 759 个 token 吗?
四、发现二:关掉思考,输出 token 掉 77%~94%,抽取结果一字不差
deepseek-v4.1-flash 支持把思考模式关掉(官方文档里的 thinking 参数),GLM-5.3 不行(后面单说为什么)。于是我把完全相同的 prompt 又跑了一遍,只改一个开关:
| 任务 | 开思考·输出 token | 关思考·输出 token | 变化 | 开思考·耗时 | 关思考·耗时 |
|---|---|---|---|---|---|
| 长文摘要 | 917 | 85 | −91% | 9.97 s | 2.34 s |
| 结构化抽取 | 622 | 37 | −94% | 6.38 s | 1.70 s |
| 代码生成 | 657 | 149 | −77% | 6.30 s | 2.59 s |
输出 token 掉了一个数量级,耗时缩短到原来的四分之一到一半。
关键是结果有没有变差。结构化抽取任务,关思考后的返回是:
{
"order_id": "8892-4471-003",
"intent": "物流查询",
"days_since_purchase": null,
"sentiment": "负面",
"need_human": true
}
和开思考时逐字相同。
长文摘要那边,关思考后得到 133 字(开思考时 235 字),关键数字一个没丢:出货 128 万台(+11.3%)、线上占比 46%、洗地机 +41%、库存周转 41 天、四季度目标 150 万台(+14%)、X7 备货 30 万台、以旧换新补贴上限 300 元、库存压到 35 天内。只是更紧凑,没有多余的铺垫。
结论很直接:结构化任务关掉思考,是性价比最高的一次调参。省的是钱,不是质量。
五、发现三:预算给少了,钱花了,结果一个字都不出
同一个“多步推理”任务,我给 deepseek-v4.1-flash 设了三档输出上限:
| 输出上限 | 实际输出 token | 其中思考 token | 正文 | 耗时 |
|---|---|---|---|---|
| 4000 | 4000(撞满) | 4000 | 0 字 | 29.74 s |
| 8000 | 8000(撞满) | 8000 | 0 字 | 62.03 s |
| 16000 | 12640 | 11976 | 1237 字 | 97.95 s |
前两次不是失败,是“思考还没结束就被掐断了”——账单照付,正文一个字都没有。第三次给到 16000,模型用了 12640 个 token 才把答案写出来。
GLM-5.3 和 glm-5.3-flash 在 4000 上限下是同样表现:4000 个 token 全花在思考上,正文 0 字。
这条坑的成本是实打实的:按站内折扣价折算,那两次空转大约花掉了 ¥0.06,什么也没换到。所以上线前一定先做一件事:拿真实任务跑一遍,看模型“想完 + 写完”到底需要多少输出预算,然后把上限设成这个值的 1.5 倍。上限设小了不是省钱,是把钱扔在没结果的请求上。
六、发现四:缓存命中 85%,这是最容易被忽略的一笔折扣
同一段 449 个 token 的长文连发两次,两次都命中 384 个 token 的缓存,命中率 85.5%。
它的价值在价目表上:deepseek-v4.1-flash 的缓存命中价是 0.02 元/百万 token(空闲时段),而未命中是 1 元/百万——50 倍差价。
这也解释了为什么“把固定的系统提示、知识库片段、历史上下文放在请求最前面”这件事值得做:只要前缀不变,后面每一轮都在按 1/50 的价格读它。
七、两个模型的官方价目表,以及“贵在哪、省在哪”
先把两家的官方定价摆出来(单位:元/百万 token,均为官方现行价)。
DeepSeek(deepseek-v4.1-flash,官方文档模型名 deepseek-flash):
| 项目 | 空闲时段 | 高峰时段 |
|---|---|---|
| 输入·缓存命中 | 0.02 | 0.04 |
| 输入·缓存未命中 | 1 | 2 |
| 输出 | 4 | 8 |
| 上下文长度 | 1M | |
| 最大输出 | 384K | |
| 并发限制 | 2500 |
注意它的计费规则和很多人以为的不一样:高峰时段是北京时间周一至周五(不含法定节假日)的 9:00–12:00 与 14:00–18:00,其余时段——包括周末和节假日全天——都是空闲时段,价格是高峰的一半。
智谱(官方现行价):
| 模型 | 上下文 | 输入 | 输出 | 缓存命中 |
|---|---|---|---|---|
| GLM-5.3 | 1M | 8 | 28 | 2 |
| GLM-5.3-Flash | 1M | 0.8 | 2.8 | 0.23 |
| GLM-5.3-FlashX | 1M | 2 | 7 | 0.57 |
现在把第二节的实测用量代进去,就得到同一件活的真实成本差别(按站内公告折扣口径折算,长文摘要任务):
| 模型 | 该任务输出 token | 单次成本(约) |
|---|---|---|
| deepseek-v4.1-flash(关思考) | 85 | ¥0.001 |
| deepseek-v4.1-flash(默认思考) | 917 | ¥0.005 |
| glm-5.3-flash | 1058 | ¥0.003 |
| GLM-5.3 | 1218 | ¥0.019 |
差距不在“谁便宜”,而在“谁肯少想一会儿”。GLM-5.3 高出十来倍,主要就是它一上来就以最高强度思考。
八、为什么 GLM-5.3 关不掉思考,而 deepseek-v4.1-flash 可以
这不是调参技巧,是两个模型的设计取捨,官方文档写得很明白:
- deepseek-v4.1-flash:思考模式默认打开、默认强度 high,但支持切到非思考模式(thinking 参数),强度可用 reasoning_effort 调 low / high / max
- GLM-5.3:始终启用思考,不支持禁用,强度 low / high / max,默认 max
所以选型时的一个实际判断是:
- 如果你的业务里大量是“抽取、分类、改写、格式转换”这类有确定答案的任务,deepseek-v4.1-flash 的开关能直接把输出 token 压掉一个数量级
- 如果你的业务是复杂软件工程、Agent 长链路、需要反复自我校验的任务,GLM-5.3 的强制深思就是它的优势,代价是那些简单请求也在按深思计费;这种情况更适合用 glm-5.3-flash 承接简单请求,把 GLM-5.3 留给真正难的环节
顺带说一个实测中的小事:我给 GLM-5.3 试了 reasoning_effort 的 low / high / max 三档,在代码生成任务上输出 token 是 1040 / 941 / 871,差异落在噪声范围内;在那道推理题上三档都撞满了上限。所以别指望“把档位调低”就能省钱,真正有效的是给简单任务换到便宜模型或换掉思考开关。
九、按场景分工,而不是比谁更强
按这次的实测结果,一套比较省心的分工是这样:
- 抽取、分类、打标、格式转换:deepseek-v4.1-flash + 关思考。输出 token 掉 90%,结果没有变差
- 长文摘要、会议纪要、内容改写:deepseek-v4.1-flash 默认思考,或者 glm-5.3-flash 兜底
- 代码生成、重构、Agent 工具调用:GLM-5.3 或有预算时 deepseek-v4.1-flash 开思考
- 高并发、低延迟的线上链路:优先看并发限制和空闲时段,deepseek-v4.1-flash 的 2500 并发能扛住冲量
- 批处理、离线任务:挪到空闲时段跑,同样的量直接打五折
十、接入只有三步
两个模型都是 OpenAI 兼容格式,换模型只改一个字符串。
from openai import OpenAI
client = OpenAI(
base_url="https://www.timedigital.cn/v1",
api_key="你的令牌",
)
resp = client.chat.completions.create(
model="deepseek-v4.1-flash", # 或 glm-5.3 / glm-5.3-flash
messages=[{"role": "user", "content": "你的任务"}],
max_tokens=4000, # 先按实测值留 1.5 倍余量
extra_body={"thinking": {"type": "disabled"}}, # 简单任务关思考
)
print(resp.choices[0].message.content)
print(resp.usage) # 看清 prompt / completion / reasoning 三段 token
两个参数建议上线前一定设:max_tokens(别让它撞上限空转)、thinking(简单任务关掉)。
常见问题
Q:关掉思考会不会让答案变差?
看任务。抽取、分类、格式转换这类有唯一答案的任务,实测输出逐字相同;开放式写作、复杂推理建议保持默认。
Q:为什么我的账单比单价表算出来的高?
先看思考 token 占比,再看有没有撞 max_tokens。这两项在只比单价的时候是看不见的。
Q:长文本一定要用 1M 上下文吗?
不一定,但长上下文的成本大头在输出不在输入——输入便宜,让模型少想才省钱。
Q:GLM-5.3 和 glm-5.3-flash 怎么选?
同一家的旗舰和轻量版。简单请求走 flash,复杂任务走旗舰,实测同一任务成本差 6 倍以上。
写在最后
写这篇的起因很简单:我们发现报价表上看着差不多的两个模型,跑同样的量,账单能差出五倍。差的不是单价,是“模型在给出答案之前愿意思考多久”。
数字时代同时接入了 deepseek-v4.1-flash 与 GLM-5.3 全系:deepseek-v4.1-flash 按官方价 6.5 折并与官方同步闲忙计费,GLM-5.3 官方价 5 折,glm-5.3-flash 折后输入 0.64 元 / 输出 2.24 元 / 缓存 0.184 元,均为百万 token 计价。
想把上面这套分工先试一遍,可以直接拿一段真实业务文本跑一次“开思考 vs 关思考”的对照,成本不到一分钱,差距一眼就能看见。
有具体场景想让我们帮忙估用量和成本的,加客服微信 wu6512362,说清楚任务类型和日调用量就行。