Forward Pass
Forward Pass
Forward pass(前向傳播)的核心概念是「input 從第一層算到最後一層、得到 output 的單向計算流程」。LLM 推論時生成一個 token、就是跑一次 forward pass;訓練時、每個 batch 也都先跑 forward pass 算出 loss、再跑 backpropagation 算 gradient。
概念位置
LLM 一次 forward pass 的大略流程:
1input token IDs
2 ↓ embedding layer:整數 → 向量
3sequence of vectors
4 ↓ Transformer block 1(attention + FFN)
5 ↓ Transformer block 2
6 ↓ ...
7 ↓ Transformer block N
8final hidden state
9 ↓ output projection(hidden → vocab)
10logits(每個 vocab token 一個分數)
11 ↓ softmax(推論時)
12probability distribution → 挑下一個 token跟相關概念的對比:
| 概念 | 跟 forward pass 的關係 |
|---|---|
| Prefill | Prompt 階段的「一次性 forward pass」、所有 prompt token 並行 |
| Decode 階段 | 每生一個 token 跑一次 forward pass、序列化、慢 |
| Speculative decoding | 一次 forward pass 同時驗證多個猜測 token |
| Backpropagation | 訓練時 forward pass 的反向延伸、推論不需要 |
設計責任
理解 forward pass 後可以判讀 LLM 的記憶體與速度:每次 forward pass 都要把整份模型權重從記憶體讀到處理器一次、所以 memory bandwidth 是推論瓶頸;KV cache 的存在是為了避免每次 forward pass 重算前面 token 的 K/V;MTP / speculative decoding 都是「一次 forward pass 攤平多個 token 成本」的優化路徑。