“线性变换”是机器学习中针对数据常用的变换方式,通过线性变换可以将数据进行降维、解耦、筛选精炼等操作。

而 Transformer 中的“线性变换”有着十分独特且重要的意义,它是导致 Multi-Head Attention 机制得以成功运行的根基。

在这里插入图片描述

由浅入深,首先简要回顾一下 Q、K、V 三者之间的关系。

01Q、K、V三者之间的运算关系

先举个不是 100% 贴切,但容易让我们理解的例子。

Q、K、V 就好比当你在 YouTube 上搜索视频时,搜索引擎会将你的查询内容 Q( Query 搜索栏中输入的查询内容)映射到数据库中与候选视频相关的一组关键字K(Keys 视频标题、描述等)匹配相关性。

最后系统通过计算,向你展示最匹配的K所对应的内容V( Values 值,在 YouTube 上给出的搜索结果为最匹配的视频的链接)。而 Attention 机制就好比是对这全部查询过程的一个称呼。

Attention 此时就是将你想要查询的 Q 与 YouTube 数据库中 K 进行比较,一对一地测量它们之间的相似度,并最终从最高相似度顺序向下依次返回并排列索引到的视频链接 V。

所以,你也可以理解 Attention 为一个数据库查表的过程:

在这里插入图片描述

在 YouTube 上搜索“a cute cat”相关的视频,系统运作的大体流程

当然,以上只是一个对 Q、K、V 这三个矩阵的作用的比喻。在具体的 NLP 领域,我们往往是要给 Transformer 大模型输入一个序列的文本,即一句话或一段话,甚至有可能是一篇论文、一本书的文字量。

其中的每一个单词都会由一个 Embedding 向量来表达。这个 Attention 查表的过程,其实就是对海量的 Embedding 进行搜索查询的过程。实际上不是单词,而是 token。

token 本质上与“单词”概念是有区别的,token 为词元,即最小语义单位。为了更精准地解释,下面我们将用正规的描述 “token” 来进行讲解。

既然一个输入序列中,每一个 token 都只有一个 Embedding 向量来表达,那么,我们要如何获得针对这每一个 Embedding 向量进行上面所描述的 Q、K、V 三者之间的搜索逻辑呢?

在这里插入图片描述

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]👈

02Q、K、V是如何产生的?

在 Attention 机制中,从广义上来说 Q、K、V 三者做了一种类似上面所说的搜索运算,从而找出在全部输入给 Attention 的序列中每一个 token 与序列中其他 token 之间的语义关联度。

比如:输入给 Attention 一句话:How are you?。此时系统会首先把这个输入序列转化为四个token(“How”、“are”、“you”、“?”),然后找出这四个 token 互相之间的语义关联度,即 Attention 过程。

即“How”与其余三个 token:“are”、“you”、“?”之间的的语义关联度,“are”与其余三个 token:“How”、“you”、“?”之间的的语义关联度,以此类推。

是不是很无聊?四个 token 之间不用机器,肉眼一看就能懂。

而一本 10 万字的书呢,机器是怎么通过 Attention 机制几秒钟的时间,一下子就读懂 10 万字之间的语义关系呢,最终又是怎样了解其中的语义逻辑呢?

很明显,无论你输入给机器是四个 token 的一句话,还是10万字的一本书,它都在执行这同一套运算!

Attention 都要把输入的序列中的每一个 token,转化成 Embedding 向量,然后再把 Embedding 向量“拆成”或者说是“分解成”、“变幻成”三个矩阵 Q、K、V。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

每个 token 的 Embedding 向量分别做三次线性变换获得 Q、K、V 矩阵。

注意,这里因为是把全句子(输入的全序列)拆成具体的 token 来讲解,所以为了理解起来方便,暂用向量来表达。

其实,在实际的运算过程中是以矩阵的方式来运行的,以提高运行效率,即整个序列中所有 token 的 Embedding 向量都放在一起组成一个矩阵同时进行运算。

所以,该矩阵的维度由输入序列的 token 数 n,与 Embedding 的维度(一般为 512)决定。所以,该矩阵的形状为 n_×512_n\times512。

