训练
- 通过对数据批次做反向传播来更新权重
- 在多节点集群上运行数小时到数周
- 使用 PyTorch、JAX、DeepSpeed、Megatron 等工具
- 只有在现有模型都不合适时,才值得自己训练
提示词与响应之间究竟发生了什么:生成循环、主导延迟的两个阶段、承载计算的硬件,以及用来描述它们的指标。
训练在大规模数据集上调整模型权重,通常只做一次,运行在大型加速器集群上。推理把冻结的权重持续应用到新输入上,为产品收到的每一个请求服务。训练成本基本是一次性投入;推理成本会随流量不断累积,因此服务效率决定了一款 AI 产品的经济性。
还有一个相关区别:推理框架负责高效执行模型,而推理服务器在其外面包上批处理、排队、流式输出、健康检查、自动扩缩容以及 HTTP 或 gRPC API。生产系统两者都需要。
prefill 与 decode 的划分解释了服务端的大部分行为:长提示词拖慢首个 token 的时间,长输出拖慢总延迟,而服务优化页面上几乎每一项优化,针对的都是其中某一个阶段。逐 token 生成是主流范式,但不是唯一范式:基于扩散的语言模型改为通过迭代精化一次生成整段文本,这是一个活跃的研究方向,延迟表现也不同。
通用、随处可得,但并行吞吐有限。适合小模型或高度量化的模型、原型验证,以及没有加速器的边缘设备。
LLM 服务的默认选择:数千个并行核心和高带宽内存(HBM),正好匹配主导该负载的矩阵乘法。生态包括 CUDA 和 ROCm。
专门设计的张量加速器(例如搭配 XLA/JAX 的 TPU)在大规模场景下可以很高效,代价是软件生态更窄,并且与服务商绑定更深。
选型依据是模型规模、请求量、延迟目标、成本,以及你已经在运维的基础设施。浏览器、边缘和移动端的执行分别在Web 推理与边缘与移动端中讨论。
| 指标 | 含义 | 最重要的场景 |
|---|---|---|
| TTFT | 首个 token 的时间,主要由排队加 prefill 构成 | 聊天以及任何交互式界面 |
| ITL / TPOT | token 之间的延迟;每个输出 token 的时间是它在整段响应上的平均值 | 用户感知的流式速度 |
| E2EL | 请求的端到端延迟;TPOT 约等于 (E2EL - TTFT) / (输出 token 数 - 1) | 批处理环节和工具调用链 |
| TPS / RPS | 给定并发下的每秒输出 token 数和每秒请求数 | 容量与成本规划 |
| Goodput | 只统计达成了延迟目标的那部分请求 | 受 SLO 约束的生产服务 |