一、编码器(Encoder)
1、词嵌入 & 位置编码(Embedding & Positional Encoding)
将我们输入的自然语言切分成文本处理的最小单元(token),例如“简单说数据分析”,可能被切分成“简单|说|数据|分析”这4个token然后将这组token转化成计算机可以理解的数据,更专业说法是词向量一个token对应一个词向量,如果一个词向量维度是255,那就意味“简单”被转化成255个数字,“说”、“数据”、“分析”也是同理这时候,通俗来说,“简单说数据分析”就被转化成4(token数量) * 255 = 1020个数字由于多头自注意力机制在处理数据时,不会关注每个词向量的位置,这就导致“小明打小红”和“小红打小明”在它看来是相同的字向量组因此我们会把每个token的位置信息也添加到字向量中,具体方式是通过函数转化,由于涉及到公式,在这里略过不表最终结论就是,本步骤将用户输入的自然语言,通过词嵌入转化成一组词向量,然后加上位置信息,输出到多头自注意力机制中。
2、多头自注意力机制(Multi-Head Self-Attention)
这是Transformer模型的核心,它将在多个单元中分别独立分析上一步的结果信息,然后汇总成加工好的信息输出到前馈神经网络中
(1)首先这里的多个单元,对应了标题中的“多头”,即自注意力头,其具体数量取决于模型设计,例如GPT-3使用96个头,BERT-base使用12个头等等
具体到每一个头,可以把他们比喻成一个虚拟大脑,它会从三个角度,对输入的词向量组形成自己的理解。
为了便于讲解,我们暂时将这三个角度比喻为:词性(Q)、词与词的关系(K)、词义(V)
(2)通过对词性(Q)和词与词的关系(K)之间的信息融合,得到自注意力权重,加上词义,作为这个头的输出
我将用两个例子近似说明下这个过程中,模型将会学习和判断的信息-
“我买了苹果和梨子”“我买了苹果手机”,两句话都包含“苹果”这个词,但前者是水果,后者是手机品牌-“我要学习数据分析”“我分析表格里的数据得到结论”,两句话都有“分析”,但前者可以把它跟“数据”综合起来看,而后者的“分析”是一句话中的谓语动词
(3)每个注意力头都会给出它视角下的自注意力权重和词义,将所有自注意力头提供的信息汇总,输出到下一步
这一步可以从两个方面去理解:
-通过多个自注意力头,从更多的角度去理解和学习自然语言的含义,即“更全面地思考问题”-
通过更多的自注意力头的加权融合,降低对语言理解的随机性,即“群众的眼光是雪亮的”
3、残差连接 & 层归一化(Residual Connection & Layer Normalization)
残差连接,可以理解为保留副本,即同时将原始数据和加工后数据传到下一步层归一化,通过数学方法,将数据大小始终保持在指定范围内。
例如0~1之间对于模型来说,比起绝对值大小,它更关注数字之间的关系例如学校期末考试,语文数学外语满分150分,物理化学满分100分,综合满分30分由于满分标准不同,对于一个学生来说,80分对数学来说是及格,但对物理来说是优秀因此我们不妨将学生得分除以该科目的满分分数,即该学生数学为0.6,物理为0.9,这个过程可近似理解为归一化。
4、前馈神经网络(Feed-Forward Network)
深度加工信息,增强Transformer模型的表达能力。
例如一根竖立着的木棍,如果从垂直视角看,只是一个圆。但从水平方向看,就是个长方形;要是从斜向看,得到的信息会更多更全面。
通俗点说,本步骤就是寻找一个最佳视角,对输入信息做出尽可能充分地表达最后将结果输出到解码器中,这里的结果可以称为“编码器记忆”
二、解码器(Decoder)
1、词嵌入 & 位置编码(Embedding & Positional Encoding)
这里相较于编码器,最大的区别是输入。不是用户的自然语言,而是一个初始token和解码器输出的不断堆叠。
例如,第一轮的输入是“”这一个单词,通过解码器加工后输出“你”该结果将成为第二轮输入,再次通过解码器加工,输出更多的信息然后再将它作为新的一轮输入,自此循环,直到满足终止条件。
2、掩码多头自注意力机制(Masked Multi-Head Self-Attention)
区别于之前提到的多头自注意力机制,关键在于多了“掩码”一词简单说,对于语言类大模型的输出,我们通常希望它根据历史信息去预测下一个词是什么因此通过引入掩码多头自注意力,让模型无法看到当前位置以后的信息。
3、残差连接 & 层归一化(Residual Connection & Layer Normalization)
同编码器,主要是对自注意力机制输出的结果数据进行加工和融合。
4、多头自注意力机制(Multi-Head Self-Attention)
这一步将融合前序中掩码多头自注意力层的输出,以及编码器记忆。
在解码器中,掩码多头自注意力机制和多头自注意力机制同时存在,它们的作用是完全不同的,前者用来处理解码器自身输入的关系。而后者由于融合了编码器记忆,它将会建立解码器和编码器输出之间的关联。这样一来,才可以保证大模型输出的内容是针对用户输入自然语言的回答。
再简单梳理一遍Transformer加工数据的全过程
1、信息首先进入"关联分析部门"(多头自注意力)
2、原始信息通过"双轨制"(残差连接)保留
3、经过"标准化部门"(层归一化)处理
4、最后送入"深度加工部门"(前馈网络)这个过程会重复多次(多层编码器),就像一个文件要经过多个部门反复审核和完善,每经过一次处理,信息就变得更加精炼和有价值。
5、掩码多头自注意力层逐步输出信息
6、解码器注意力层随时查看原文7、前馈网络持续优化产出的信息

1539

被折叠的 条评论
为什么被折叠?



