关于公司网站建设的申请,一个人做网站设计兼职,wordpress自动发卡,广州越秀最新通知深度解析Transformer#xff1a;从自注意力到MLP的工作机制 以下大部分内容本来自对3Blue1Brown的视频讲解的整理组织 一、Transformer的目标
为了简化问题#xff0c;这里讨论的模型目标是接受一段文本#xff0c;预测下一个词。这种任务对模型提出了两大要求#xff1a;…深度解析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 QW_q×E QWq×E
查询向量实际上是在低维空间中表示当前词的特定信息需求即“当前词需要查询什么”。这个查询向量的维度通常会小于嵌入向量的维度以便进行后续的点积计算。
2. 键向量Key
键向量则是通过嵌入向量与键矩阵 W k W_k Wk相乘得到的。键向量可以看作是对查询的回答是查询的相对参照对象。同样地键向量将词嵌入映射到键空间中。
公式如下 K W k × E KW_k×E KWk×E
3. 查询与键的匹配
在实际计算中模型通过计算查询向量和键向量之间的点积来衡量它们的匹配程度。如果某个词的键向量与查询向量方向相齐则表明这个词与查询词高度相关。
为了数值稳定性这个点积会被除以键向量维度的平方根。接着模型会对所有的点积结果使用Softmax进行归一化生成匹配权重。
公式如下 Attention ( Q , K ) Softmax ( Q × K T d k ) \text{Attention}(Q, K) \text{Softmax}\left(\frac{Q \times K^T}{\sqrt{d_k}}\right) Attention(Q,K)Softmax(dk Q×KT)
QK矩阵大小为上下文长度的平方这就是为何上下文长度会成为大语言模型的巨大瓶颈。
4. 遮掩Masking
为了确保模型生成语言时只参考前面的词而不使用未来的词Transformer会在点积矩阵中对某些元素进行遮掩Masking。通过将某些位置的值设置为负无穷从而在softmax后为0以防止模型利用未来的信息进行预测。
5. 值向量Value
一旦得到了查询-键匹配的权重矩阵模型就能推断出每个词与其他哪些词有关。接下来就可以把各个词的信息传递给与之相关的词从而更新嵌入向量了。值向量就代表了每个词所包含的信息模型通过这些值向量将上下文中其他相关词的信息传递给当前词。
值向量的计算公式如下 V W v × E i − 1 V W_v \times E_{i-1} VWv×Ei−1 其中 E i − 1 E_{i-1} Ei−1是前一个词的嵌入向量。值向量与嵌入向量在同一个维度。值矩阵乘以一个词的嵌入向量可以理解为如果这个词需要调整目标词的含义要反映这一点得对目标词的embedding加入什么向量呢
将值矩阵与所有嵌入向量E相乘就可以得到一系列值向量同时对于每个词的那一列需要给每个值向量乘以该列对应的权重这个权重就是QK矩阵经过softmax后的输出然后对该列进行加和然后再加入到原始的嵌入向量中就得到一个更加精准的向量编码了更丰富的上下文信息。对其他嵌入向量做同样的操作后就得到了一系列更加精准的向量。
六、从单头到多头注意力
上述的描述基于单个注意力头的工作流程。而Transformer使用的是多头注意力机制即多个并行的注意力头同时执行上述计算。每个注意力头拥有独立的查询、键、值矩阵生成不同的注意力模式。最终多个注意力头的输出会被合并形成一个更为丰富的语义表示。
在GPT-3中每个模块内包含了96个注意力头这些注意力头并行地执行计算使得模型能够从不同的角度捕获词与词之间的关系。通过多头注意力机制Transformer进一步提升了对复杂语言结构的理解能力。
七、多层感知机MLP模块Transformer的事实存储核心
嵌入矩阵、Attention层、解嵌入矩阵的参数大约共占整个Transformer参数量的三分之一剩余的三分之二则是MLP层的参数。尽管关于事实存储的完整机制尚未揭示但有一条普适的高级结论事实似乎存储在神经网络中的MLP模块中。例如若一个编码了“名字迈克尔”“姓氏乔丹”的向量流入MLP那么经过一系列计算能够输出包含“篮球”方向的向量再将其原向量相加得到输出向量。
MLP模块的计算流程
MLP的处理过程可以分为以下几个步骤
1. 升维投影
首先经过自注意力层处理后的嵌入向量将通过一个升维矩阵映射到一个更高维的空间。具体来说输入向量与升维矩阵相乘。你可以将这个过程理解为从一个更广泛的角度来观察词的语义特性。每个维度代表不同的语义特征而高维空间允许模型捕捉更多的语义细节。可以设想矩阵的每一行作为一个向量设想第一行恰好为假想存在的“名字迈克尔”这一方向那么输出向量的第一个分类为1若向量编码了“名字迈克尔”或为0或负数没编码“名字迈克尔”并且其他行也在并行的提问各种问题探查嵌入向量的其他各类特征。
例如在GPT-3中升维矩阵的维度非常大49152×12288这意味着输入向量被大幅度扩展为后续的非线性操作提供了空间。
2. 非线性变换
接下来MLP通过一个非线性激活函数对升维后的向量进行变换。通常使用的激活函数包括ReLU或GELU。非线性函数的作用在于处理线性变换无法捕捉的复杂语言模式。
由于语言高度非线性经过非线性激活函数的变换后向量的语义特性会被更加明显地分离开来。这一步骤至关重要因为它使得模型能够处理复杂的、模糊的语义关系。
3. 降维投影
在非线性变换之后模型将通过一个降维矩阵将向量投影回原来的嵌入维度。这一过程与升维投影类似但逆向操作将语义特征重新压缩回嵌入空间。经过这一操作后的向量将包含更加丰富的上下文信息这些信息是在升维和非线性激活步骤中引入的。
MLP模块的计算公式如下 MLP ( x ) W 2 ⋅ GELU ( W 1 ⋅ x b 1 ) b 2 \text{MLP}(x) W_2 \cdot \text{GELU}(W_1 \cdot x b_1) b_2 MLP(x)W2⋅GELU(W1⋅xb1)b2
在这个公式中 W 1 W_1 W1是升维矩阵 W 2 W_2 W2是降维矩阵 b 1 和 b 2 b_1和b_2 b1和b2是偏置向量而GELU是激活函数。
通过这一过程MLP层将上下文信息进一步精炼并使其能够编码更复杂的语言特征。
并行处理
值得注意的是MLP模块的计算是用矩阵乘法并行进行的这意味着每个嵌入向量都可以同时被处理。这样Transformer不仅能高效处理长序列数据还能通过多层的堆叠来逐步提高对文本的理解深度。
八、叠加Superposition概念与可扩展性
在大语言模型的研究中一个引人注目的现象是模型的神经元往往并不会单独代表一个具体的语义特征。相反越来越多的研究发现Transformer中的神经元往往以“叠加Superposition”的形式存储信息。这个概念帮助解释了为什么模型可以在较少的维度中存储大量的语义信息。
叠加的基本概念
叠加概念的核心思想是在一个高维空间中语义特征并不是通过彼此完全正交的向量存储的。换句话说模型中的语义向量彼此之间不是90度垂直的而是几乎垂直的可能在89°到91°之间。这种近乎垂直的向量排列允许模型在有限的空间中容纳更多的语义特征。
这种特性可以通过约翰逊-林登斯特劳斯引理解释。引理表明在高维空间中如果放宽正交的要求允许向量接近于垂直那么可以存储的语义向量数量将随着维度数的增加而呈指数增长。对于大语言模型来说这意味着即使是一个相对有限的维度空间也能容纳数量庞大的独立语义特征。
叠加的意义
叠加现象在Transformer模型中的意义非常重大。它解释了为什么大语言模型在扩展维度时能够以如此显著的方式提高性能。随着模型的维度增加Transformer能够存储并处理更多复杂的语义信息。这也是为什么GPT-3等大型模型在处理复杂语言任务时表现卓越的原因之一。
九、GPT-3的参数分布Attention与MLP的占比
在GPT-3这样的Transformer模型中参数的分布并不均匀。总体上Transformer的参数可以分为两大类
Attention相关参数包括嵌入矩阵、Attention层、解嵌入矩阵。这些参数占据了大约三分之一的总参数量。MLP模块的参数剩余的三分之二参数主要集中在MLP层。GPT-3中共有96层MLP参数数量达到1160亿占据模型总参数量的绝大部分。
MLP模块的巨大参数量主要源于它需要处理高维空间中的信息。这也进一步强调了MLP在Transformer中的关键作用不仅是处理上下文信息还承担着事实存储和复杂语义处理的功能。
示例从名字到语义的推理
假设我们输入了一个编码“名字迈克尔”和“姓氏乔丹”的嵌入向量。当这个向量流入MLP层时经过一系列复杂的计算后模型能够推断出一个“篮球”方向的向量。然后这个向量被加回原始的嵌入向量结果是模型得到了一个包含篮球相关信息的语义表示。这一过程展示了MLP如何在语言理解任务中将多个特征融合并生成新的语义信息。
十、Transformer模型的整体优势
通过自注意力机制和MLP模块的紧密结合Transformer模型能够在自然语言处理任务中展现出强大的泛化能力。以下是Transformer的几个关键优势
全局上下文捕捉通过自注意力机制模型能够捕捉到序列中任何位置的依赖关系而不是像传统的RNN那样依赖固定的窗口。并行处理Transformer能够并行处理输入序列中的每个元素这显著提高了处理速度尤其适用于长序列的任务。丰富的语义表示多层的Attention和MLP堆叠使得模型能够生成极为复杂的语义嵌入。这使得模型可以处理从简单的句子生成到复杂的推理和对话任务。扩展性随着模型规模的增大Transformer的表现也随之大幅度提升尤其是依赖于叠加现象的可扩展性使得大语言模型能够在有限的参数空间中存储并处理海量的语言知识。
注意上面的内容没有涉及到Transformer的完整内容下面简单提一下其他内容。
位置编码但由于自注意力的并行特性模型本身没有顺序信息的概念。所以通过余弦和正弦函数生成位置编码向量添加到嵌入向量中这样嵌入向量便结合了词语的内容信息和位置信息。Transformer 模型的架构由多层堆叠的注意力机制和多层感知机MLP组成模型太深可能出现梯度消失问题同时为了加速模型收敛和训练稳定模型中每一层模块例如自注意力层或多层感知机层之后的一个关键步骤。它包括两个操作Add加法跳跃连接Residual Connection将输入直接与输出相加。Norm归一化层归一化Layer Normalization用来稳定和加速模型训练。