加载中...
集束搜索是一种用于序列生成的启发式解码算法,在每一步保留概率最高的若干候选序列(束宽),兼顾搜索质量与计算成本。它广泛用于机器翻译和文本摘要,是介于贪心解码与穷举搜索之间的折中方案。

| 中文名 | 集束搜索 |
| 英文名 | Beam Search |
| 类别 | 序列解码算法 |
| 关键参数 | 束宽 k |
| 典型应用 | 机器翻译、语音识别 |
集束搜索(Beam Search)是一种在序列生成任务中广泛使用的启发式解码算法。它在每个时间步只保留概率最高的若干条候选序列(数量称为束宽),既避免了贪心解码的短视,又规避了穷举所有序列的组合爆炸。
自回归模型逐词生成文本时,理论上应寻找整体概率最高的输出序列,但完整搜索的空间随长度指数增长,不可行。贪心解码每步只取最优词,容易陷入局部最优。集束搜索通过维护一个固定大小的候选集合,在效率与质量之间取得平衡,长期是神经机器翻译和文本摘要的默认解码方式。
为避免模型偏爱短句,通常还会引入长度归一化,对累积概率按序列长度做惩罚修正。
集束搜索在需要确定性、高质量输出的任务中表现突出,如机器翻译、语音识别转写和图像描述生成。相比温度采样等随机方法,它输出稳定、可复现,适合对准确性要求高的场景。不过在开放式创意写作中,它可能导致重复和乏味,此时更倾向使用核采样等随机解码。
问:束宽是不是越大越好?答:并非如此。适度增大束宽能提升翻译质量,但过大反而可能引入更短或更保守的译文,同时显著增加显存和计算开销,实践中常取 4 到 10 之间。
问:集束搜索和采样解码怎么选?答:任务若追求准确、唯一的最优答案,选集束搜索;若追求多样性和创造性,如故事生成,则更适合温度采样或核采样等随机方法。

| 中文名 | 集束搜索 |
| 英文名 | Beam Search |
| 类别 | 序列解码算法 |
| 关键参数 | 束宽 k |
| 典型应用 | 机器翻译、语音识别 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