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