LLM 推理过程详解:Prefill 与 Decode 两阶段的差异与优化

拆解大语言模型推理的两个阶段:Prefill 阶段并行处理提示词并生成 KV 缓存,属于计算密集型;Decode 阶段逐个生成 token,属于显存带宽密集型,并分别给出两阶段的资源特征与优化技术。

https://www.cnblogs.com/menkeyi/p/18767869

1. LLM 推理阶段概述:

  • Prefill 阶段(预填充):
  • Decode 阶段(解码):

2. Prefill 阶段详解:

  • 作用:处理输入提示,生成 KV 缓存
  • 工作原理:完整序列处理,KV 缓存生成
  • 资源消耗:计算密集型,GPU 算力需求高
  • 优化技术:

3. Decode 阶段详解:

  • 作用:根据 KV 缓存,逐一生成 token
  • 工作原理:基于 KV 缓存推理,词汇表输出,KV 缓存更新
  • 资源消耗:显存密集型,GPU 显存需求高
  • 优化技术:

4. 推理时间计算:

  • 总推理时间 = Prefill 阶段时间 + Decode 阶段时间
  • 总推理时间 = TTFT + (TPOT * 生成 token 的总数)

5. 资源消耗对比:

  • Prefill 阶段:算力密集型
  • Decode 阶段:显存密集型

6. 整体优化:

  • Prefill-Decode 分离式推论架构:
  • 硬件和软件协同优化:
本文结束 感谢您的阅读