LLM 推理加速:深度解析 Prefilling 与 Decoding 阶段的优化秘籍
写在前面
大型语言模型(LLM)的推理过程,即模型根据输入(Prompt)生成输出(Response)的过程,是其应用落地的核心环节。然而,这个看似简单的“输入-输出”背后,隐藏着复杂的计算流程和潜在的性能瓶颈。为了追求更低的延迟和更高的吞吐量,研究者和工程师们将 LLM 推理过程细致地拆分为两个主要阶段:Prefilling(预填充) 和 Decoding(解码),并针对每个阶段的特性设计了不同的加速策略。
理解这两个阶段的差异以及各自的优化技术,对于选择合适的推理引擎、配置部署参数、甚至设计更高效的模型架构都至关重要。本文将深入探讨 Prefilling 和 Decoding 阶段的计算特性、性能瓶颈、当前广泛应用的加速技术方案(如 KV 缓存、FlashAttention、PagedAttention、模型量化、投机解码等)及其作用逻辑,并分析它们如何作用于LLM 推理。