深度解析Transformer:从自注意力到MLP的工作机制
以下大部分内容本来自对3Blue1Brown的视频讲解的整理组织
一、Transformer的目标
为了简化问题,这里讨论的模型目标是接受一段文本,预测下一个词。这种任务对模型提出了两大要求:
- 理解上下文:模型需要根据已经出现的词,预测未来的词。
- 动态调整:模型需要根据不断变化的输入序列调整其预测。
为了实现这一目标,Transformer依赖于一种特殊的机制,即自注意力机制。
自注意力机制是什么?
自注意力机制之所以被称为“自”,是因为它处理的是同一个序列内部的词与词之间的关系。传统的RNN或CNN模型通常只能处理相邻词之间的依赖,而自注意力使得序列中的每个元素(词)都能够关注到序列中所有其他位置的元素。这使得模型能够在任何位置的词进行推理时,考虑到整个序列的上下文信息。
通过这种机制,Transformer能够更精确地处理复杂的语言模式。例如,模型在生成某个词时,既可以参考之前的所有词,也能够灵活地调整生成过程,以应对长距离依赖关系。
二、Transformer的架构概述
Transformer的整体架构可以分为三个主要部分:
- 嵌入矩阵:将输入的token(文本中的词或字符)转化为高维向量表示。
- 中间层(Attention + MLP):层层堆叠的Attention机制和多层感知机(MLP),帮助模型提取深层次语义信息。GPT-3使用了96层这种结构。
- 解嵌入矩阵:用于将最后的嵌入向量解码为输出结果,即每个词的概率分布,进而预测下一个词。
接下来我们深入理解各部分的工作原理,尤其是自注意力和多层感知机。
三、Softmax与Temperature的作用
在将模型的输出转化为词语的概率时,Transformer通常使用Softmax函数。Softmax可以将一个数列转换成一个概率分布,这样模型可以根据概率选择最可能的下一个词。然而,Softmax还引入了一个额外的调节参数,称为Temperature(温度)。
- 当T值较大时,Softmax函数会赋予较小的数值更多的权重,使得输出分布更加均匀。这意味着模型会产生较多不确定性。
- 当T值较小时,Softmax的输出更加集中,较大的数值将占据更高的权重。极端情况下,当T趋近于0时,模型几乎只考虑最大值。
Temperature在语言生成任务中的调节尤为重要,它可以控制模型生成文本时的多样性。
四、高维空间与语义方向
Transformer模型中的词被表示为嵌入向量,这些向量位于一个高维空间中。在这个空间中,不同的方向对应不同的语义。例如,一个方向可能代表“积极的情感”,另一个方向则可能表示“时间”相关的概念。
Transformer的目标是逐步调整这些嵌入向量,使它们不仅仅表示单个词的含义,还能够编码词之间的上下文关系。这种语义方向的调整使得模型能够更好地捕捉复杂的语言结构。
五、自注意力机制的工作原理
自注意力机制通过三个核心向量来实现:查询向量(Q)、键向量(K)和值向量(V)。这些向量的计算和交互是Transformer能够处理序列中任意位置的关键。
1. 查询向量(Query)
查询向量是通过将嵌入向量与查询矩阵( W q W_q Wq)相乘得到的。查询向量表示了模型当前需要提取的信息,并将嵌入空间中的词映射到低维的查询空间中。
公式如下: Q = W q × E Q=W_q×E Q=Wq×E
查询向量实际上是在低维空间中表示当前词的特定信息需求,即“当前词需要查询什么”。这个查询向量的维度通常会小于嵌入向量的维度,以便进行后续的点积计算。
2. 键向量(Key)
键向量则是通过嵌入向量与键矩阵( W k W_k Wk