该问题归类到Transformer架构问题集——解码策略——自回归生成。请参考LLM数学推导——Transformer架构问题集。
1. 引言
在大语言模型(LLM)的文本生成领域,束搜索(Beam Search)是提升生成质量的关键策略。通过保留多个候选序列,束搜索有效避免局部最优问题,而对序列对数似然累积方差的分析,更是理解其生成过程、优化策略的核心。本文将从技术原理、数学推导、实际应用、代码实现、优缺点及优化策略等方面,深入剖析束搜索,助力读者全面掌握这一技术。
2. 束搜索技术原理
2.1 基本概念与运行机制
束搜索是贪心搜索的进阶策略,旨在克服贪心搜索仅选择局部最优 Token 的局限性。其核心在于每一步生成时,保留概率最高的k 个候选序列(k 为束宽),通过多路径探索,提升找到全局更优解的概率。
以生成故事文本为例,假设输入提示为 “在古老的森林中”。初始阶段,模型基于输入计算词汇表中各 Token 概率,选出概率最高的 k 个 Token,如 “有”“隐藏着”“生长着”,分别与输入组合形成 k 个初始候选序列:“在古老的森林中有”“在古老的森林中隐藏着”“在古老的森林中生长着”。
后续每一步,以 “在古老的森林中有” 为例,模型计算下一个 Token 概率分布,可能得到 “神秘的遗迹”“凶猛的野兽”“清澈的溪流” 等候选 Token,将其分别添加到原序列形成新子序列;其余初始候选序列也进行同样操作。此时,从所有新生成的候选序列中,依据序列联合概率(通常通过对数似然累积计算),选取概率最高的 k 个序列进入下一步。重复此过程,直至达到预设生成长度或满足终止条件,最终从保留候选序列中选择最优序列作为生成结果。
2.2 与大语言模型的结合方式
主流基于 Transformer 架构的 LLM 与束搜索结合时,形成紧密协作流程。首先,模型对输入文本进行编码,利用多头注意力机制捕捉文本中 Token 间语义关联与依赖关系,理解上下文信息。例如处理 “小明去书店,他买了一本好书”,多头注意力机制能明确 “他” 指代 “小明”。
编码后的信息经前馈神经网络进一步处理,在输出层得到每个可能 Token 的对数概率(logits)。logits 通过 softmax 函数转换为概率分布后,束搜索依据此分布,按自身机制每步保留 k 个候选序列,逐步生成完整文本。在此过程中,LLM 强大的语义理解与特征提取能力为束搜索提供准确概率计算基础,束搜索则助力 LLM 探索更多生成路径,二者协同实现高质量文本生成。
3. 序列对数似然累积与方差分析
3.1 序列对数似然累积
在束搜索中,** 序列对数似然累积(Log - Likelihood Accumulation)** 是评估候选序列优劣的重要量化指标。对于由 n 个 Token 组成的序列,其对数似然累积
计算公式为:
其中,表示在已知已生成 Token 序列