diff --git a/.DS_Store b/.DS_Store index 2de2993..4186fe5 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/assets/.DS_Store b/assets/.DS_Store index a609181..17709c6 100644 Binary files a/assets/.DS_Store and b/assets/.DS_Store differ diff --git a/assets/image-20240423093444733.png b/assets/image-20240423093444733.png new file mode 100644 index 0000000..d356042 Binary files /dev/null and b/assets/image-20240423093444733.png differ diff --git a/人人都能看懂的Transformer/第一章——Transformer网络架构.md b/人人都能看懂的Transformer/第一章——Transformer网络架构.md index fd35bc4..778f976 100644 --- a/人人都能看懂的Transformer/第一章——Transformer网络架构.md +++ b/人人都能看懂的Transformer/第一章——Transformer网络架构.md @@ -4,6 +4,10 @@ 总体架构图 +> WHAT:自注意力机制模型,顾名思义,它能够自己找到不同位置的依赖关系。如在序列的任何位置直接计算出其他位置的依赖关系,从而有效捕捉长距离依赖。以及位置编码等关键组成。 +> +> WHY:相比前一代主流的RNN/LSTM,它可以并行化(意味着它能够提供非常好的用户体验,逐渐能够走向大众视野)。能较好处理长距离依赖。效果上也是当时多个任务上的最佳性能。 + 左半边是编码器(Encoder),右半边是解码器(Decoder)。 这时候大家可能比较迷糊,为什么右边Decoder的部分也有输入(因为一般模型只有一个输出和一个输出),那是因为生成的过程中,模型还需要知道之前生成了哪些内容,以决定下一个最适合的输出。且两者都同时作用于训练和推理阶段。 @@ -36,11 +40,11 @@ ### 解码器(Decoder)概述 -> 由于现在GPT是最主流的方向,所以后续主要讲decoder,encoder的架构也跟decoder差不多,理解了decoder也就理解了encoder +> WHY:由于现在GPT是最主流的方向,所以后续主要讲decoder,encoder的架构也跟decoder差不多,理解了decoder也就理解了encoder。 -![汉化decoder](../assets/image-20240421161038387.png) +汉化decoder 通过上面的英文转中文,大家应该也能理解大致意思,也就是文字会向量化 加上 位置信息编码,输入到多头注意力机制里,去学习语义关系,通过数值缩放再到神经网络层。数值缩放后被线性映射,最后输出成百分比概率。 @@ -52,7 +56,11 @@ ### 文字向量化 & 位置编码 -![文字向量化](../assets/image-20240421205946626.png) +> WHY:机器无法理解文字,机器底层只能识别数值,所以文字需要转换成数值。而由于自注意力机制不具有处理序列顺序的能力,位置编码被用来保留单词的顺序信息。 +> +> HOW:文字的向量化有很多种方法,我们后面再详解。 + +文字向量化 > 这里用英文的输入,引文英文输入使用代码更容易理解 @@ -64,9 +72,21 @@ ### 语义关系学习(多头注意力) -![语义关系学习](/Users/xueweiguo/Desktop/GitHub/AiLearning-Theory-Applying/assets/image-20240421212923027.png) +> WHY:捕捉多种语义关系,提高模型的表达能力。如LLM是大模型的缩写,同时也是法学硕士的缩写。亦或者冬天里的能穿多少穿多少,跟夏天里的能穿多少穿多少。 + +语义关系学习 向量传入后,通过语义关系学习(一系列计算),得出一个矩阵,维度是4 × 4的矩阵。矩阵里的每个值都是数字,数字代表了文字对应其它文字的语义关系,越高表示与其它文字的关系越近,越小则表示越疏远。 > 实际上是通过三个不同的线性变换生产Q、K和V向量(实际是3条线,为了简化前面用1条线表达),每一份对应一个头,如GPT是12头,则是向量 × 4 × 3 × 12 份数据。另外需要注意的是,每个子模块都会叠加N次,如GPT-3就据说叠加了175层。即最终是向量 × 4 × 3 × 12 × 175。当然我们这里只用向量 × 4 × 1 × 1 × 1 即 向量 × 4 × 3 1头1个子模块,以方便大家理解。 + + +### 数值缩放 + +> WHY:前面我们讲到,矩阵里的数字越大,表示 + +将语义关系学习里输出的矩阵,加上残差(输入语义关系学习)前的向量,再进行值的统一缩放,大部分情况下是缩放到[-1,1]区间()。 + +数值缩放 +