← 返回播客与访谈档案

推理成本的下一个十倍:从更快的模型到自优化系统(Latent Space,2026-08-03)

Latent Space · 103 分钟 · 2026-08-03

这期请来的是推理服务商 Baseten 的两位工程师,Philip Kiely 和 Ali Taha。Philip 写了那本讲推理工程的书,Ali 负责量化、GPU 内核和视频扩散这些最脏的活。两人用两个多小时讲一件平时被跳过的事:一次请求进入 GPU 之后到底发生了什么,每一步各自吃掉多少成本。这对理解算力账很有用——外界习惯把推理成本当成硬件价格的函数,而他们给出的图景是,同样的权重、同样的卡,不同工程实现之间能差出好几倍,这个差距还越来越多地由系统层而非内核层决定。

一、一条长请求的旅程

假设你发进去一段 20 万 token 的请求,系统第一件事不是算,而是问:这段前缀我见过吗。缓存感知路由会去找一个既有空闲 prefill(预填充)工位、又已经存着部分 KV cache 的副本——KV cache 就是把已算过的注意力键值存下来避免重算,命中了就能跳过大部分预填充。没命中就得老实送进 prefill 集群;在部分模型上他们把 prefill 和 decode(逐 token 生成)拆到两组 GPU 上,算完的缓存再交棒过去。decode 前面还挂着 speculative decoding(投机解码):一个很小的草稿模型先连猜三个 token,大模型做一次前向验证,猜中就直接采纳。草稿模型有领域性,编码类流量的接受率高,让它去总结小说就慢下来。

这也是公有 API 与专属部署的分界线。专属部署可以按客户流量训一个草稿模型,可以定批量大小和并行策略,可以在 NVFP4 量化通不过内部基准时改用更高精度,也不必和别人的压测流量抢端点。按小时租整机,在每小时数百万 token 的量级上通常比按 token 计费便宜得多。

二、支持新模型的暗工作

“能吐出 token”和“能上生产”之间隔着很多工作。vLLM、SGLang 这类开源引擎常能提前拿到权重,跑通不难;难的是每家自有栈上的活:模型很少以 NVFP4 格式发布,为了吃满 Blackwell 得自己重做量化并校准,确认没伤到智力;草稿模型要重训,训练数据得用真权重跑推理取隐状态。遇上新架构更麻烦,GLM 5.2 带的是源自 DeepSeek 的稀疏注意力,运行时要专门支持。

开源的可拼装性也在这里显形。团队里有人把 Kimi 的视觉编码器嫁接到 GLM 5.2 上,编码器和主干都冻结,只训中间那个几百万参数的 projector(把图像表示映射进语言模型的接头)。用“描述这张图”训不出来,改成每张图配一组问答后模型才突然学会。

Kimi vision, GLM weights, and DeepSeek attention all in one model.

一个模型里同时装着三家开源实验室的部件,这是闭源栈给不了的组合方式。换层也是常规动作:MiniMax M3 用全注意力,KV cache 不稀疏、复杂度是平方级,他们干脆把某层换成别的模型里的 GQA 层,再训回接受率。

上线之后的麻烦更琐碎。GLM 曾在特定提示和温度下反复吐同一个 token(最常见的是字母 S),端点上只好加兜底:同一 token 连出四次就掐断重跑。诡异的是这不像权重问题——换个推理引擎就不复现,上游 TensorRT-LLM 镜像更新后也会好;甚至同一模型在 A 集群正常、B 集群必现,因为 B 集群节点间搬 KV cache 的互联更慢,把内核里的竞态暴露了出来。

三、十倍加速从哪里来

一个万亿参数模型在没做优化的标准 API 上大概是每秒 30 到 50 token。从 BF16 压到 NVFP4 差不多翻倍(16 位到 8 位约 30% 到 40%,8 位到 4 位再乘一次),草稿模型再翻倍,prefill/decode 分离在硬件和流量都够的前提下再翻倍,运行时和新内核再补上两位数的百分点。归一到同样的卡和同样的卡数,现实收益是 2 到 4 倍;要摸到每秒三四百 token,得同时具备好硬件、调好的草稿模型、高缓存命中率和偏延迟的小批量并行配置。在 Artificial Analysis 或 OpenRouter 上看各家分布,两端差距常在 4 到 6 倍。GLM 5.2 发布那几天还出现过一轮公开的提速竞赛,一家做到每秒 90 token,第二天另一家报 150。

质量这条线上,KV 缓存和投机解码都是无损的,真正有损的只有量化。Baseten 一位研究实习生的工作把行业直觉推翻了一半:不同层的量化误差方向不同、可以互相抵消,因而能预测哪些层该优先量化。结果是比英伟达那版多量化 20% 的层、多拿 20% 吞吐,保真度反而更好。衡量方式不是跑榜,而是比较量化模型与全精度模型 logit 分布之间的 KL 散度。

When we publish optimizations, it's 20%, it's 100%, it's 200%.

Philip 拿量化金融做对照:那边早就以基点计功了,而推理还在整数倍地捡钱;等到大家开始发“我们又快了 1%”的文章,这个领域才算做完。

四、硬件形状正在改变

