性能优化大模型推理踩坑实录

我在懒猫算力仓上跑了 DeepSeek V4,然后跟"慢"死磕了三天

2026-09-14 · PM Parker · 阅读约 7 分钟

8 月 28 号晚上,我在懒猫算力仓上把 DeepSeek V4 Flash 跑起来了。

配置说出去还挺唬人的:两台 Jetson Thor T5000 组分布式,单台 128GB 统一内存,官方 CLI 3.0.8 一键部署,跑 vLLM,320K 上下文。

内网端点通的那一刻,还挺有成就感的。

然后我发起了第一个真实请求。

然后我等了四十五秒。

那个请求是要一句三十字的介绍。

三十个字。四十五秒。

我盯着屏幕,血压开始爬升。

接下来的三天,我把这套服务里里外外翻了一遍。

排查结束之后,速度问题解决了。但比解决方案更值钱的,是过程中我发现的一件事——

所谓"模型慢",根本不是一个问题。

是三个。

而且这三个问题的原因毫无关系,解法也毫无关系。

混在一起解决,就是白费劲。

第一个问题:解码速度,是硬件路线的天花板

先看最硬的指标:解码速度。

实测下来,每秒 20 到 27 个 token。

我调了各种参数。

纹丝不动。

深挖之后才发现根因:Thor 的 MGBE 互联加这套量化方案,在 vLLM 里没有原生的 FP4 计算路径,走的是 Marlin 解量化的迂回路线——每一层都带着额外的解压开销。

这是硬件路线决定的,调参救不了。

所以我做了个决定:这段,认了,停止投入,等上游适配。

别觉得这是认输。性能优化里最大的浪费,就是在一个没有解的层面反复使劲。

知道哪里没救,本身就是巨大的节省——我的精力全部腾给了后面两个真问题。

第二个问题:首字延迟,是编译器在冷启动

再看首字延迟:10 到 13 秒。

这个数字里有相当一部分,来自一个特别容易被忽略的机制。

vLLM 第一次运行某类计算时,要靠 Triton 即时编译计算内核。

一次性开销。编完就正常了。

也就是说,"服务重启后头几分钟特别卡"不是 bug。

是 Triton 在冷启动。

解法简单到离谱:服务就绪之后,自动发几个预热请求,把编译开销提前消耗掉。

三行脚本。

从此这个现象彻底消失。

第三个问题:最有戏剧性的来了

前面两个都是"慢",但都还在容忍范围内。

真正让我血压拉满的,是有一类任务,明显"想"得特别久。

就是开头说的那句三十字的介绍:45 秒。

我把它逐层拆开测量,发现了一个让我哭笑不得的事实——

DeepSeek V4 默认开启深度思考。

回答之前,它先在内部写了一大段推理。

那个三十字的问题,它先打了一千二百五十多个字的草稿。

烧掉 1252 个 thinking token。

然后才开始回答我。

解法是一个请求参数的事:在 body 里加 chat_template_kwargs: {"thinking": false}

同样的题目,重测:

46.8 秒,变成 1.75 秒。

27 倍。

finish reason 正常,输出质量,没有任何区别。

三天排查里最贵的归因,花了一天多。

而最便宜的优化,只是一个请求参数。

顺手还排掉一个雷

排查过程中还撞见一个衍生坑,值得单独说一句。

给 max_tokens 设小了的时候,DeepSeek V4 会先把思考 token 烧完,预算耗尽,正文一个字没写——接口返回成功,content 是空的。

排查这种"返回成功但内容为空"的问题,比排查报错恶心十倍。

解法:思考类任务 max_tokens 给到 256 以上,或者直接关思考。

又是同一个开关。

最后,沉淀成一套测量方法

这三天结束之后,我给自己立了个规矩:以后任何推理服务上线,先把一次请求拆成三段来测。

第一个字出来之前(TTFT)——查网络、排队、编译预热。解法是预热和缓存。

吐字的速度(decode)——看硬件路线。先确认天花板在哪,别跟物理较劲。

吐字之前的"思考"(reasoning)——查配置开关。这里经常藏着最便宜的提速。

三段的解法空间完全不同,互不相干。

所以下次你遇到"这模型太慢了",别急着换硬件。

先归段。

不归段的优化,就是碰运气。

这个道理放到产品上也一样成立:用户说"你们产品好卡"——首屏慢、操作慢、任务处理慢,是完全不同的三个团队、三套解法。

把主观的"慢"翻译成可测量的分段指标,是性能工作的第一步。

写在最后

这三天踩的坑不止这些:双机组网的启动顺序竞态、端口残留导致的连锁崩溃,够我再写一篇的(已经写了,见双机部署实录)。

而排查手法本身,站在两篇旧文的肩膀上:推理服务变慢排查立的规矩是"配置即假设,当前状态必须可审计";静默降级那次学的是"信探针,不信自述"。

这次那 27 倍的数字,就是金丝雀对照测出来的,不是体感。

如果你也在懒猫算力仓或者别的盒子上跑过本地大模型,踩过什么离谱的坑,来聊聊

顺便说一句,后来我的调优记录还被平台的自动更新覆盖过一次——那次的事,又是另一篇了。


← 返回博客列表 · 相关阅读:双机分布式 vLLM 部署实录 · 前缀缓存调优被静默回滚