詳細解釋
貪婪解碼(Greedy Decoding)是序列生成中最簡單的解碼策略,每一步選擇概率最高的token,確定性輸出,計算高效但可能陷入重複或次優解。
工作原理:
- 每步操作:
- 計算所有候選token的概率
- 選擇argmax(概率最高)
- 將其作為下一步輸入
- 重複直到結束符
特性:
- 確定性:相同輸入總是相同輸出
- 快速:無需採樣,簡單取最大值
- 局部最優:每步最優≠全局最優
- 重複傾向:容易循環重複
與其他策略的對比:
- Beam Search:
- 保留多個候選
- 計算成本高
- 質量通常更好
- Sampling(Top-k/p):
- 隨機性
- 多樣性高
- 不確定輸出
- Greedy:
- 最簡單最快
- 適合確定性任務
- 可能質量不高
適用場景:
- 確定性任務:
- 數學計算
- 格式轉換
- 代碼補全(某些場景)
- 評估基準:
- 標準化比較
- 消除隨機性影響
問題:
- 重複循環:
- 「我我我...」或「the the...」
- 自增強循環
- 次優解:
- 開頭選錯導致整體差
改進:
- Repetition Penalty:
- 懲罰已出現token
- Temperature=0:
- 軟化後取最大值
- 略有不同
在LLM中的使用:
- 較少直接使用
- 評估基準常用
- 某些任務配合懲罰使用
Greedy Decoding是最簡單的解碼基線。