(2)Multi-head Attention多头注意力机制的引入

在这里插入图片描述

其实 Multi-head Attention 也可以顺势理解为西方的多头龙,每一个头喷出的攻击元素不同,有的是冰冻、有的是火焰、有的是电击、有的是毒素、有的是眩晕。。。

在这里插入图片描述

这头龙从原来一个头演化出了 8 个头,然后这每一个头各自做各自的 Attention 机制。

这样虽然火力是分散了,但是每一个头都有各自确定的技能,针对特定的敌人,效率没有降低反而攻击质量还提升了很多。

当然,这里还有一个更适合的形象方便我们更深入地理解,那就是哪吒的法身。

哪吒变身后是三头八臂之身(哪吒原本在变为法身时有“三面八臂大力鬼王神”之称,后因“三头六臂”比较上口,且众多仙神皆是三头六臂,传播甚广,所以民间才顺嘴说成了哪吒是三头六臂)。

在法身状态下,哪吒青面獠牙、赤发狰狞、凶恶模样,每只手上都拿着一件神兵利器,分别是:“乾坤圈、混天绫、金砖、两杆火尖枪、九龙神火罩、一对阴阳剑”,共使八件神器法宝,而双脚下踏着风火二轮。打斗时威力无穷,势不可挡。

在这里插入图片描述

哪吒是吃了太乙真人赐给的三壶仙酒与三颗仙火枣才拥有了随时切换三头八臂法身的能力。

而三头八臂还恰恰是太乙真人觉得三头六臂是一票仙等都拥有的法身,不够出众,于是就特地给哪吒变了个十分稀有的三头八臂之法身,感兴趣的朋友可以自己搜一下。

在这里插入图片描述

在这里插入图片描述

各位尽可以用自己最熟知最喜欢的方式去体会、去理解、去深化记忆这个 Multi-Head Attention 机制中的这 8 个头到底是干什么用的。。。。

下面,回归主线!!

(3)Embedding 空间中语义结构的多样性与 Multi-Head 多头之间的关系

这里我们再继续往下深挖,将挖出 Embedding 才是多头背后的真正内在成因。

我之前的文章讲过,在 Embedding 的空间中,一个词的语义逻辑、语法逻辑、上下文逻辑、在全句中位置逻辑、分类逻辑等等,有很多种,如下两图中的几种 word embedding 逻辑。

在 Embedding 的二维空间中 dog、cat、rabbit 三个向量的坐标点位排布,可以看到三个绿色的点距离很近,是因为他们三个相对于其他词汇来说语义上更接近。

tree 和 flower 则离它们较远,但是 cat 会因为在很多语言的文章中都会有“爬树”的词汇出现在同一句话中,所以导致 cat 会与 tree 离得较近一些。同时 dog、rabbit 与 tree 的关系就较远。

在这里插入图片描述

想象一下全世界的所有语言文字里,是不是大体上都是这样,在如此众多的语言文字的资料里,描述“狗”的句子、段落、书籍里,提到“树”的次数,是不是要比描述“猫”的句子、段落、书籍里,提到“树”的次数要少,“兔子”与“树”共同出现就就更少了?

这背后透露出了这个世界中的各种事物间的逻辑规律,是 AI 往 AGI 方向发展的内在核心。

这就是 Embedding 最有意思的地方,也是 Embedding 的核心了。我会单独写一篇文章来详细介绍 Embedding 的!

这里为了介绍 Multi-Head Attention ,先简要介绍一些 Embedding 的知识点。我们可以把在 Embedding 想象成一个多维的空间。

在这个空间中,词与词之间的关系不仅仅限于像上面所举到的猫、狗与树之间仅仅是因为在海量训练语料中结伴出现的频次所导致了在 Embedding 空间中定位的远近亲疏。

一个词所代表的事物与其他词所代表的事物之间能产生内在联系的因素往往有成百上千上万种之多。

比如 man 和 woman,他们之间的关系还会映射出 king 和 queen 之间的关系。

同时,语法也会带来一定的联系,比如在 Embedding 空间中,由 walking 到 walked 的距离与斜率竟然与 swimming 到 swam 的距离与斜率一致(即向量的长度与斜率一致),且距离几乎相等,见下图。

