一句话定义

文本生成时,不单单只保留一条句子,同步维持 K 条最优候选句子(K叫束宽 beam size)。每一步新词预测后,筛选总分最高的K条继续推演,直到生成结束,最后选出综合得分最高的句子作为结果。

束宽 Beam Size:你要并行保留多少条候选路线。常用取值 3 / 5。 当 Beam Size = 1,束搜索 = 贪心解码。

生活化类比

你想爬山找最佳观景路线。

  • 贪心解码:每次岔路口只选当下看起来最好走的一条路,一条路走到头,不考虑别的分支。
  • 束搜索(beam size=2):同时开辟2条道路往前走。每遇到岔路,两条路各自分出新分支;全部分支评比,只留下综合表现最好的2条继续前进,其余路线直接舍弃。抵达终点后,对比两条完整路线,选出体验最好的那条。

结合供应链案例直观演示

上文:零部件库存不足,设定 beam size = 2 词候选:缺货、物流、采购

第1轮预测

所有可能短句:

  1. 零部件库存不足 缺货
  2. 零部件库存不足 物流
  3. 零部件库存不足 采购

保留得分最高2条,淘汰“采购”。 当前存活两条候选: A:零部件库存不足 缺货 B:零部件库存不足 物流

第2轮预测

A、B两条句子分别独立预测下一个单词,产生一堆新句子; 汇总全部新句子,再次排名,依旧只保留总分最高2条。

持续循环

不断扩展句子,直到任意一条生成结束符。 全部路径生成完毕后,对比所有完整句子的累计分数,选出最终答案。

⚠️重点: 它评判好坏看整条句子累积概率,不只看当下这一个单词,很大程度解决贪心“只顾眼前”的缺陷。

✅优势

  1. 相比贪心解码,更容易产出通顺、逻辑完整的长文本;
  2. 机器翻译场景行业标配。

❌短板

  1. 需要同时计算多条句子,算力更高、响应速度更慢;束宽K越大,消耗资源越多;
  2. 依然是确定性算法,每次输入得到的结果固定;
  3. 倾向生成保守、平淡的文字,缺少创造性,不适合聊天机器人;
  4. 束宽增大带来的提升存在天花板,一般K>5后效果提升微乎其微。

【关键链路串联】

Decoder输出Logits → Softmax得到词汇概率 → Beam Search:维持多条候选句子,每一轮扩展、筛选保留Top-K → 生成终止后,挑选总分最优句子 → 输出文本

30秒汇报话术

束搜索是改进版的文本生成策略。我们设定束宽K,同步保留K条候选句子同步生成。每一轮预测新词后筛选最优K条继续推演。 相比贪心解码,它兼顾整条文本的整体质量,语句流畅度更好;缺点是算力开销更大。它适合机器翻译这类重视语句通顺、不需要创意的场景。

补充区分(方便记忆)

  1. Greedy(贪心):只留 1 条路径,速度最快
  2. Beam Search(束搜索):保留 K 条路径,追求通顺
  3. Top-p / Top-k 采样:引入随机,用来实现多样化对话