束搜尋

Beam Search

保留多個候選序列的解碼策略

詳細解釋

束搜索(Beam Search)是序列生成中的解碼策略,在每一步保留k個最可能的候選序列,平衡生成質量和計算效率,優於貪婪搜索但計算成本更高。

算法原理:

  • 貪婪搜索:每一步選概率最高的token
  • 束搜索:
  • Beam Width:k(通常3-10)
  • 每步保留k個最佳部分序列
  • 最終選整體概率最高的

示例(k=2):

  • 第1步:選「A」(0.4)、「B」(0.3)
  • 第2步:
  • 從「A」擴展:「AA」(0.16)、「AB」(0.12)
  • 從「B」擴展:「BA」(0.09)、「BB」(0.06)
  • 保留前2:「AA」、「AB」
  • 繼續直到結束

與其他解碼策略的對比:

  • Greedy Search:
  • 最快
  • 可能次優(局部最優)
  • Beam Search:
  • 質量較好
  • 計算成本中等
  • 適合機器翻譯、摘要
  • Sampling(採樣):
  • Temperature、Top-k、Top-p
  • 多樣性高
  • 適合創意生成

變體:

  • Diverse Beam Search:
  • 鼓勵多樣性
  • 懲罰相似序列
  • Length Normalization:
  • 長序列懲罰
  • 防止偏短輸出
  • Coverage Penalty:
  • 防止重複
  • 摘要任務重要

應用場景:

  • 機器翻譯:傳統標準
  • 文本摘要:準確性重要
  • 語音識別:準確性重要
  • 代碼生成:某些場景

局限性:

  • 計算成本:beam width線性增加
  • 重複:可能產生重複內容
  • 多樣性:不如採樣多樣
  • LLM時代:採樣更流行

在LLM中的使用:

  • 推理任務:仍有用
  • 創意生成:採樣為主
  • 混合:多樣束搜索

Beam Search是準確性優先的解碼選擇。

探索更多AI詞彙

查看所有分類,繼續學習AI知識