该问题归类到Transformer架构问题集——解码策略——自回归生成。请参考LLM数学推导——Transformer架构问题集。
1. 引言
在大语言模型(LLM)的文本生成领域,束搜索(Beam Search)作为常用的解码策略,通过保留多个候选序列来提升生成文本的质量与多样性。然而,在束搜索过程中,较长的序列往往因其对数似然累积值较大,在排名时占据优势,但这并不意味着其就是最优解。为了解决这一问题,长度归一化(Length Normalization)技术应运而生。它通过对不同长度的候选序列进行合理调整,使束搜索的排名更加公平、合理,从而筛选出更优质的生成结果。本文将从技术原理、数学理论、LLM 使用实例、代码示例与解读等方面,深入分析长度归一化对束搜索排名的影响。
2. 技术原理与数学理论
2.1 束搜索排名的原始问题
在束搜索中,通常依据候选序列的对数似然累积值来进行排名。对于一个由n个 Token 组成的序列,其对数似然累积
的计算公式为:
其中,表示在已知前面已经生成的 Token 序列
的条件下,生成当前 Token
的概率。
这种排名方式存在一个明显的问题:较长的序列由于包含更多的 Token,其对数似然累积值往往会比短序列更大。例如,在生成故事文本时,一个包含 50 个 Token 的候选序列,其对数似然累积值可能会高于仅包含 20 个 Token 的优质候选序列。这就导致束搜索在排名时,可能会优先选择长度较长但质量未必更优的序列,而错过一些简洁且高质量的短序列,影响最终生成文本的质量。
2.2 长度归一化的基本原理
长度归一化的核心思想是通过对候选序列的对数似然累积值进行调整,消除序列长度对排名的不合理影响,使不同长度的序列在排名时具有更公平的竞争环境。它引入一个与序列长度相关的归一化因子,对原始的对数似然累积值进行缩放,从而得到归一化后的分数,以此作为新的排名依据。
2.3 长度归一化的数学公式推导
常见的长度归一化公式为:
其中,Score(y)是经过长度归一化后序列y的得分,LL(y)是序列y的对数似然累积值,length(y)表示序列y的长度(即 Token 的数量),是一个可调节的超参数。
的取值对归一化结果有着重要影响:
当时,
,此时长度归一化不起作用