训练栈与推理栈:从 3D 并行到 KV 分页——产业侧怎么分层选型与验收

2026-07-31 · 方法论 · 推理 Runtime

训练卡算力与通信,推理卡 KV 与吞吐——两套栈、两套验收;混用指标是 PoC 签不了字的常见原因。

在网站中阅读

产业侧谈「算力够不够」时,经常把两件完全不同的工程问题揉在一起:训练要把参数与优化状态塞进集群并拉高有效 FLOPs;推理要把动态增长的 KV 与并发请求塞进有限显存并拉高 tok/s。混用栈、混用指标、混用验收口径,是试点做不完、PoC 签不了字的常见原因。

本文按「问题定义 → 栈分层 → 关键路径差异 → 行业应用 → 选型与验收 → 边界与来源」展开。文中倍率与吞吐均来自公开论文或官方文档在特定硬件与配置下的结果,不能外推为贵司机房的承诺数字。阅读时可先扫六张结构图,再回看对应小节。

一、问题定义:你卡的是「装得下」还是「算得动」?

大模型生命周期可粗分为:预训练 / 持续预训练 → 后训练(SFT、偏好对齐、部分 RL)→ 部署推理(在线 Serving 或端侧)。每一段的瓶颈与软件栈不同:

图1 · 决策分叉:先分生命周期(装得下 vs 算得动),再谈框架名
图1 · 决策分叉:先分生命周期(装得下 vs 算得动),再谈框架名

vLLM 论文(Kwon et al., SOSP 2023)用一张典型剖面说明推理侧矛盾:在 A100 40GB 上跑约 13B 参数模型时,权重约占 65% 显存且服务期相对静态;约 30% 用于随请求增减的 KV;激活等临时张量占比很小。因此 KV 的管理方式直接决定最大 batch、进而决定吞吐——这与预训练里「用 ZeRO / 张量并行把优化器状态切开」是不同账本。

FlashAttention(Dao et al., 2022)则指出另一层:即便 FLOPs 理论可降,若忽视 GPU HBM 与片上 SRAM 之间的读写,墙钟时间仍可能不降。训练与推理都会受益于 IO-aware 的 Attention 实现,但 Serving 还要额外解决「请求间动态、不可预知长度」的内存布局——这是 PagedAttention 要解的问题,不是 FlashAttention 要解的问题。

产业一句话:先写清你是在扩训练规模、缩推理成本,还是做端侧离线;再选栈。否则「换了框架」往往只是换了无法对齐的 demo。

二、栈分层:训练一条链,推理另一条链

图2 · 双链分层:训练链有效 FLOPs vs 推理链 KV/吞吐,两本账勿混用
图2 · 双链分层:训练链有效 FLOPs vs 推理链 KV/吞吐,两本账勿混用

2.1 训练栈(集群向)

公开工程与论文中的主流拼装大致是:

  1. 1) 并行策略层
  1. 2) 算子与通信层:NCCL 集合通信、算子融合、流水气泡控制等决定「峰值 FLOPs」有多少能变成有效 tokens。
  2. 3) 数据与检查点层:数据加载、混合精度、检查点与容错,决定长跑是否可运营。

训练栈的验收语言通常是:给定模型规模与集群拓扑,达到可接受的 tokens/s/GPU 与 loss 曲线,而不是「首 token 延迟」。

现场怎么验(训练最小集):固定 global_batch、并行配置与精度后,报告 tokens/GPU/s、MFU(或等效利用率),以及至少一次故障注入下的 checkpoint 恢复时长——只报 loss 曲线、不报有效吞吐,不算过。

2.2 推理栈(Serving / 端侧)

更有用的切法是四层(与公开 Serving 系统常见分层对齐):

  1. 1) 协议与网关:鉴权、OpenAI 兼容 API、限流。
  2. 2) 调度:连续批处理、抢占、chunked prefill 等策略。
  3. 3) Runtime 引擎:权重加载、Attention/MLP kernel、量化路径、KV 布局与会计。
  4. 4) 硬件与驱动:数据中心 GPU、消费级 RTX、Jetson 统一内存——内存模型不同,同一套「通用桌面栈」往往不可直接搬。

vLLM + PagedAttention(Kwon et al., SOSP 2023)的核心贡献是把 KV 做成类似操作系统的分页:块不必连续存放,降低碎片,并支持前缀共享。论文报告相对 FasterTransformer、Orca 等基线,在相同时延水平下吞吐约 2–4×(随序列长度、模型与解码算法更明显)。这是 Serving 内存管理的结果,不是「换了一个更快的矩阵乘」的笼统说法。

