diff --git a/人人都能看懂的Transformer/第五章——多头注意力机制——全流程.md b/人人都能看懂的Transformer/第五章——多头注意力机制——全流程.md index 665198a..1e6d9ea 100644 --- a/人人都能看懂的Transformer/第五章——多头注意力机制——全流程.md +++ b/人人都能看懂的Transformer/第五章——多头注意力机制——全流程.md @@ -30,7 +30,7 @@ $$ 缩放层。缩放操作通常用于调整矩阵乘法的结果。在计算注意力分数之前,会将查询和键的矩阵乘法结果除以一个缩放因子,通常是键向量维度的平方根。可以看到上面的它的公式就是让QK矩阵去除以根号下的d_k,而d_k就是每个头的维度,即768除以12个头,得到64,d_k=64。 -也就是下面这个表的每一个值都会除以64,相当于值会进行缩小。 +也就是下面这个表的每一个值都会除以根号下的64(即8),相当于值会进行缩小。缩放因子是键向量维度的平方根。 image-20240502142816044 @@ -40,7 +40,7 @@ $$ 这里讲的是生成型任务如语言模型(例如GPT),Mask遮挡的目的是为了防止模型在预测下一个词时“偷看”到未来的信息。这种技术被称为因果遮挡(Causal Masking)或自回归遮挡。在GPT这样的自回归语言模型中,模型被训练为基于之前的词来预测序列中的下一个词。因此,遮挡确保模型在生成当前词时只能使用它之前的词,而不能使用它之后的词,这符合自然语言的生成过程。 -将矩阵的上三角部分(包括对角线)填充为 `-inf`或者0。 +将矩阵的上三角部分(包括对角线)填充为 `-inf`。 image-20240502150743024 @@ -82,7 +82,7 @@ $$ image-20240502223139032 -如上图所示,V跟一开始的QK一样,都是[4, 12, 16, 64]即64维,前面的矩阵相乘我们知道,只要第一个矩阵的第二个维度值 跟 第二个矩阵的第一个维度值一样,它们就能相乘。即[16, 16]跟[16, 64]是可以矩阵相乘的,得出的矩阵A。 +如上图所示,V跟一开始的QK一样,都是[4, 12, 16, 64]即64维,前面的矩阵相乘我们知道,只要第一个矩阵的第二个维度值 跟 第二个矩阵的第一个维度值一样(即第一个矩阵的列数与第二个矩阵的行数相同,它们就能相乘),它们就能相乘。即[16, 16]跟[16, 64]是可以矩阵相乘的,得出的矩阵A。 A就代表着我们这个Attention关注度计算。 @@ -155,4 +155,4 @@ $$ ### 总结 -多头注意力机制通过Q、K、V矩阵的转换和相互作用,实现了对输入序列的并行关注。QK矩阵相乘后,通过缩放、Mask遮挡和Softmax归一化处理,得到注意力权重。这些权重与V矩阵相乘,生成加权的输出表示。多个头的输出被合并,并通过权重矩阵Wo得到最终结果。在大型模型如GPT-3中,这个过程在多个层中重复,每层都有独特的权重矩阵,导致模型的参数量达到数十亿。这些参数在训练过程中不断调整,以优化模型的性能。**推理阶段,这些权重都会固定住不变(冻结)。** +多头注意力机制通过Q、K、V矩阵的转换和相互作用,实现了对输入序列的并行关注。QK矩阵相乘后,通过缩放、Mask遮挡和Softmax归一化处理,得到注意力权重。这些权重与V矩阵相乘,生成加权的输出表示。多个头的输出被合并,并通过权重矩阵Wo得到最终结果。在大型模型如GPT-3中,这个过程在多个层中重复,每层都有独特的权重矩阵,导致模型的参数量达到数十亿。这些参数在训练过程中不断调整,以优化模型的性能。**推理阶段,所有的模型参数包括这些权重都会固定住不变(冻结)。**