推理优化
运行 LLM 只是起点。让它更快、更高效、更具可扩展性,才是推理优化(inference optimization)的用武之地。
为什么需要优化推理?
在演示环境中可行的配置,在真实流量下可能会失效。随着队列的形成,延迟会增长;吞吐量可能停滞在硬件容量之下;成本可能比预期增长得更快。在生产环境中,优化能帮助你在产品可承受的成本下达成延迟和吞吐量目标。
优化还能让你更好地权衡取舍。某些工作负载需要为交互式用户提供低延迟;另一些需要为批量任务提供最大吞吐量;长上下文应用需要精心的 KV 缓存(KV cache)管理;多租户系统需要路由与调度策略,以防止一个工作负载拖累另一个。
如果你使用的是无服务器端点(例如 OpenAI API),其中大部分工作已被抽象掉,但这些权衡仍然会影响价格、速率限制和响应时间。如果你自托管开源或自定义模型,运用正确的优化技术,你就能让服务栈适配你的实际工作负载,而不是被动接受默认运行时给你的一切。
- LLM 性能基准测试 — 如何设计和运行可靠的性能基准,以度量吞吐量、延迟与成本。
- 静态、动态与连续批处理 — 不同批处理策略如何提高 GPU 利用率,以及分块预填充(chunked prefill)的调度方式。
- PagedAttention — 以分块方式管理 KV 缓存内存,减少碎片并提高内存利用率。
- 投机解码 — 通过草稿模型提出 token、目标模型并行验证来加速生成。
- 预填充-解码分离 — 将预填充与解码拆分到独立硬件上,以更好地并行与扩展。
- 前缀缓存 — 跨请求复用共享提示词前缀的 KV 缓存,以降低延迟与成本。
- 推理路由 — 基于缓存局部性、队列深度与 KV 缓存压力来决定请求的去向。
- KV 缓存卸载 — 将不活跃的 KV 缓存数据迁移到更廉价的存储,以释放 GPU 内存。
- 数据、张量、流水线、专家与混合并行 — 在多设备间分配推理工作的不同并行策略。
- 离线批推理 — 在静态大数据集上批量生成预测,用于非实时处理。