您的位置:首页 > 游戏 > 游戏 > 工程咨询公司加盟合作_pythonweb开发需要学什么_关键词挖掘查询工具_东莞网站seo公司哪家大

工程咨询公司加盟合作_pythonweb开发需要学什么_关键词挖掘查询工具_东莞网站seo公司哪家大

2024/12/21 22:07:14 来源:https://blog.csdn.net/aidashuju/article/details/142378188  浏览:    关键词:工程咨询公司加盟合作_pythonweb开发需要学什么_关键词挖掘查询工具_东莞网站seo公司哪家大
工程咨询公司加盟合作_pythonweb开发需要学什么_关键词挖掘查询工具_东莞网站seo公司哪家大

image.png

上图红色圈中的部分为 Multi-Head Attention,是由多个Self-Attention组成的,虽然Encoder与Decoder中都有Multi-Head Attention,但他们略有区别。Encoder block包含一个 Multi-Head Attention, 而Decoder block包含两个 Multi-Head Attention。

Decoder block包含两个 Multi-Head Attention,其中第一层的多头注意力用到Masked,第二层其数据组成则是由 Encoder输出数据的3/4直接送入( Encoder输出的另外1/4数据入了Add&Norm层) 再加上 由Decoder的Outputs进入的经Token Embedding和Position Enbedding计算后得的向量,经过第一层多头注意力后的数据

注意力

