詳細解釋
Prefill(預填充)是LLM推理的第一階段,處理輸入提示(prompt),計算KV Cache供後續生成使用。
運作方式:
- 輸入:完整的提示文本
- 並行處理:一次性計算所有token的表示
- KV Cache:存儲每層的Key和Value
- 輸出:最後一個token的隱藏狀態
與Decode階段的區別:
- Prefill:輸入已知,可並行,計算量大
- Decode:逐token生成,串行,依賴KV Cache
優化:
- 並行計算:利用GPU Tensor Core
- FlashAttention:高效注意力計算
- 批處理:多條提示一起處理
計算特性:
- 計算密集型:大矩陣乘法
- 記憶體帶寬:載入模型權重
- 時間複雜度:O(n²d),n為提示長度
與Decoding的關係:
- 兩階段組成完整推理
- Prefill通常占總時間較大比例
- 長提示時尤甚
是大型語言模型 (大語言模型 / 大模型)推理優化的關鍵階段。