{"id":"mb-20260912-3fa4d3","kind":"deep","title":"一次计算只产一个token：大模型推理引擎如何把三万美元GPU压榨到物理极限","summary":"大模型生成五百字长回答，底层硬件必须完整前向循环七百次。面对预填充吃满算力、解码撞碎显存带宽的撕裂鸿沟，推理引擎通过KV缓存、分页注意力、连续批处理与前缀缓存层层接力，不仅避免显卡空转，更将百轮智能体计算量暴降80%调用开销。","body":"在前端让大模型写一篇五百字的文章，后台那张几万美元的 GPU 到底经历了什么？\n很多人以为它像打印机一样，把整篇文章算好了直接吐出来。\n真实的情况完全相反。\n这个庞大的神经网络每从头到尾跑一整遍，只吐出一个 token。\n一次前向传播，产一个词。\n一篇五百字的长回答，GPU 要在短短几秒钟里把整个模型循环跑上七百次。\n每一次循环，都在跟底层的物理硬件搏命。\nTogether AI 的工程师 Zain Hasan，最近在开源 AI 峰会上把这台推理引擎的底细彻底讲透了。\n它不是什么优雅的思考机器。\n它是一座把三万美元显卡压榨到极致的重工业流水线。\n整个过程从你敲下回车的那一瞬间就开始了。\n模型根本不认识人类的文字。\n在 GPU 真正介入之前，CPU 必须先把你的句子切碎成一个个编号。\n字典里大概有十万多个代码。\n比如你问一句纽约去哪玩，送进显卡时，其实是一串枯燥的整数。\n接下来，请求进入了整个推理过程最分裂的两个阶段。\n第一阶段叫预填充。\n它把你发过去的所有问题，一次性打包压进显卡的核心里。\n几千个计算核心全功率开动，疯狂做矩阵乘法。\n这个阶段完全是算力受限。\n显卡算力跑满了，决定了你多久能看到屏幕上蹦出第一个字。\n但只要第一个字一出来，画风立刻大变。\n系统马上滑进第二阶段，解码。\n大模型是按顺序自回归的：想算第十个词，必须先把前九个词都看一遍。\n这时候每一次循环，只算一个新词。\n矩阵计算量小得可怜，几万个计算核心大部分时间都在无所事事地空转。\n但显卡必须干一件极耗时间的苦力活：为了算出这一个新词，它必须把之前所有词的数据，从显存里完完整整搬运一遍。\n算力根本没用完，显存带宽先被撞瘫了。\n第一阶段在拼命吃算力，第二阶段在疯狂吃带宽。\n如果每生成一个新词，都要把前面所有词的注意力从头重算一遍，计算量会跟着长度呈平方级爆炸。\n怎么避免这种自杀式计算？\n工程师把前面算过的键值数据直接存下来，这就是 KV 缓存。\n下一次循环只算新词，前面全部从缓存里读。\n可是新的麻烦立刻就来了。\n三万美元一张的旗舰 GPU，显存就那么几十个 G 到一百多 G。\n每一个用户的每一轮对话，都在疯狂吞噬这些昂贵的高带宽显存。\n早期的引擎设计非常笨拙：每个请求一进来，就先给它预留最大长度的显存空间。\n哪怕你只问了两个字，剩下的显存也必须给这单留着。\n显存利用率低得离谱，大半空间都是被占着位置的空白碎片，后面的用户只能在外面干等。\n后来怎么解决的？\n工程师把操作系统管理虚拟内存的那套机制搬了过来，这就是分页注意力。\n显存不再提前整块霸占，切成固定大小的小块，按需申请，动态拼接。\n同样的显存空间，能并发接客的请求数量直接翻倍，甚至翻上几倍。\n显存挤出空间了，下一个问题是：怎么别让显卡闲着？\n以前的静态批处理，就像凑一车人发车。\n四个人的请求一起跑，有人十个词就答完了，有人要答一千个词。\n早答完的人只能干坐着等，空出来的显存和算力全在陪跑烧钱。\n现在的引擎换成了连续批处理。\n调度器不再等一整批任务结束，它在每一次循环之后重新排班。\n任何一个用户的回答刚冒出结束标记，下一毫秒立刻出队。\n等在排队列表里的新用户，当场插进这个刚空出来的卡槽。\n没有一张显卡被允许停下来休息。\n要是半路突然杀进来一个几千词的超长提示词怎么办？\n一次性吃下去，其他正在吐字的用户就会被活活卡死。\n调度器就搞分块预填充，把长输入切成两千词一段的小碎片，分批塞进显卡，一边切片一边匀速给别人吐字。\n真正把这套精巧系统推向崩溃边缘的，是智能体循环。\n人类开始用智能体写代码、跑任务，交互逻辑全变了。\n智能体不是在聊天。\n它每执行一步工具调用，都要把最初的系统设定、几十个工具接口说明、历史执行记录和新拿到的结果，打包成一个全新的请求重新发进引擎。\n在一个一百轮的智能体长任务里，灾难发生了。\n第一轮发几百个词，第十轮把前九轮全带上，第五十轮带上前四十九轮。\n每次输入都比上一次更长，而吐出来的工具调用往往只有几十个词。\n如果没有针对性的优化，每一轮交互，都要把滚雪球一样的历史记录从头到尾重新预填充一遍。\n算下来，一百轮任务的总计算量，会膨胀到第一轮的整整 55 倍。\n显卡算力直接在无休止的历史复算里被榨干。\n前缀缓存拯救了这个死局。\n既然每一轮前面那一长串系统提示词和工具定义完全没变，引擎就直接给这些文本块打上哈希标签。\n相同的前缀，物理显存块只算一次，全生命周期直接复用。\n每一轮交互，显卡只需要预填充最后新蹦出来的那一点点工具结果。\n一百轮智能体循环的总计算量，硬生生从 55 倍被砍到了 10 倍。\n当智能体在外面执行搜索或者跑代码时，引擎甚至会把它的显存缓存临时倒腾到便宜的 CPU 内存里，等它下次唤醒再搬回来。\n很多人在前端看着光标飞速打字，以为自己看到的是智能在自然流淌。\n但在那块硅片上，根本没有什么随心所欲的魔法。\n分词切片、连续拼车、显存分页、前缀复用。\n每一个环环相扣的调度机制，都是工程师在用极为繁复的工序，拼命掩盖神经网络在物理结构上的笨拙。\n算力从来不是免费的空气。\n屏幕前每一次丝滑流畅的交互，背后都是一层又一层工程调度，在顶着物理极限做生死极限的榨取。","topic":"一次计算只产一个token：大模型推理引擎如何把三万美元GPU压榨到物理极限","frame_type":["LLM推理流水线与物理饱和（预填充算力受限、解码","机制"],"citations":[],"channel_note":"","identity_notice":"","source_type":"generated","status":"published","generated_at":"2026-09-12 20:37:56","legal_anchor_count":0,"transcript_citation_count":0}