因为这背后是两组动作单词的现在分词形式和过去分词形式的变化关系。我们可以尽情地想象,凡是事物或概念有逻辑联系的,甚至是逻辑与逻辑之间的联系的,在 Embedding 向量空间中都可以得到远近亲疏的空间表达。

在这里插入图片描述

Word Embedding 中词语的语法逻辑被自然地表征出来,词语的嵌套逻辑也自然地被表征出来。

注:为了文章中表达方便,我们仅用二维或三维空间来表达,实际上 Embedding 空间的维度很高,至少要在 512 维之上!

一维二维三维的空间大家容易在脑中想象出来对应的画面,但是四维以上以至于 512 维就难以图形化的想象了。所以,这里做了简化,以方便大家理解。

于是,通过把 Embedding 向量线性变幻成 8 个 1/8 的向量再分别去做 Attention 机制运算。

这其实在本质上并不会耽误每个 token 的语义表达,而只是细分出了不同的语义子空间,即不同类型的细分语义逻辑而已,Attention 机制运算起来将更细腻精准、更有针对性。

8 个臂的法身哪吒,做 Attention 攻击更细腻更周全,他的综合得分固然也就高很多。

无论是实际战斗还是玩游戏,我们通常发现,一套连招下来,二技能位移连一技能再放大再接二技能……,还是别的什么套路,其实道理大家都懂,但在应有的游戏阶段你死活就是打不死对方。

或者你看直播,人家在战斗的不同阶段,就是能创造那个阶段的神奇,出身和你一样,但就是能以不败之身屡屡秒杀对方。怎么如此神奇?开挂了吗?

其实,就是一个道理。他的操作太细腻了,细腻到你都不认为那些因素是需要注意的,而大神就是这样较真地去面对每一个细节。

可能有放大的时机问题、有奔跑方向的问题、有己方支援方式问题、有对方同伴是否干扰问题、有预判了对方心态问题等等,诸多问题…都同时考虑。这就是 Multi-Head 的核心意义!把工作做细、做精!

2.4 被 Multi-Head 分解的“语义逻辑子空间”的重要意义

在这里插入图片描述

在这里插入图片描述

原论文中表格 3:BLEU 主要考量单词翻译精确度,越高越好。PPL 主要考量困惑度,越低越好。

虽然从 Embedding 向量的角度看是从 512 维降到了每一个头的 64 维,缩小了,但实际上每一个头 head 同样可以在某个子空间中表达某些细分的语义逻辑。

考虑一下这样的句子“The animal didn’t cross the street because**it**was too tired.”。我们先模拟出两个“头head”来看看它们各自都是把语义逻辑做怎样的细分。

下图总共 8 个头之中只启用 2 个头(橙黄色、绿色),可以看出橙黄色的头把**it关注的细分语义逻辑重点放在了“The”、“animal”上,而绿色的头把it**关注的细分语义逻辑重点放在了“tired”身上。

在这里插入图片描述

总共 8 个头中启用 2 个头的语义逻辑关注点

如果 8 个头全部启用,每个头的语义逻辑关注点则更细腻、更有针对性。

这样的细腻性来源于 Embedding 空间的独特表达方式,之所以用 512 维的向量来表达一个 token。

说明这个世界上任何一个单词(token)它背后的语义逻辑可以挖掘的点实在是很多很多,别以为 512 太多了(因为有的 Embedding 维度甚至为 1024 呢~),甚至从理论上来说是趋向于无限高维的。

在我稍后单独写的一篇有关 Embedding 的文章中会详细解读。

当然,你可以用 1024 维来表达,不过一般 512 维的向量就足够丰富了,人间足够用了。。。。再多就带来了运算成本陡然提升的问题了,而效果未必带来长足的提升。

加个题外话,中文语言的 Embedding 语义逻辑子空间的细腻和变化程度,应该比英文高。

中文字符为二维的文字,如果把一个汉字转化为 token,其内涵,语义逻辑空间,势必要比靠一维字母组合的语言文字复杂一个数量级。

