常见的模型结构

📕参考:大模型研讨课第一期:Why LLMs?、模型结构1(共10期)_哔哩哔哩_bilibili

(本系列是课程笔记)



NLP呢,是对文本进行处理,学习里面蕴含的信息,然后使模型可以自动化处理一些文本。

文本呢,可以把它看成一组序列数据。它是由词元序列(token)序列组成的。

语言模型,就是估计序列出现的概率分布。

        eg:已经知道前边几个词是“中国的首都是”那后两个词预测是“北京”的概率。

常见的模型结构有:seq2seq、attention 、scaled dot-product attention、self-attention、multi-head attention。


Seq2Seq

Seq2SeqSequence-to-Sequence,序列到序列模型

应用:将一种时序数据转换为另一种时序数据

eg:机器翻译、对话、自动文摘

Seq2Seq的结构:

(1)由编码器(encoder)和解码器(decoder)两部分组成

(2)编码器根据输入数据生成语义编码

(3)解码器根据该语义编码输出处理结果

(4)Seq2Seq模型适用于输入序列和输出序列不等长的情况

传统Seq2Seq模型通常使用RNNLSTM作为编码器和解码.

但是RNN的缺点,并行度差、且当序列很长时,序列靠前的信息容易丢失。

编码器把输入编码成固定长度的语义编码。

问题:(1)固定长度的语义编码难以存储较长的输入序列的所有信息,严重影响模型性能。

           (2)语义编码中每个元素权重相同,模型无法区分各个元素的重要程度

为了解决以上问题,提出了注意力机制。

注意力机制

注意力机制可以抽取少量重要信息,并聚焦于这些重要信息,忽略不重要的信息。

注意力机制可以有效提升基于RNNSeq2Seq模型的信息处理能力。

1.先用注意力机制计算注意力得分  

2.加权求和 注意力汇聚,就计算出了最终的 e(i)

每一步会聚焦不一样的词。

当我翻译第一个词(AI )的时候,“智能”的注意力得分会比较高。

当翻译第二个词(computing)的时候,“计算”的得分会比较高。

注意力机制:缩放点积注意力(Transformer里使用的)

Transformer中的注意力:缩放点积注意力(Scaled dot-product attention

key和value成对,key是value 的代表。

计算 query和key的相似度,比直接计算query和value的相似度更高效。

query相当于要查找的书中的关键词,value是书里的内容,key是书的ISDN码。

匹配q和k,比匹配q和v容易的多。

看下边的理解:⭐因为K 和V 是相同的,所以可以理解为:我先用V的分身去和Q计算一下相似度,我就知道应该关注V的哪一部分了,然后再用V的注意力权重 加权求和 ,最后得到output。

具体计算过程:

1.计算QK的点乘(QK的相关关系)

2.经过尺度变换scale、掩码MaskSoftmax等归一化处理,得到权重矩阵(注意力打分)

3.将权重矩阵与V相乘(注意力汇聚)

以上是 缩放点积注意力。


注意力机制:自注意力

自注意力:

        输入:查询Q、键K、值V都来源于同一组输入。

        特点:擅长捕捉数据内部的相关性。

Q K V 的输入是来源于同一个矩阵I,然后对它们乘不同的矩阵得到的

这样可以捕捉输入内部的相关关系。

1.最下边一层是 I 的embedding

2. 对 I 乘不同的矩阵 就得到了 Q K V

3.然后 Q乘K 缩放 ,再乘 V 得到了最终的输出

这个可以关注输入序列内部自身的一些信息。

注意力机制:多头注意力

多头注意力(multi-head attention):基于相同的注意力机制学习不同的知识,再进行组合

类比:卷积中的多通道, 从不同的表示子空间中学习到不同的信息,再融合起来

理解成有很多个通道,每个通道的W 不同,这样就会得到不同的QKV,这个计算过程是并行的。最后将 h 组注意力结果拼接在一起,并进行线性映射。

【矩阵相乘】:一行乘一列 再乘以次数 所以自注意力:n^2 d

序列操作数:输出一个点,需要序列计算多少次。

自注意力:一次

卷积:一次

RNN:需要迭代计算整个序列,O(n)

最大路径长度:任意两个点,传递信息需要的路径长度。

它的复杂度理解为传多少次。

卷积:【暂时还理解不了】、


Q、K、V矩阵的理解

Q K V 是什么?

Q K V其实都是向量。

Q是查询向量,K是关键向量,V代表数值向量。这三个向量是通过线性变换从原始输入向量(通常是词嵌入表示)得到的。

  • Q代表的是query查询,后续会和每一个k进行匹配,找到最相似的k

  • K代表的是key关键字,后续会被每一个q匹配

  • V代表的是value,代表从输入中提到的信息

注意:每一个key,都对应一个value;计算query和key的匹配程度就是计算两者相关性,相关性越大,代表key对应value的权重也就越大,这就是不同信息的权重不一样,这就是注意力机制!

理解:Query 和 Key 用于计算相关性,Value 用于聚合信息。

1. Query (Q)

  • Query 表示当前需要关注的输入位置。

  • 在注意力机制中,Query用于与所有位置的Key进行匹配,计算注意力权重。

  • 可以理解为“我想要找什么信息”。

2. Key (K)

  • Key 表示输入序列中每个位置的“标识符”。

  • Key与Query的点积用于计算注意力权重,反映当前位置与其他位置的相关性。

  • 可以理解为“我能提供什么信息”。

3. Value (V)

  • Value 表示每个位置的实际信息。

  • 注意力权重与Value的加权和生成最终的输出,表示当前位置的上下文信息。

  • 可以理解为“我实际包含的信息”。

举例说明

比如说 “我爱中国”这句话经过计算输出。

  • Query (Q):当前需要关注的目标(如 "爱")。

  • Key (K):用于与 Query 计算相似度的特征(如 "我""爱""中国" 的 Key)。

  • Value (V):每个词的实际信息(如 "我""爱""中国" 的 Value)。

通过计算 Query 和 Key 的相似度,得到注意力权重,然后用权重对 Value 加权求和,得到最终的输出。

感觉,Q是当前关注的词的向量,K是这个句子里每个词的向量,Q和K分别计算一下相似度,就知道 【我要查的词】 和这个句子里的哪个词相似度最高了,这几个词的注意力得分最高,那么在这个句子里 它们和我要查找的东西最有关系,最后在加权求和,就能得到这个句子调整过注意力后,最终要输出的东西。

⭐因为K 和V 是相同的,所以可以理解为:我先用V的分身去和Q计算一下相似度,我就知道应该关注V的哪一部分了,然后再用V的注意力权重 加权求和 ,最后得到output。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

‌‌Anastasia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值