NVIDIA TensorRT-LLM 官方文档同样区分 contiguous 与 paged KV,并说明 KV reuse(相同前缀请求共享页)可降低首 token 时延;启用相关能力需在构建期打开 paged context attention 等选项(见 NVIDIA TensorRT-LLM 文档 Paged Attention / KV cache reuse)。这是厂商官方工程路径,仍须在目标机型复测。

消费级 / 边缘路径(GGUF + llama.cpp 一类通用栈,或面向 Jetson / RTX 的定制 Runtime)额外面对:统一内存争用、batch≈1 的 decode 低效区间、MoE 路由碎片化。公开材料里「同卡换引擎抬 tok/s」的讨论,应读作利用率问题,前提是权重与量化格式不变、并做 A/B——与「再买一张卡抬容量上限」是不同杠杆。

现场怎么验(推理最小集):同模型同量化下画吞吐–时延帕累托;另报 KV 峰值与(若启用)前缀缓存命中率;decode 与 prefill 分列 KPI;至少一次 24h soak,无 OOM、无尾时延漂移超约定阈值。

三、关键路径差异

对照(训练为主 vs 推理为主):

图3 · FA 与 PA 互补:算子 IO 与 KV 分页叠用,非品牌二选一
图3 · FA 与 PA 互补:算子 IO 与 KV 分页叠用,非品牌二选一

FlashAttention vs PagedAttention(务必分清):

图4 · Prefill vs Decode:瓶颈不同,KPI 须分列并报 KV 峰值
图4 · Prefill vs Decode:瓶颈不同,KPI 须分列并报 KV 峰值

Prefill vs Decode:Prefill(处理提示)更偏计算密集;Decode(逐 token)常偏内存带宽、且 batch=1 时通用 GEMM 不总占优。Token 工厂与对话产品的收入往往更敏感于 decode tok/s;长文档/RAG 则同时吃 prefill。验收附件应拆开两项 KPI,而不是只报一个「综合加速比」。

四、行业应用:四类场景,四套验收语言

图5 · 场景×KPI:四类场景各自一行验收语言
图5 · 场景×KPI:四类场景各自一行验收语言

4.1 云端高并发对话 / API

4.2 Token / Talk 工厂(消费级卡卖 token)

4.3 边缘 Agent / 机器人(Jetson 等)

4.4 后训练与 RL 管线

公开工程讨论(如产业博客对 Megatron / DeepSpeed / vLLM 分工的归纳)指出:RL 类流程常同时依赖训练后端与推理引擎(生成 rollout)。选型错误会出现「训练框架很强、采样极慢」或「推理很快、策略更新接不上」。验收应写清 rollout 引擎、训练引擎与同步协议。

五、选型与验收:PoC 附件冻结字段(改字即变更)

图6 · PoC 冻结字段:公开倍率只进背景栏,不得进承诺栏
图6 · PoC 冻结字段:公开倍率只进背景栏,不得进承诺栏

产业方启动 PoC 前,建议把下列字段写成一页附件伪表并双方冻结;任一字段改动视为范围变更。以下为可贴进 SOW/验收附件的清单(纯文本字段名,便于直接复制):

[PoC 附件 · 冻结清单]

六、边界与来源(必读)

主要数据源(tier-1):

  1. 1. Kwon et al., Efficient Memory Management for Large Language Model Serving with PagedAttention, SOSP 2023 / arXiv:2309.06180(vLLM;KV 剖面;吞吐 2–4× 相对 FasterTransformer/Orca)。
  2. 2. Dao et al., FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness, 2022 / arXiv:2205.14135(IO-aware Attention;BERT-large 约 15% 端到端;GPT-2 约 3× 等原文设置)。
  3. 3. Rajbhandari et al., ZeRO: Memory Optimizations Toward Training Trillion Parameter Models, arXiv:1910.02054(DeepSpeed ZeRO;400 GPU 上超 100B 量级等作者报告结果)。
  4. 4. Narayanan et al., Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM, SC 2021 / arXiv:2104.04473(集群训练并行组合)。
  5. 5. NVIDIA TensorRT-LLM 官方文档:Paged Attention、IFB and Request Scheduling;KV cache reuse(paged KV 与前缀复用的产品化说明)。
  6. 6. 公开工程参考(方法,非 SLA):vLLM(https://github.com/vllm-project/vllm);llama.cpp 生态(消费级 GGUF 基线常见路径)。

合作:contact@chainfir.com

链杉资本(Chainfir)· 国际高端技术人才与专利商业化代理。方法说明不构成投资、法律、雇佣或性能保证;示意≠SLA;具体合作以书面方案为准。