Attention函数可以描述为将query和一组key-value对映射到输出,其中query、key、value和输出都是向量。 输出为value的加权和,其中分配给每个value的权重通过query与相应key的兼容函数来计算。
—— 来自(www.yiyibooks.cn/yiyibooks/A…

QKV的理解

在《Attention is all you need》论文中首次提出Transformer时构建了三个辅助向量QKV。而所谓QKV也就是Q(Query 查询),K(Key 键值),V(Value 实际的特征信息)。 他们本质上是代表了三个独立的矩阵,都是我们原本的序列X做了不同的线性变换之后的结果,都可以作为X的代表。简单的可理解成:

Q=XWQK=XWKV=XWV*Q*=*X**W**Q**K*=*X**W**K**V*=*X**W**V*

如下图所示:

image.png

其中 WQ,WK和WV*W**Q*,*W**K*和*W**V*是三个可训练的参数矩阵,输入矩阵X分别与WQ,WK和WV*W**Q*,*W**K*和*W**V*相乘,生成Q, K和V, 相当于经历了一次线性变换。Attention不直接使用X,而是使用经过矩阵乘法生成的三个矩阵,因为使用三个可训练的参数矩阵,可增强模型的拟合能力。

多头注意力

什么是多头注意力


所谓多头,是分别将线性的变换之后的QKV切分为H份,然后对每一份进行后续的self-attention操作。最后再连接并做线性回归产生输出。如下图:

image.png

观察上图的多头注意力结构的中间的Scaled Dot-Product Attention(点积自注意力),我们可以把拆为理解为高维向量被拆分为H分低维向量,并在H个低维空间里求解各自的self-Attention。

多头注意力的理解

  • 代码层面: 把原始的维度切成H份,假如h=8(切成8份),每份则为512/8=64。在每个64维做相关度(即相乘)计算
  • 原理层面: 把原来在一个高维空间里衡量一个文本的任意两个字之间的相关度,变成了在8维空间里去分别衡量任意两个字的相关度的变化

工作原理


QKV获取

经过position embedding 与 word embedding 计算后得到的向量x进入Encoder,经过3次线性变化之后,得到QKV,如下图:

image.png

获取每个字都形成512/H维度的信息

一个完整的数据矩阵, 经过计算得到QKV之后,分别获取三个(batch_size)维向量矩阵(下图右侧第一列),再次水平切分矩阵为(seq_len * 512维的信息) 数据(如下图右侧第二列)按,按字按维度切成H份(如最右侧的第三列)。再然后,计算一个字的维度。即将一个字分成H分,每一份为512/H维信息,那么一个完整的字一共有512/H维度的信息(transformer中h=8)。

image.png

在H维空间中矩阵拆变如下:

1  [batch-size、seq-len、dim]
2  [batch_size, seq_len, h, dim/h]
3
4  ---举例---
5  [1024,  5,     512  ]
6  [1024,  5,  8, 512/8]

在H个子维度里计算任意两个字的盯关度

每个字的第1头和其他字的第一头分别相乘

比如 "我“ 字,按h=8拆分,得64(512/8) 维的信息。接下来再把我字的第一个64维度的信息分别和其他字的第一个64维的信息进行向量相乘。如果相乘的结果越大代表两个向量相似度接高,越小两个向量的相似度越低。如下图,右侧说明一个序列的第1个字的64维分别与其他字的第一个64维的向量相乘(对于我要吃汉堡,一共是5个字,对应右侧的5个图,从左到向,从上一下:我 想 吃 汉 堡)。

image.png

在H个不同的(512/H)维计算相关度

经过上图的拆分,由原来在512的大的维度空间里计算相似度,变成了在H个不同的(512/H) 维的子空间里分别去计算任意两个字的相似(关)度。

比如:原来只进行1次的512 * 512的向量相乘 现在变成进行8次的64 * 64这样的向量相乘,即把原来的高维空间映射成了8个不同的64维的子空间,在每字64维的子空间里,分别去衡量这一序列字词之任意两个字之间的相似度,进而提升模型的表达能力。

再进行组合成为一个512维的矩阵

当拆分计算完成即相乘之后,再连接并做线性回归产生输出, 形成如下右图所示的矩阵,第一个格子的相似关是Q∗Kt*Q*∗*K**t*,其他格子也是...即再聚合起来(线性变化)成为一个512维的矩阵。

image.png

多头注意力公式


MultiHead(Q,K,V)=Concat(head1,...,headh)∗WO其中headi=Attention(QWiQ,KWiK,VWiV,)*M**u**lt**i**He**a**d*(*Q*,*K*,*V*)=*C**o**n**c**a**t*(*h**e**a**d*1,...,*h**e**a**d**h*)∗*W**O*其中*h**e**a**d**i*=*A**tt**e**n**t**i**o**n*(*Q**W**i**Q*,*K**W**i**K*,*V**W**i**V*,)

其中参数映射为矩阵:

WiQεRdmodel∗dk,WiKεRdmodel∗dk,WiVεRdmodel∗dv,WOεRdmodel∗hdv*W**i**Q**ε**R**d**m**o**d**e**l*∗*d**k*,*W**i**K**ε**R**d**m**o**d**e**l*∗*d**k*,*W**i**V**ε**R**d**m**o**d**e**l*∗*d**v*,*W**O**ε**R**d**m**o**d**e**l*∗*h**d**v*

> ![transform: h=8,dmodel=512,dk=dv=dmodel/h=512/8=64*h*=8,*d**m**o**d**e**l*=512,*d**k*=*d**v*=*d**m**o**d**e**l*/*h*=512/8=64](https://i-blog.csdnimg.cn/direct/10888ed7084748228bdb662ff63d2b1c.png)

自注意力-Self-Attention

从多头注意力的结构可以看到由H份组成的"Scaled Dot-Product Attention",称为点积注意力层 或 自注意力(self-attention)。输入由query、dk 维的key和dv维的value的组成,用dk相除*q**u**ery*、*d**k* 维的*k**ey*和*d**v*维的*v**a**l**u**e*的组成,用*d**k*相除,然后应用一个softmax函数以获得值的权重。

结构如下:

image.png

上图是 Self-Attention 的结构,在计算的时候需要用到矩阵QKV。其中,Self-Attention接收的是输向量x组成的矩阵X,或者上一个Encoder block的输出。经过三次线性变化得到的QKV。

Q与Kt*K**t*经过MatMul,生成相似度矩阵。对相似度矩阵每个元素除以 dk*d**k* ,其中dk*d**k*为K的维度大小。这个除法被称为Scale。 当dk*d**k*很大时,Q*KT*K**T*的乘法结果方法变大, 进行Scale可使方差变小,训练时梯度更新更稳定。

Mask是个要选环节,在机器翻译等自然语言处理任务中经常使用的环节。在机器翻译等NLP场景中,每个样本句子的长短不同,对于句子结束之后的位置,无需参与相似度的计算,否则影响Softmax的计算结果。

softmax是个激活函数,在没有Mask时,softmax只起到归一化的作用。

自注意力机制将一个单词与句子中的所有单词联系起来,从而提取每个词的更多信息。

注意力公式


Attention(Q,K,V)=softmax(QKTdk)∗Vdk是Q,K矩阵的列数,即向量维度*A**tt**e**n**t**i**o**n*(*Q*,*K*,*V*)=*so**f**t**ma**x*(*d**k**Q**K**T*)∗*V**d**k*是*Q*,*K*矩阵的列数,即向量维度

其中,Q为Query、K为Key、V为Value。QKV都是从同样的输入矩阵X经过三次线性变换而来的。

在这里插入图片描述

公式推导

**先计算softwax**,输入为词向量矩阵X,经过与三个系数 WQ,WK*W**Q*,*W**K*和WV*W**V* 进行矩阵乘法,首先生成Q、K和V。 如下图:

image.png

在这里插入图片描述

image.png

Attention(Q,K,V)=softmax(QKTdk)∗V*A**tt**e**n**t**i**o**n*(*Q*,*K*,*V*)=*so**f**t**ma**x*(*d**k**Q**K**T*)∗*V*

PS: 最后再经过一个Concat(聚合)再经过Linear(线性变换) ,得到最后的整个多头注意力机制的输出。如下image.png


如果您也对AI大模型感兴趣想学习却苦于没有方向👀
小编给自己收藏整理好的学习资料分享出来给大家💖
👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码关注免费领取【保证100%免费】🆓
请添加图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉如何学习AI大模型?👈

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

请添加图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

在这里插入图片描述

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

在这里插入图片描述

四、AI大模型商业化落地方案

在这里插入图片描述

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
请添加图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com