Transformer学习记录(6):模型存储事实和MLP模块的本质作用

发布时间:2026/8/8 16:02:55
Transformer学习记录(6):模型存储事实和MLP模块的本质作用 学习了3Blue1Brown的视频以此进行记录与分享。建议大家直接去观看大佬的视频做的很好很直观。视频连接文章目录Transformer中的MLP模块MLP模块如何存储事实基础假设具体介绍1. 第一个全连接层ReLU激活函数3. 第二个全连接层4. 残差连接补充知识Superposition叠加Transformer中的MLP模块在每个Transformer Layer中数据经过注意力后会流向一个包含残差结构的MLP模块结构如图所示。而MLP模块内部有3部分构成一个线性层一个ReLU激活函数和一个线性层。线性层是通过全连接层实现相当于执行了矩阵乘法。最终再与原始向量进行相加。在实际运行中针对每个输入的嵌入向量都执行上述操作因此输入的向量个数与MLP模块中包含的全连接层的个数是正相关的。第一个全连接层的输入神经元的个数嵌入向量的维度第二个的输入神经元个数嵌入向量的维度。而嵌入向量的维度一般都是很高的GPT3中为12288因此MLP模块是占据了参数两的大头。MLP模块如何存储事实通过一个例子来具体说明以“Michael Jordan plays basketball”为例子说明MLP是如何存储事实的。基础假设经过学习我们可以知道补充视频在高维空间中不同的方向可以代表着不同的语义信息。因此这里在假设高维空间的三个方向分别代表“First Name Michael”、“Last Name Jordan”和“Basketball”这三个信息而且它们之间是几乎垂直的这点和重要几乎垂直这一特性让模型可以存储更多的事实后面的讲解。若一个向量与“First Name Michael”的向量的点积为1.0则代表该向量编码了“First Name Michael”这个信息。点积的大小代表了该向量与所代表含义的一致性。假设一个向量代表了全名为“Michael Jordan”那么这个向量和这两个方向的点积必定为1。假设一个MLP模块若储存了“Michael Jordan plays basketball”这一事实那么将蕴含“Michael Jordan”方向的向量输入到模块中会得到包含“Basketball”方向的向量最后将它们相加。具体介绍1. 第一个全连接层第一个全连接层相当于进行一次矩阵乘法列数嵌入向量的维度每行与嵌入向量相乘。一般第一个全连接层都会提升向量的维度。第一个全连接层的目的是为得到嵌入向量与各类语义特征之间的相关性具体解释如下我们可以将矩阵的每行视作一个向量那么矩阵乘法的结果就由嵌入向量和这些向量的点积构成。而正如之前学的点积的大小代表了它们之间的相似度。这样的话我们可以将每行向量都代表了一种语义特征或一个问题通过矩阵乘法就可以得到嵌入向量与各类语义特征之间的相关性为后面使用。举个例子若第一行向量代表了“First Name Michael”这个特征那么输出向量的第一个分量代表了嵌入向量是否编码了“First Name Michael”若编码了则为1反之小于0。有时一个行向量不仅编码了一种语义特征。假如第一个行向量包含“First Name Michael”和“Last Name Jordan”嵌入向量与它的点积若为2则代表它编码了“Michael Jordan”。而在具体计算中通常会添加一个Bias向量来对点积的值进行规范可以在向量包含多类语义特征时保证通过正负就可以确定是否相关这为后面ReLU提供方便。第一个全连接层的操作如图所示。ReLU激活函数前面的全连接层的操作是线性的但语言是高度非线性的过程。即使输入项中“Michael”“Jordan”的预测值高也不能说明它就是“Michael Jordan”可能由其他相近但无关的词导致而我们所需要的是简单的判断其蕴含的信息是否为我们需要的。因此引入了一个非线性函数ReLU来作为激活函数让负数之间为0其余的不变。这样就可以只保留与嵌入向量有关的语义特征避免没有关系的语义特征影响最终输出的向量相当于只激活有关的。3. 第二个全连接层第二个全连接层同样是进行一个矩阵乘法对向量进行降维维度变为与嵌入向量一样。而与第一个嵌入向量不同的是此时矩阵的行数嵌入向量的维度。因此计算时将权重矩阵按列进行分块与向量进行分块乘法。此时矩阵中每列就代表着高维空间中的一个方向代表着一类语义特征而嵌入向量中的每个值相当于各类语义特征的权重控制着哪些信息会被加入到最终结果中。相当于融合各种相关的语义特征最终输出的是包含所有的相关特征的向量。4. 残差连接将输出的向量与初始的嵌入向量相加相当于在原本的信息上增加了新的信息图中展示了输入编码了“First Name Michael”“Last Name Jordan”方向的向量得到编码了“Basketball”方向的向量将它们相加后就得到了编码三个方向的向量实现了信息的增加。而在实际计算中以上的构成都是并行计算的。补充知识Superposition叠加我们前面假设一个神经元只代表单一一种语义特征但在实际情况中每个神经元都会代表多种语义特征这种现象称为叠加。这种现象可以解释为什么模型难以解释以及扩展性好。具体思想如下在一个N维空间中若要使用一堆正交向量来表示不同的特征那么最多表示N种特征这与维度数相同。这种情况下所包含的信息很少。但如果我们将限制放宽容忍一下噪声允许这些特征的向量不是完全垂直而是几乎垂直比如89和91度之间。在2维或3维中这种假设不会影响特征向量的个数但在高维空间中情况就完全不同。根据“约翰逊-林登斯特劳斯引理”空间中能放入的几乎垂直的向量的个数随着维度增加成指数型增长。这对于LLM意义重大这样极具增加了模型可以表示的相互独立的概念意味着在有限的空间中存储数量多得多的各种概念。这也解释了为什么模型的性能随着规模增大而显著提升十倍的维度可以存储远超十倍的独立概念这种特质也就决定了一种特征不会由单一一个神经元激活而会是某种特定的神经元组合是一种叠加。