【Transformer 与注意力机制】17|Causal Mask:让模型只看过去不看未来
内容提要
因果掩码是自回归生成模型中的关键技术,确保模型在训练时仅依赖过去的信息,解决了Transformer在并行处理与生成任务之间的矛盾。通过将上三角部分设为负无穷,因果掩码确保模型在生成时不“偷看”未来的token。这一技术是现代大语言模型(如GPT系列)的基础,提升了模型训练的效率和规模。
延伸解读
因果掩码的工程意义
因果掩码不仅是自回归生成模型的一个实现细节,它是确保Transformer在训练时能够并行处理的关键。通过强制模型在生成时只依赖过去的信息,因果掩码解决了并行处理与生成任务之间的矛盾,使得大规模模型的训练成为可能。没有因果掩码,训练效率将大幅下降,甚至无法实现。
推理与训练的区别
在推理阶段,因果掩码的作用与训练阶段有所不同。推理时,模型每次生成一个token,结构上自然满足因果性,因此不需要显式的因果掩码。而在训练阶段,因果掩码与teacher forcing结合,确保模型在每一步都使用真实的历史信息,从而实现高效的并行训练。
长序列下的开销与优化
随着长序列的普遍应用,因果掩码的开销变得不可忽视。构造一个n × n的掩码矩阵在显存上占用巨大,因此需要采用优化策略,如常量化和按需计算等,以降低内存占用和计算复杂度。这些优化措施对于处理长上下文的模型至关重要。
Q&A
因果掩码在自回归生成模型中的作用是什么?
因果掩码确保模型在训练时仅依赖过去的信息,避免在生成时“偷看”未来的token,从而解决了Transformer在并行处理与生成任务之间的矛盾。
因果掩码是如何实现的?
因果掩码通过将上三角部分设为负无穷,确保模型在生成时只关注对角线及以下的token,从而形成合法的注意力分布。
因果掩码如何提高模型训练的效率?
因果掩码结合teacher forcing,使得Transformer的训练能够实现并行化,显著提高训练速度,避免了串行训练的低效。
自回归模型的定义是什么?
自回归模型是将整个序列的联合概率分解为条件概率的乘积,模型在预测时只能见到过去的信息。
推理时因果掩码的作用是什么?
推理时因果掩码在prefill阶段需要使用,以确保模型在处理长prompt时只看到之前的token,保持训练与推理的一致性。
因果掩码与teacher forcing的关系是什么?
因果掩码与teacher forcing结合,确保模型在每一步预测时使用真实的历史信息,从而提高训练的稳定性和效率。