LLM Inference

条目状态与系统位置

本图位于 Inference Layer,核心是 request computation、KV memory、scheduling 和 engine;它向上连接 Serving,向下依赖 Transformer 与 AI Infra。链接是独立文章;标注“未单列”表示该概念由相邻文章覆盖;标注“待建”表示目前只有主题占位。

排错主线

1
2
3
4
5
6
模型与 tokenizer
→ prefill / decode 资源分离
→ KV cache 容量与布局
→ batching / admission / scheduling
→ kernel、量化、并行与网络
→ engine 与 serving SLO

先定位 TTFT 还是 TPOT、单请求还是并发,再选择优化层。不要用端到端 tokens/s 掩盖首 token 延迟、p99、OOM 或质量漂移。

总览与指标

先修知识

  1. Autoregressive Generation
  2. Causal Mask
  3. KV Cache

单请求推理

  1. Prefill
  2. Decode
  3. Sampling(未单列:由 Autoregressive Generation 覆盖)

多请求调度

  1. Static Batching(未单列:作为 Continuous Batching 的对照概念)
  2. Continuous Batching
  3. Chunked Prefill(未单列:由 Prefill 和 Continuous Batching 覆盖)

KV Cache 管理

  1. KV Cache Memory Calculation(已并入 KV Cache
  2. PagedAttention
  3. Prefix Caching(待建:目前只有 KV Cache 中的机制说明)
  4. KV Cache Offloading(待建)
  5. KV Cache Quantization(待建:量化总览已有,但没有独立 KV 量化文章)

解码加速

  • Speculative Decoding
  • Draft Model(未单列:见 Speculative Decoding
  • Medusa(待建:仅在 Speculative Decoding 中作横向比较)
  • EAGLE(待建:仅在 Speculative Decoding 中作横向比较)
  • MTP(待建:仅在 Speculative Decoding 中作横向比较)

分布式推理

量化与部署

推理引擎

先读 Inference Engine Selection,从工作负载与 SLO 建立决策边界,再进入具体实现:

先按症状选分支

TTFT 高而 TPOT 正常,先沿 prefill、输入队列和 prompt 长度查;TPOT 高而单请求显存正常,沿 decode、权重/KV 带宽、GQA、量化和 speculative 查;并发一上来就 OOM,先算 KV 容量和 admission,而不是先换更快 kernel;平均吞吐不错但 P99 差,则查长短请求混部、continuous batching 和 chunked prefill。这个分支顺序比“把所有优化都打开”更容易保留因果证据。

从单请求到服务容量

单请求实验用于确认 logits、sampling、KV cache 与 full-forward 一致;并发实验才暴露 batch 形状、分页碎片、队列和尾延迟;多卡/多节点实验再加入通信、拓扑和 KV transfer。每扩展一层都要保留上一层的质量和指标基线,否则多卡吞吐提升可能掩盖通信或路由回归。最终决策应回填 Project - hx_llm,并把不能由现有硬件区分的假设放入 Open Questions