1.4 KiB
1.4 KiB
Beam Search(束搜索)通俗解释
一句话:一种在生成序列(文本、翻译、语音)时,比“贪心”更优、比“穷举”更快的搜索算法。
1. 核心场景
AI 生成文字时,每一步都要选下一个词:
- Greedy Search(贪心):每步只选概率最高的1个,容易局部最优、整体很差。
- Exhaustive Search(穷举):试所有可能,效果最好但太慢、算力爆炸。
- Beam Search:每步只保留概率最高的 k 个候选路径,平衡效果与速度。
2. 超简单比喻
你要走迷宫找终点:
- 贪心:每步只走眼前最好的一条路。
- 束搜索(beam=k):每步保留 top-k 条最好的路,一起往前走,最后选整条路径概率最大的。
3. 关键参数
- beam width(束宽)= k
- k=1 = 贪心搜索
- k越大 → 效果越好、越慢
- k=无穷 = 穷举
4. 工作流程(极简)
- 第一步:选出概率最高的 k 个词。
- 第二步:对这 k 个词,分别生成下一个词,再从所有结果里重新选 top-k。
- 重复直到结束,选整条序列概率最大的输出。
5. 优点 & 缺点
✅ 优点:
- 比贪心更通顺、更少局部最优
- 比穷举快得多、可实际使用
❌ 缺点:
- 仍不是全局最优
- 可能生成重复、呆板、过于安全的句子(现在大模型多用采样代替)