零基础解码Transformer与大模型核心原理
Transformer和大模型之间是什么关系?
-
火力猛:能同时处理大量信息(比如一句话的所有词语一起分析,而不是逐个字看); -
步骤简:用“注意力机制”(Attention)自动找到关键信息(比如理解“猫吃鱼”时,自动关联“猫→吃→鱼”的关系); -
可复制:这套方法能无限扩展,锅越大(模型参数越多),菜越香(效果越好)。
Transformer到底是什么?
Transformer输入句子处理
表示,其中n为句子中的单词数量,d为向量的维度,论文中的d=512
Encoder和Decoder的核心原理是什么?
-
4.1.1 公式含义
这个公式是什么含义呢?
的结果是一个矩阵,它里面保存了每个向量 与 自己、以及其他向量 进行内积的计算结果。至此,我们了解了一个矩阵乘它自己转置矩阵的含义,那我们再来看softmax的作用是什么?
,那最后的乘X是什么作用呢?如下图所示
,为什么要除
呢?其实这个操作只是为了防止QK的结果过大,所以会除一个尺度标度
,而
表示query和key的向量的维度,如果不对softmax的输入做缩放,那么万一输入的数量级很大,softmax的梯度就会趋向于0。
-
4.1.2 Q K V含义
Multi-Head Attention机制
将Q、K、V分割,每个Head单独计算self-attention,同时因为训练出的
也各不相同,所以得出的Q、K、V也是不同的,因此我们说每个Head的关注点也 各有侧重。最后将每个Head得出的结果进行Concat(拼接)操作,然后通过总体权重矩阵
决定对每个Head结果的关注程度(注意最后的Z矩阵维度和最初输入的X维度相同), 从而能够做到在不同语境下对相同句子的不同理解 。具体图解如下图所示。
Multi-Head Attention计算流程
Transformer内部结构
-
使用公式法能够适应比训练集里所有句子更长的句子场景,这么说可能有点绕,举一个例子,假设我们训练的时候,训练集里最长的句子只有100个单词,但是现实中我们在推理的时候,可能会存在101个单词的场景,这时候呢根据公式就可以计算出101单词的位置信息。 -
可以让模型更容易地计算出相对位置。举一个例子,假设A单词的位置是pos, B单词和A单词之间的位置距离为L,那么PE(pos+L) 则可以由 PE(pos) 计算得到。因为 Sin(A+B) = Sin(A)Cos(B) + Cos(A)Sin(B) , Cos(A+B) = Cos(A)Cos(B) - Sin(A)Sin(B)
Encoder的组成
通过公式,其实不难得出,FFN是由全连接层(FC)和激活函数Relu组成。其实通过分析公式,已经可以得出FFN的作用,即对矩阵进行 空间的变换 ,引入 非线性特征 ,来增强模型的表现能力。
FFN模块架构图
的计算,已经将结果映射成和输入X相同维度了,为什么这里还要增加一个FFN模块?笔者认为这里是把向量先 线性变化到高维空间 再重新变换回来可以得到更加抽象的数据,泛化效果更好。当然把FFN模块去掉也可以使用,但是效果差了很多。(笔者观点,有待讨论~)
矩阵保证了输出和输入相同维度。
-
Decoder存在两个Multi-Head Attention模块,而Encoder只有一个 -
Decoder的第一个Multi-Head Attention模块采用了Mask操作 -
Decoder的第二个Multi-Head Attention模块的输入,并不止依赖于第一个Multi-Head Attention模块的结果,同时依赖了Encoder的输出(后面会详细解释)
Decoder架构
矩阵后,再将其与Mask矩阵进行 按位相乘, 即可得到一个带有掩码的矩阵结果(黑色部分为0值),后续再乘V矩阵即可得 到最终的self-attention的结果。
Decoder架构
-
Encoder用来对输入序列进行高纬度特征提取,并生成编码后的向量信息 -
因为Encoder获取不到序列之间的位置信息,所以需要位置编码模块对其进行位置特征的补充,从而让模型能够拥有语义信息+位置信息的特征 -
Decoder基于已生成的结果和Encoder的输入进行生成最终目标序列
-
《Attention Is All You Need》https://arxiv.org/pdf/1706.03762 -
《The Illustrated Transformer》 https://jalammar.github.io/illustrated-transformer/ -
《Transformer模型详解(图解最完整版)》 https://zhuanlan.zhihu.com/p/338817680 -
《超详细图解Self-Attention》https://zhuanlan.zhihu.com/p/410776234
本文作者逾末,来自淘天集团-直播技术团队。淘宝直播作为全球领先的直播电商平台,正在重新定义人与商品、人与内容的连接方式。我们致力于打造沉浸式、互动式的购物体验,让数亿用户在这里发现好货、感受乐趣。无论是时尚穿搭、美食评测,还是科技新品发布,淘宝直播都在引领电商行业的创新潮流。同时淘宝直播也在推进打造行业领先的AI数字人技术,实现虚拟主播、智能互动、个性化推荐等创新功能。
本文分享自微信公众号 - 大淘宝技术(AlibabaMTT)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。