神经网络Transformer架构中的自回归生成
字数 1635 2025-12-01 13:27:40
神经网络Transformer架构中的自回归生成
第一步:理解自回归的基本概念
自回归是一种序列生成方法,其核心特点是:在生成序列的每一个新元素(如一个词、一个字或一个字符)时,模型严格依赖于它自身之前已生成的所有元素。这个过程是“自我回归”的,即当前输出是过去输出的函数。在数学上,这通常建模为一个条件概率的链式分解:要生成一个完整的序列(如一个句子)Y = (y1, y2, ..., yT),其联合概率被分解为 P(Y) = Π P(yt | y1, y2, ..., yt-1)。这意味着模型从左到右逐一生成,每一步的决策都基于已有的历史上下文,无法“看到”或使用未来的信息。
第二步:Transformer解码器中的自回归机制实现
在Transformer架构中,自回归生成是解码器的核心运行模式。具体实现依赖于两个关键技术:
- 因果掩码:在解码器的自注意力层中,为了保证自回归特性,会应用一个严格的因果掩码(也称为前瞻掩码)。这个掩码是一个上三角矩阵,其作用是在计算第
t个位置的注意力时,只允许它关注位置1到t(包括自己),而完全屏蔽掉位置t+1及之后的所有位置。这样,信息流严格地从左向右,确保了生成过程只依赖于已生成的过去词元。 - 逐步生成循环:在推理阶段(如文本生成),模型以迭代方式工作。开始时,给定一个起始标记(如
[BOS])。在每一步t,模型将当前已生成的整个序列(从起始标记到第t-1步的输出)输入解码器,经过所有层的前向计算后,从最后一个解码器层的输出中,取对应序列最后一个位置(即第t步)的特征向量,通过一个线性层和Softmax函数,得到一个在整个词汇表上的概率分布。从这个分布中,通过某种策略(如贪心搜索或采样)选择下一个词元yt,并将其追加到输入序列末尾,作为下一步的输入。这个过程循环进行,直到生成一个结束标记(如[EOS])或达到最大长度。
第三步:自回归生成的关键特性与优势
自回归生成模式具有几个重要特性:
- 顺序依赖:生成的序列具有连贯的上下文逻辑,因为每个新词都直接受前文约束。
- 简单有效:其链式分解形式在数学上和工程实现上都相对直观,并且被证明在大规模预训练语言模型(如GPT系列)中极其强大,能够生成高质量、长篇幅的文本。
- 与训练目标一致:标准的语言模型预训练任务(如下一个词预测)本质就是自回归的,这使得模型的训练过程和推理生成过程高度对齐,减少了训练-推理的差异。
第四步:自回归生成的挑战与应对
尽管强大,纯自回归生成也存在一些固有挑战:
- 误差积累:由于生成是迭代的,早期步骤中产生的错误选择会一直传递并影响后续所有生成,可能导致生成内容逐渐偏离主题或变得不合理。
- 不可并行性:在推理时,由于每一步都必须等待上一步的结果,生成过程本质上是串行的,无法利用GPU的并行计算优势,导致生成较长文本时速度较慢。
- 曝光偏差:在训练时,模型使用真实的“前一个词”作为输入(教师强制);而在推理时,模型使用自己生成的、可能有错误的“前一个词”作为输入。这种训练与推理的输入分布差异被称为曝光偏差,可能导致性能下降。
应对方法包括:使用束搜索来探索多条路径以缓解错误选择;采用采样技术(如Top-k、Top-p采样)引入随机性以提高多样性;以及在训练中引入计划采样或使用强化学习方法来部分缓解曝光偏差。
第五步:自回归与非自回归生成的对比
为了克服自回归生成的串行速度瓶颈,研究领域提出了非自回归生成模型。非自回归模型尝试一次性并行生成整个输出序列的所有词元,极大提升了生成速度。然而,这通常以牺牲生成质量(特别是依赖关系复杂的序列)为代价,因为模型失去了对序列内部强依赖关系进行显式建模的能力。因此,目前主流的大语言模型在需要高质量生成的场景下,依然普遍采用自回归范式,而在某些特定任务(如机器翻译中的部分模型)或对速度要求极高的场景中,会探索非自回归或半自回归的变体。