deepseek 推理速度 tokens/s

模型与算力

讲清 DeepSeek 推理速度 tokens/s 怎么量、被什么拖慢、各家规格差异从哪来,给出可复现的测速与排查步骤。

你可能遇到过这种情况:同一个 DeepSeek 模型,自己的机器上跑出来慢得离谱,换成在线接口又快得不一样,问别人给的数字又对不上。这篇不给你一个「标准答案速度」,而是把影响 tokens/s 的变量拆开:量化档位、显存与卸载、并发与批处理、输入输出长度比例、推理框架。看完你能自己测出一份靠谱的基线数字,并且知道它什么时候不适用。

先说结论:tokens/s 没有标准答案,你抄来的任何数字都必须连同测试条件一起看。同一个 DeepSeek 模型,换一张卡、换一个量化档位、换一个推理框架,结果可能差好几倍;在线接口和你本地跑,更是两个不可直接对比的口径。别人说快,你要先问一句「在什么条件下快」。

这篇不给你一个可背下来的速度值,而是把变量拆开:怎么量、被什么拖慢、不同规格和部署方式的差距从哪来、怎么做出能拿给别人看的对比表,以及什么情况下这个数字其实不重要。看完你能自己测出一份靠谱基线,并且知道它什么时候不成立。

先说清楚 tokens/s 到底怎么量,别拿错的数字比

很多人测速只记一个「快」字,但 tokens/s 至少有三个口径:首 token 延迟(TTFT)、单请求生成速度、整体吞吐。三者经常互相矛盾——首 token 快的不一定生成快,单请求快的并发一拉就崩。客服说的「快」、评测里写的「快」、你自己感觉的「快」,很可能不是同一件事,先对齐口径再比。

口径衡量什么典型适用场景
TTFT 首 token 延迟用户发出请求到看到第一个字的时间对话补全、实时交互
单请求生成速度一个请求从首 token 到结束的平均 tokens/s单次长文生成、代码补全
整体吞吐所有并发请求合计的 tokens/s离线批处理、批量翻译、数据标注
  • 固定变量再比:同一提示词、同一输出长度、同一并发数、同一量化档位,缺一项差异就有一部分来自你的测试设置
  • 先量基线:到 /tools/speed-test 量出你当前环境的延迟基线,当作后续所有对比的对照组
  • 短回答速度普遍偏高:只跑十几 token 的问答,样本太小,测出来的数字没有代表性,至少让输出跑到几百 token
  • 别用「感觉快」下结论:手感和数字经常对不上,手边放个秒表或脚本比嘴靠谱

拖慢 DeepSeek 的几件事,按排查顺序排一遍

速度掉下来,先别急着换框架或者换卡,按下面的顺序排查,多数问题在前两步就能定位。真正难搞的往往不是模型本身,而是显存、并发和框架配置这些外围变量。

  1. 第一步:看显存打开监控看显存占用是不是贴着上限。一旦触发 CPU offload 或分层卸载,速度会掉一个数量级,这是最常见的「突然变慢」原因。
  2. 第二步:确认真的走了 GPU本地环境最容易踩的坑是框架悄悄退回 CPU 跑。看日志里有没有加载 CUDA 设备,用一张小卡跑一遍对比时间,差几十倍就是没上 GPU。
  3. 第三步:看量化档位量化档位选得太激进,速度和质量不一定同向变化。档位怎么取舍、显存怎么折算,去 /models/deploy 看部署测算口径。
  4. 第四步:看并发策略并发拉高之后单请求速度下降、总吞吐上升,这是正常现象,不是故障。一张卡能扛多少并发要按显存算,参考 /compute/sizing。
  5. 第五步:换框架验证同一个模型换推理框架和批处理策略,结果可能完全不同。怀疑框架有瓶颈,就换一个跑同样的负载对比。

排查顺序别乱:先排除显存和 GPU 这类硬问题,再调框架和批处理参数。反过来做,你把框架参数调穿了也可能根本没碰到真正的原因。

不同规格、不同部署方式下速度差在哪

参数量越大、注意力开销越高,单请求速度通常越慢,但这是趋势不是定律——实际差距更多取决于你的卡和量化档位。只看参数量判断速度,很容易被误导。

总参数 vs 激活参数
MoE 类结构里这两个不是一回事,报速度前先确认你查的是哪个口径,否则对比全是错位
在线接口 vs 本地部署
对方有批处理、有更快的卡、也可能有排队限流,速度不可直接对比,只能同口径下比
量化档位
影响显存占用和计算量,进而影响速度,不同档位之间的数字不能拿来互相替代

想知道各家当前实测数字,去 /models 和 /benchmarks 看记录,去 /usage 看真实用量口径。别人截图里的旧数字不要直接抄,模型版本、部署环境、并发条件任何一项变了,数字就不成立。模型版本对照看 /official-api/providers/deepseek。

做一份能拿给别人看的对比表

如果你要把速度结论发给同事、写进选型报告,光说「快」没用。下面这张表缺任何一列,结论都会被质疑。列全了,别人才能判断这个数字对他适不适用。

必填字段怎么写为什么必须写
硬件卡型号与数量、显存大小硬件变了速度就变,没写等于没说
量化档位具体档位或精度口径不同档位速度不可比
输入/输出长度提示词和生成各多少 token长输出和短问答速度差别明显
并发数单请求还是多请求并发并发会改变单请求速度
TTFT 与生成速度两个口径分开记合在一起容易误导
测试条件备注什么情况下这个数字不成立防止别人误用
  • 每组配置跑三轮取中位数,砍掉第一次的冷启动结果,避免被首次加载拖低
  • 输入长度和输出长度都记录下来,长上下文和高输出量会明显拖慢速度
  • 在表下方写清楚「什么情况下这个数字不成立」,比如换成长输出、换成高并发就另测
  • 跨平台对比前先确认版本和量化是否一致,否则测的是两个不同的东西

什么时候不用纠结 tokens/s

不是所有场景都该盯着生成速度。分不清主次,容易为了一个不重要的指标折腾半天,最后发现瓶颈根本不在这。

  • 对话补全类任务以首 token 延迟和交互体验为主,只盯生成速度意义有限,先把 TTFT 压下来
  • 离线批处理看的是总吞吐和单位成本,不是单请求速度,应该算总账,去 /tools/model-cost-calculator 折算
  • 如果瓶颈在你自己的排队、网络或响应解析上,先修链路再谈模型速度,否则优化模型也白搭
  • 只做一次少量调用、对等待不敏感的场景,没必要为省几秒去做深度调优
下一步先到站内测速工具量一份你当前环境的基线数字,再去模型库核对你想对比的规格和用量口径,两边对齐之后,你手里的 tokens/s 才是一份能拿给别人看的结论。

常见问题

为什么我自己测的 DeepSeek 速度比别人说的慢很多?

大概率不是模型问题,而是变量不同:量化档位、显存是否够、有没有 CPU 卸载、并发数、输出长度都会影响结果。先把显存占用和是否走 GPU 确认一遍,再固定同一组参数重测,对比才有意义。

tokens/s 高就说明这个部署方式更好吗?

不一定。单请求速度高可能牺牲了并发吞吐,也可能换来了更低的量化精度。要看你跑的是交互场景还是批处理场景,前者看延迟,后者看单位时间总产出和成本,两者最优配置常常不一样。

在线接口和我本地跑的结果能直接比吗?

不建议直接比。在线侧有批处理、集群和限流策略,本地侧受你单卡显存和框架限制,两者的 tokens/s 口径并不对等。要对比就固定同一提示词和输出长度,并且把排队和网络时间单独拆出来看。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。