1. 大模型推理全景

各位同学,欢迎来到《大模型推理全流程集训》的第一章。

说实话,我见过太多团队,模型训练得漂漂亮亮,一到上线就卡壳。为什么?因为推理和训练,根本是两码事。今天我们就来聊聊,大模型从训练完到真正被用户用上,中间到底经历了什么。

推理流程概览:模型是怎么“跑起来”的?

先看一张全景图,把整个推理链路串起来。

大模型推理全流程链路 输入预处理 Token化 / Padding 模型前向计算 Transformer 逐层推理 采样 & 解码 Top-k / Top-p / Beam Search 后处理 输出过滤 核心瓶颈:显存带宽 → 访存密集型计算 → 延迟与吞吐的博弈 常见部署形态 在线推理(实时) 低延迟要求 < 500ms 离线批量推理 高吞吐优先,延迟可容忍 边缘端推理 量化压缩,资源受限 核心优化方向:KV Cache → 连续批处理 → 量化 → 投机解码 → 模型剪枝 目标:在延迟、吞吐、成本之间找到最优平衡点

说白了,推理就是把训练好的模型参数“冻住”,然后对用户的输入做一次前向传播,生成输出。但这里有个坑——推理不是一次计算就完事。对于自回归模型(比如 GPT 系列),每生成一个 token,都要重新跑一遍模型的部分计算。

核心要点:推理流程 = 输入预处理 → 逐 token 生成(含 KV Cache) → 采样 → 输出后处理。每一步都有优化空间,也是我们这门课要逐一攻克的。

推理与训练的区别:不只是“反向传播”没了

很多刚入行的同学觉得,推理不就是训练去掉反向传播吗?其实远没那么简单。我列个表,大家一看就明白。

对比维度 训练 推理
计算模式 前向 + 反向,计算密集型 仅前向,访存密集型
批量大小 大 batch(几十到几千) 小 batch(1 到几十)
延迟要求 不敏感,几小时到几天 极敏感,毫秒到秒级
显存占用 激活值 + 梯度 + 优化器状态 模型参数 + KV Cache
精度需求 FP32 / BF16 / FP16 INT8 / FP8 / INT4 量化可行
优化目标 收敛速度、模型精度 延迟、吞吐、成本

我个人习惯把训练比作“盖楼”,推理比作“装修”。盖楼时你可以慢慢来,用最好的材料,错了还能拆了重来。但装修时,用户就站在旁边看着,你得又快又好,还不能出岔子。

一个小经验:我在项目中遇到过,训练时用 FP16 跑得好好的,推理时直接转 INT8,结果模型输出全是乱码。后来才发现,某些层对量化特别敏感,得做逐层精度校准。这个坑,后面讲量化时会细说。

推理的三大挑战:延迟、吞吐、成本

做推理优化,说白了就是在三个维度上找平衡。我直接说人话:

1. 延迟(Latency)—— 用户等得起吗?

延迟就是用户发出请求到收到第一个 token 的时间。对于聊天机器人,业内共识是 首 token 延迟 < 200ms,否则用户会觉得“卡”。

为什么会这么慢?我举个例子。一个 70B 的模型,参数占 140GB(FP16)。就算你用 A100(80GB显存),也得把模型切分到多卡。每次推理,数据要在 GPU 之间来回传,光通信开销就能吃掉几十毫秒。

  • 首 token 延迟:主要受模型加载、输入预处理、第一次前向计算影响。
  • 逐 token 延迟:主要受 KV Cache 读写、注意力计算影响。
  • 端到端延迟:首 token + 后续所有 token 生成时间。

注意:我曾经踩过一个坑——用 PyTorch 的默认实现做推理,没开 torch.compile,结果首 token 延迟直接飙到 1.2 秒。后来加了图编译和 CUDA Graph,降到 180ms。所以,别小看框架层面的优化。

2. 吞吐(Throughput)—— 能同时服务多少人?

吞吐就是单位时间内能处理多少个请求。对于在线服务,通常用 QPS(每秒查询数) 或 RPS(每秒请求数) 来衡量。

你想想看,如果每个请求都要独占一张 GPU,那成本得多高?所以我们要做 连续批处理(Continuous Batching),让多个请求共享 GPU 计算资源。

批处理方式 原理 吞吐提升 延迟影响
静态批处理 等够 batch 再一起算 中等 增加排队延迟
动态批处理 请求随时加入,不等 较高 低
连续批处理 请求在迭代级别交错 最高 可控

我建议,如果你的服务延迟要求不高(比如离线分析),可以上大 batch 静态批处理。但如果是实时对话,必须用连续批处理,否则用户体验会崩。

3. 成本(Cost)—— 老板的钱包受得了吗?

成本是终极挑战。一张 A100 每小时大概 3-5 美元,H100 更贵。如果你部署一个 70B 模型,至少需要 2-4 张 GPU。一个月下来,光 GPU 租金就是几万到十几万美元。

怎么降成本?说白了就两条路:

  • 减少计算量:量化(INT8/INT4)、剪枝、蒸馏、投机解码。
  • 提高硬件利用率:连续批处理、KV Cache 优化、显存复用。

一个真实的案例:我之前帮一家公司优化他们的客服模型。原来用 8 张 A100 跑 13B 模型,QPS 只有 50。后来做了 INT8 量化 + 连续批处理 + KV Cache 优化,同样的负载只用 2 张 A100,QPS 反而到了 200。成本直接降到原来的 1/4。

小结:推理优化的本质

嗯,到这里你应该明白了。推理优化不是炫技,而是在延迟、吞吐、成本这个三角里找到最适合你业务的那个点。

接下来的课程,我们会逐一深入每个环节:从模型量化、KV Cache 优化、连续批处理,到更高级的投机解码、模型并行、服务框架选型。每一章我都会结合自己踩过的坑和实际项目经验来讲。

准备好了吗?我们开始吧。