作者实测发现DeepSeek V4-Flash并非在所有维度弱于V4-Pro,在特定场景Flash版本性价比更高。便宜和好用的取舍并非简单的大小杯对比。
我们非常高兴你在这里。你可以期待所有最好的 TNS 内容在周一至周五送达,让你随时了解最新资讯并保持最佳状态。
查看你的收件箱,收到确认邮件后可以调整偏好设置,甚至加入其他群组。
在你最喜欢的社交媒体平台上关注 TNS。
在 LinkedIn 上成为 TNS 关注者。
在等待第一封 TNS 时事通讯时,看看最新的精选和热门文章。
DeepSeek 这家中国 AI 实验室自问世以来一直在价格上低于 OpenAI 和 Anthropic,最近刷新了 V4-Flash,将其从预览版移出。DeepSeek 文档声称,这款刷新后的 Flash 模型在编码和代理基准测试中超越了 V4-Pro 预览版。
然而价格让这个说法显得很奇怪。V4-Flash 每百万输入 token 0.14 美元,每百万输出 token 0.28 美元。V4-Pro 则是 0.435 美元和 0.87 美元。两项价格几乎正好相差三分之一。
如果性价比模型以三分之一的价格击败了旗舰模型,那旗舰模型存在的意义是什么?我必须弄清楚这个问题,所以我给两个模型布置了相同的三个专业编码任务,并追踪了每一个 token。
我使用了 rich,这是 Textualize 的 Python 终端格式化库。我选择它是因为它是真正的生产级 Python,拥有庞大的安装量和足够的内部复杂度(样式跨度、渲染管道、单元格宽度数学),足以让模型为之努力。
两个模型都在 OpenCode 中运行,这是开源终端编码代理——类似于 Claude Code,只不过你可以插入任何模型。一个设置说明:OpenCode 内置的 DeepSeek 列表只附带 Flash,关于这个问题有一个 GitHub issue 标记为 closed-as-not-planned。要让 Pro 进入模型选择器,我必须在项目文件夹中添加一个小的配置文件(这个指南有 JSON)。整个过程只花了大约两分钟,顺便提一下,以防你尝试在 OpenCode 上测试 Pro 时找不到模型。
我为每个模型构建了一个独立的仓库克隆,每次测试都启动一个新的会话,并使用相同的提示词,所以唯一的变量就是模型。以下是我运行的三个测试(按此顺序)。
a performance optimization(测试推理能力)
对于每个测试,我记录了 OpenCode 会话计时器的时间,以及 DeepSeek 使用仪表板上的 token、API 请求和费用。
提示词:用户报告在 macOS 上导入 Rich 会崩溃。他的环境是:Rich 15.0.0、Python 3.14、macOS Apple Silicon 版、VS Code 集成终端,工作目录位于 Dropbox File Provider 文件夹内。[traceback] 仅使用绝对路径的命令在该终端中正常运行。导入本身才是失败的原因,所以 python -m rich.diagnose 无法运行。在代码库中找到根本原因,修复它,添加回归测试,然后运行测试套件。解释原因和你的修复方法。
这个 bug 在安静中真实存在且很棘手。Rich 在导入时调用 os.getcwd(),但只捕获了 FileNotFoundError,然而 macOS File Provider 文件夹(Dropbox、iCloud)会使 getcwd() 抛出 PermissionError,于是整个库在用户代码一行都没运行之前就挂掉了。
两个模型都找到了相同的根本原因,并写出了相同的单行修复,将异常处理拓宽到 OSError。两个模型都写了一个用 mock 来模拟故障的回归测试,都在 957 个测试全部通过后结束。我通过针对每个修复后的副本模拟被阻止的 getcwd() 来确认了修复。
修复是完全相同的。唯一的区别是每个模型把测试放在哪里。Pro 先读取了仓库现有的测试文件,然后把回归测试添加到现有套件中,符合项目规范。Flash 创建了一个全新的测试文件。两个都能工作,但 Pro 的做法是维护者在审查时会要求的那种。Flash 的做法是赶时间的贡献者会交付的那种。
Flash 在 59 秒内完成,用了 6 次 API 请求和 119.9K 个 token,花费不到一分钱。Pro 用了 1 分 1 秒、13 次请求和 159.2K 个 token,花费约一分钱。同样的修复,但 Pro 为了到达那里多调用了一倍的 API。我把这个算作平局。
测试 2:功能构建
提示词:Rich 的 Text 类有一个 rstrip() 方法,可以在保留样式的前提下去除尾部空白。添加一个匹配的 lstrip() 方法,在保留样式的前提下去除首部空白,再添加一个同时做这两件事的 strip() 方法。要求:1. 匹配 Text 类现有的代码风格;2. 剩余字符上的样式必须正确保留;3. 添加覆盖纯文本、样式文本和全空白文本的测试;4. 运行测试套件并确认全部通过;5. 解释你的实现决策
在 rich 中,文本可以携带格式信息,所以第 4 到第 9 个字符可能是粗体。任务是添加一个去除文本首部空白的方法。去除尾部很简单,因为没有什么会移动。去首部更难,因为每个字符都会滑动,而格式是固定在位置上而非字符上的。如果位置不跟着滑动,粗体就会落在错误的字母上。
两个模型都做对了。我让两个实现经过了相同的八种边界情况测试(部分跨度、全空白文本、空操作输入),两个都全部通过。
有趣的是观察怎么做。Pro 在初始的代码库探索阶段委托给了一个子代理,后者独立进行了 13 次工具调用,然后写出的实现初版有一个真正的 bug。它丢失了起始于被剥离空白内的样式跨度。它自己的测试捕获了它,在一次迭代中修复了它。这是系统按预期工作的表现,但也是更多的机制。Flash 只是读取了文件然后写了代码。
Flash 在 1 分 29 秒内完成,6 次请求和 191.2K 个 token,同样花费不到一分钱。Pro 用了 1 分 43 秒、23 次请求和 333.6K 个 token,花费约两分钱。同样功能,同样的代码质量(两个都通过了全部八种边界情况),但 Flash 更快完成,API 调用只有四分之一,token 只有一半,成本也只有一半。代码上平局,效率上 Flash 胜。
测试 3:性能任务
提示词:维护者想要更快的大型表格渲染。写一个小型的基准测试脚本,测量渲染一个有 5,000 行 6 列的 Table 到字符串 Console 的时间。记录基准时间,对其进行性能分析找到主要热点,然后优化那个热点,但不改变任何公开行为或输出。从你的基准测试中展示优化前后的时间,解释你改变了什么以及为什么更快,并运行完整测试套件以证明没有破坏任何东西。
前两个测试有正确答案。这一个是开放式的。这个开放式的测试是两个模型开始变得不可互换的地方。
Flash 大展拳脚。它工作了 27 分钟,执行了 128 次 API 请求,消耗了 1540 万个 token,全部花费约八分钱。它不仅仅加快了代码速度。它建立了自己的测试工具来比较新旧输出,涵盖了 37 种表格,发现并修复了自身的一个 bug,两次注意到基准测试意外地在测量错误版本的库,还清理了 13 个类型检查器错误。Flash 说它的版本快了 1.84 倍。我自己测量得到 1.83 倍,所以我标记为准确。
Flash 还说它的新输出与旧输出完全相同,精确到每一个字节,但我发现有一个案例并不完全相同。在一种特定的表格设置下(彩色终端),不可见的颜色代码被以稍微不同的顺序写入。屏幕上两个输出看起来完全一样,没有用户会注意到。但"相同"是它声称的,而相同是假的。这很有趣,因为 Flash 在这里做了整个实验中最出色的工程,然后描述其工作时把它说成比实际更无懈可击——而它真的不需要这么做。
Pro 则把同样的提示词当作代码审查来处理。它工作了 15 分 21 秒,57 次请求和 470 万个 token,花费约七分钱。它在表格绘制代码中发现了一步做了已经做过的工作,删除了它,收紧了一段忙碌的代码,并报告了 3.3% 的改进。我测量到 1.06 倍,而且它的输出真的与原版完全相同,精确到每一个字节。
它甚至正确地解决了 Flash 弄错的那一个案例。Pro 关于其工作所说的一切都是真的。只是工作量没有那么多。Flash 发现的大幅提速就存在于 Pro 所看的同一组测量数据中,而 Pro 错过了它。
更便宜的模型在这一次变得有创造力了,而更贵的模型把工作保持在更表面的层面。