这也导致我们以中文为母语的人类个体思维比较复杂,单位时间内考虑信息量偏多。

而西方人比较直线条思维。是高一维度好呢还是低一维度好呢?可以说各有利弊吧…,先到为止,这里就不展开了。

在这里插入图片描述

总共 8 个头全部启用,每个头的语义逻辑关注点

一个头分成 8 个头,战斗完毕了,还要在变回来,总不能一直是 8 个头的状态。

于是,在 Multi-head Attention 多头注意力机制运算结束后,系统会通过 Concat 方式把 8 个子进程的结果串联起来,并通过另一个线性变换的方式恢复为原 Embedding 的 512 维的向量长度。

如何从 8 头再线性变换回来,稍后再讲解,我们先看看分成8个头后,在每个头中是如何具体运算的。

03

多头注意力机制的运算方式

(1)先看看单头的“Attention 注意力机制”的运算方式

针对每一个 token,单头的 Attention 机制运算如下:

在这里插入图片描述

在这里插入图片描述

Attention 机制的实际运算架构

在这里插入图片描述

下面,用一个具体的例子来解释。

比如这样一句话:“He booked a room at a hotel.”。我们对其中“booked”这个单词(实际上是 token)做 Attention 机制。

“booked”会对“He booked a room at a hotel.”这句话中所有的 token ,包括“booked”自己,都做一遍点乘,然后做 Softmax 。

再然后,Softmax 后的结果与“He booked a room at a hotel.”转换成的 V 向量相乘,得到加权后的变换结果:0.55*booked+0.15*room+0.3*hotel=booked。

即“booked”这个单词可以用“0.55*booked+0.15*room+0.3*hotel” 这样一个复杂的单词来表示(把“0.55*booked+0.15*room+0.3*hotel”想象成一个单词,便能轻松理解这样表示的意义),见下图。

在这里插入图片描述

booked 在 Attention 机制处理后诞生了 booked的变体“0.55*booked+0.15*room+0.3*hotel”

从中可以看出“booked”在全句中与“hotel”关联度最大,其次是“room”。所以“booked”这个单词也可以理解为“hotel-room-booked”。

这便把“booked”在这句话中的本质通过“变形”给体现出来了。“booked”本身并没有变,而是通过“变形”展示出了另外一种变体状态“hotel-room-booked”。灵魂没变,外在变了。想想哪吒的法身与肉身…

我的上一篇文章中用变形金刚大黄蜂作比喻,说它的灵魂没有变,但是形状变了,由车变成人形机器人了,所以此时的功能也就变了,这也便是 “Transformer”这个词的来源,Google 的技术团队就是利用了变形金刚这个词的梗,来直接命名这个技术术语。

(2)“Multi-Head Attention 多头注意力机制”的运算方式

如之前所讲,这样的 Attention 机制(下图中左侧部分为 Attention 机制的架构图)实际上是被分配到了 8 个头 head 之中去分别运行了。

每一个头在各自运行之后,再通过 Concat 把得到的结果链接起来,然后再做一次线性变换,变回初始的形状。

在这里插入图片描述

h 个 Scale Dot-Product Attention(左)并行为 Multi-Head Attention(右),在 Transformer 模型中默认 h=8

在这里插入图片描述

在这里插入图片描述

Wo 矩阵将简单连接 8 个头的矩阵线性变幻(有机变换)成一个 Embedding 矩阵

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上面这些公式,看起来挺唬人,其实当你把 Attention 和 Multi-Head Attention 都搞明白后,再看这些就显得简单多了。

让我们举一个例子,假设一个输入的句子只有两个 token,那么 Attention 和 Multi-Head Attention 是这样运算的:

在这里插入图片描述

在这里插入图片描述

原论文中《Attention Is All You Need》3.2.1节对“Scaled Dot-Product Attention”以及“compute the matrix”的描述。

在这里插入图片描述

这就是 Transformer 的核心灵魂,Attention 和 Multi-Head Attention!
在这里插入图片描述

在这里插入图片描述

原论文中表格 3:BLEU 主要考量单词翻译精确度,越高越好。PPL 主要考量困惑度,越低越好。

在这里插入图片描述