显存算术直接决定模型能不能上单节点。H100 每卡 80GB,到 Blackwell 是 180GB;新版 Kimi 约 2.8 万亿参数,按 NVFP4 折算 1.4TB,只能落在八张 GB300(每卡 288GB)上,而且还得给 KV cache 留位置。并行方式随之分工:张量并行把模型横切,每步都要 all-gather/all-reduce,依赖 NVLink 这类高带宽互联,好处在延迟;专家并行把整个专家放进一张卡、只复制那个很小的路由器,通信少、吞吐高;流水线并行只在被迫跨节点时才用。还有个常被忽略的口径差异:本地推理批量为 1 时只激活 MoE 的激活参数,做 API 服务却要假设全部参数都会被激活。

With local AI, it's how do I fit this model onto my hardware and then make it less dumb. And with data center inference, it's how do I load this model and then make it less slow.

这解释了为什么 TurboQuant 这类在 Mac 上很受欢迎的技巧到了数据中心没人用:B100 有 3.5TB/s 带宽,内核里反量化的开销比省下的搬运还贵。

Ali 对 mega-kernel 明确看空:融合大内核写起来极难,他接触过的公司生产上跑的往往还是 TensorRT-LLM 和 Modular 的内核;何况张量并行下 softmax 这类非线性必须拿到整行,融合也躲不掉跨卡通信。他更关心 GPU 正在 ASIC 化——张量核、TMA、按当下模型 head 维度设计的指令,把程序员的控制粒度从线程推到 tile。Philip 的回应是芯片周期以年计,Rubin 是第一颗完全在“开源模型架构已经长成今天这样”的世界里设计出来的芯片,重点从算力转向系统:CPU 到 GPU、GPU 到 GPU 的互联,以及围绕 KV cache 搬运设计的 Dynamo。推理工程因此越来越像传统的硬件基础设施问题。至于下一个数量级卡在哪,Ali 的答案很朴素:网卡。现在跨节点搬 KV cache 要先落到对端内存再进 HBM,两段搬运;如果网卡能接近 HBM 的速度,分离式服务能再快接近两个数量级。

自研芯片要分两类看。把权重烧进芯片在他看来站不住——微调、量化、新 checkpoint 一出,芯片一两个月就废了;但模型实验室从数千亿美元级的训练开销里拿一块做垂直整合的专用芯片是合理的。Etched、MatX、Cerebras 这些公司谈的是每秒 30 万 token 的目标,瓶颈本就不在现有 GPU 内部能重排的地方。

五、视频还差一个数量级

视频扩散和 LLM 几乎是两套工程:不做批处理,一个请求占一张卡,不用切分,模型也小得多,开源侧体量在 200 亿参数上下。真正的墙是 token 数:480p、16 帧每秒的 5 秒片段压到隐空间后仍有约 3.5 万 token,而注意力是平方复杂度,一分钟的连续镜头在同样算力预算里做不出来。两条出路都不好走:稀疏注意力让每个 token 只关注最相关的一成多,画质会掉;自回归视频可以边生成边播、还能复用 LLM 那套优化,但现有的开源自回归模型质量很差。折中做法是把七秒片段拼起来,闭源侧的 Grok Imagine 做得不错,开源侧只能取上一段的最后一帧喂给图生视频,于是产生漂移——每一段都比上一段暗一点,二十几秒后画面全黑。

这也让开闭源格局与文本侧完全不同。文本上两者已经贴得很近,视频上 Kling、Veo 与开源之间还是两个世界。Ali 算过一笔账:把开源模型优化到生成一部三小时影片只收 10 美元,闭源要 1000 美元,便宜一百倍,媒体公司还是会选 Veo 和 Kling。需求不来,迭代就慢,有些实验室已经把新版本闭源了。

六、训练与推理开始合流

两个方向同时在发生。推理服务于训练:强化学习的 rollout 慢会卡住整条训练管线,等太久还会变成 off-policy 的数据。训练服务于推理:草稿模型要训,量化到 NVFP4 后质量若明显掉,就得做量化感知的后训练,英伟达的做法是让全精度版本和 FP4 版本在 logit 上做蒸馏。他们团队的推理工程师现在都得会写训练管线。

更有意思的是模型开始优化自己的推理。他们把 GLM 5.2 接进内部的编码工作流,让它在自己的实例上跑前向、取 profile trace、找出瓶颈内核、重写内核、再跑一遍 profile,打包成镜像后拉回来重复这个循环——推理引擎里跑 GLM 5.2 的一部分 GPU 内核,就是 GLM 5.2 自己写的。几年前给新模型写配置还是一份正经工作,现在一次就能生成。

顺着这条线,Philip 判断几个月到两年内,头部 agent 公司会把“从线上流量取轨迹、后训练、A/B、再上线”的闭环真正跑起来,动态调整的系统总会赢过静态配置。至于持续学习该走哪条路,两人偏向 KV cache 一侧而不是改权重:把新知识写进权重只能修一跳的事实,模型不会拿它做第二步推理;而如果能把 KV 压缩到近乎无限又不丢信息,推理侧几乎什么都不用变,只是多一步更新缓存。