总而言之,更便宜的模型在这一次变得有创造力了,而更贵的模型把工作保持在更表面的层面。
这个测试是数字变得有趣的地方。Flash 的 27 分钟运行消耗了 1540 万个 token,花费约八分钱,因为 98.6% 的 token 是缓存读取,按每百万四分之一美分计费。Pro 的运行只用了不到三分之一的 token,却仍然花费约七分钱,因为 Pro 的费率是三倍。Flash 的一千五百万 token 听起来很贵,但只折合 8 分钱。
| 指标 | V4-Flash | V4-Pro |
|---|---|---|
| Bug 修复 | 相同的单行修复,957/957 测试通过 | 相同的单行修复,957/957 测试通过 |
| Bug 修复数据 | 59 秒,119.9K token,<$0.01 | 1 分 1 秒,159.2K token,约 $0.01 |
| 功能 | 正确,8/8 边界情况 | 正确,8/8 边界情况 |
| 功能数据 | 1 分 29 秒,191.2K token,<$0.01 | 1 分 43 秒,333.6K token,约 $0.02 |
| 优化 | 1.83 倍更快(我测量) | 1.06 倍更快(我测量) |
| 优化数据 | 27 分钟,15.4M token,约 $0.08 | 15 分 21 秒,4.7M token,约 $0.07 |
| 总时间 | 约 29 分 28 秒 | 约 18 分 5 秒 |
| 总 API 请求 | 140 | 93 |
| 总 token | 约 15.7M | 约 5.2M |
| 总费用(按账单) | $0.09 | $0.10 |
这张图展示了每个模型在三个测试中的表现,每个测试在时间、token 和金钱上的成本,以及底部的总计。
顺着列往下看,故事跃然纸上。前两个测试是平局。第三个是 Flash 拉开差距的地方,1.83 倍对比 1.06 倍。然后看底部的行。Flash 用了三倍的 token,但最终账单是九分钱和一角钱。便宜的费率和大量的 token 使用几乎完全抵消了。
我真的怎么想?
两个模型在简单任务上完全相同。它们只在需要推理的任务上分道扬镳,而推理对 AI 模型来说客观上是最难的事。Flash 推理得更好,而且在推理过程中用了三倍的 token(完全弥合了成本差距)。
如果更好的推理意味着更多的 token,那我们都将要向 AI 公司支付大量现金,尤其是在我们已经上瘾的现在。
这让我想起了我的 Opus 5 与 Fable 5 测试。母公司设定价格,所以价格告诉你的是战略,而非成本。DeepSeek 的使用页面上现在有一条横幅警告价格即将大幅上涨(上方截图)。我想知道 Flash 的定价是否如此之低,是为了让我们在其账单到来之前习惯于它更好的推理。