最后,用一图流来把整个 Multi-Head Attention 的四个 W 权重矩阵 Q,K,V 三矩阵、Multi-Head 机制之间的逻辑关系表达一下:

在这里插入图片描述

04多头注意力机制通俗解释

以上,虽然我已尽量减少用公式来解读,但是对比我一直坚持的“比喻解读”的方式则还是显得有点晦涩难懂。那么让我们看看用纯比喻的描述会是怎样的。

我用一个公司中新进的一个员工来比喻“Self-Attention 自注意力机制”,这个新员工需要迅速地在全部成员之间做一遍工作岗位关联重要度的“Attention 注意力机制“的审查,以便自己能快速定位出自己在团队中的位置,找准自己的位置,接下来的业务与工作进展自然也会很流畅。

其实,找准个人在团队中的定位,除了在业务流程上的考量外,还有很多其他的维度需要考量,比如职位的权重、性格匹配度、男女比例关系、前辈与新兵、人际关系,等等等等。

如果在这些不同的维度领域,都来一套“Attention 注意力机制”,这就叫“Multi-head Attention 多头注意力机制”了。

如果说“Self-Attention 自注意力机制”是一个团队成功的基本必要条件,那么“Multi-head Attention 多头注意力机制”就是确保全团队最优协作的充分条件了。

相信任何一个长时间在一起磨合的团队,都会有意无意地走完这个“Multi-head Attention 多头注意力机制”的过程。

这个过程可能会很漫长,并伴随着公司中各种大大小小数不尽的事情,但每每经历过一些磨合之后,团队的协作能力就会进一步提高。

而且这种磨合的重头戏往往不是只集中在业务流程上,而是在职位、性格、性别、前辈与新兵、人际关系等等方面的磨合上。因为业务流程是团队存在的必须的基础,而其他方面才是团队的升华。

这也好比一个代驾司机,驾驶汽车的刹车油门方向盘的配合,以及交通法规的遵守,那只是作为一个好司机必须的基础,是业务的最底层。

但是,服务好客户不能仅靠这些,更需要靠热情的服务态度、整洁的车内外卫生环境、贴心的便利化设施等等周到考量,这便是“Multi-head”的作用和意义!

零基础如何学习AI大模型

领取方式在文末

为什么要学习大模型?

学习大模型课程的重要性在于它能够极大地促进个人在人工智能领域的专业发展。大模型技术,如自然语言处理和图像识别,正在推动着人工智能的新发展阶段。通过学习大模型课程,可以掌握设计和实现基于大模型的应用系统所需的基本原理和技术,从而提升自己在数据处理、分析和决策制定方面的能力。此外,大模型技术在多个行业中的应用日益增加,掌握这一技术将有助于提高就业竞争力,并为未来的创新创业提供坚实的基础。

大模型典型应用场景

AI+教育:智能教学助手和自动评分系统使个性化教育成为可能。通过AI分析学生的学习数据,提供量身定制的学习方案,提高学习效果。
AI+医疗:智能诊断系统和个性化医疗方案让医疗服务更加精准高效。AI可以分析医学影像,辅助医生进行早期诊断,同时根据患者数据制定个性化治疗方案。
AI+金融:智能投顾和风险管理系统帮助投资者做出更明智的决策,并实时监控金融市场,识别潜在风险。
AI+制造:智能制造和自动化工厂提高了生产效率和质量。通过AI技术,工厂可以实现设备预测性维护,减少停机时间。

这些案例表明,学习大模型课程不仅能够提升个人技能,还能为企业带来实际效益,推动行业创新发展。

学习资料领取

如果你对大模型感兴趣,可以看看我整合并且整理成了一份AI大模型资料包,需要的小伙伴文末免费领取哦,无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

整个学习分为7个阶段
在这里插入图片描述
请添加图片描述

二、AI大模型实战案例

涵盖AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,皆可用。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、视频和书籍PDF合集

从入门到进阶这里都有,跟着老师学习事半功倍。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、LLM面试题

在这里插入图片描述
在这里插入图片描述

五、AI产品经理面试题

在这里插入图片描述

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~
在这里插入图片描述

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]👈

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