Transformer
当前的AI大模型基本是基于Transformer框架的,包括上一篇 讲到的词汇理解在Transformer架构中都有所体现。对于每一位想入坑AI大模型的人,Transformer架构论文Attention is all you need是必读不可的。这对我们理解其他的AI大模型大有裨益。
我们看以上架构图,发现主要有以下几个核心模块:
输入层
- Embedding 词嵌入,我们上一篇 讲的词向量就是这一步来的。
- Positional Encodding 位置编码,这也是我们今天着重要讲的重点。
Encoder
- MHA,多头注意力机制。也是我们今天要讲的第二个重点。也是Transformer架构的核心的核心。
- FFN,前馈神经网络
- 残差链接+层归一化
Deccoder
- 掩码注意力机制
- 交叉注意力机制
- 残差链接+层归一化
- 输出层
- SoftMax
位置编码
我们今天核心看输入层和Encoder,这两部分和AI理解词汇组成的句子关联紧密。我们先看看上一次的例子:
- 输入1:我有一个苹果,它很好
Embedding后,Token为:我 有 一个 苹果,它 很好。首先词向量维度是没有问题的,每个Token的词向量不同,不会产生歧义。
但是,如果是下面这个case呢:
- 输入2:我画了一幅画
Embedding后,Token为:我 画 了 一幅 画。第一个”画“和第二个”画“的词向量矩阵是一样的。那么AI怎么区分动词画和名词画呢?这个时候Positional Encodding应运而生。
PE(Positional Encodding)和Embedding共享同样的维度d_model,因为Embedding后的词向量是PE的输入。
PE词向量在AI大模型眼里有了顺序,🌰:
- ”我画了一幅画“中前后两个意思不同的画
- 即使是”我有一个苹果“这样无词向量冲突的case,PE对语义理解也至关重要
AI大模型中一般使用不同频率的正余弦函数作为位置编码函数
我(pos=0) = [sin(0/10000)^2*0/d_model, cos(0/10000)^2*0/d_model, sin(0/10000)^2*1/d_model, cos(0/10000)^2*1/d_model, ...] // 长度512 画(pos=1) = [sin(1/10000)^2*0/d_model, cos(1/10000)^2*0/d_model, sin(1/10000)^2*1/d_model, cos(1/10000)^2*1/d_model, ...] // 长度512 了(pos=2) = [sin(2/10000)^2*0/d_model, cos(2/10000)^2*0/d_model, sin(2/10000)^2*1/d_model, cos(2/10000)^2*1/d_model, ...] // 长度512 一幅(pos=3) = [sin(3/10000)^2*0/d_model, cos(3/10000)^2*0/d_model, sin(3/10000)^2*1/d_model, cos(3/10000)^2*1/d_model, ...] // 长度512 画(pos=4) = [sin(4/10000)^2*0/d_model, cos(4/10000)^2*0/d_model, sin(4/10000)^2*1/d_model, cos(4/10000)^2*1/d_model, ...] // 长度512自注意力
词向量让AI理解人类词汇,位置编码让AI对句子中的词汇有了顺序的概念。而最终AI能理解句子还需要自注意力机制。
自注意力机制是Transformer实现上下文理解的核心。其本质是通过Query-Key-Value(QKV)模型,让句子中的每个词动态计算与其他所有词的关联权重。
Q(Query):当前词对上下文的"提问"
- ”有“提问”有”什么,自注意力将“有”和“我有一个苹果”中其他Token
K(Key):其他词的"身份标签",用于匹配Q提出的问题
- “苹果”代表水果(或电子设备)
V(Value):实际携带的信息
- 机器语言内“苹果”所代表的机器语义
通过加权求和,每个词的最终表示会融合全局关键信息。进而让AI能够整体理解这句话的含义。
或者通俗地讲,Transformer让句子中的每个词都“回顾”一下上下文中的所有词,找到对自己理解最重要的信息,然后把这些信息融合起来,形成自己在这个特定语境下的新含义。对于Tokens:我 有 一个 苹果
- AI会根据词向量矩阵分别计算出Q、K、V三组向量矩阵
- 执行Q(苹果),计算“苹果”的Q向量与句子中所有词(包括它自己)的K向量的相似度,“我”、“有”、“一个”、“苹果”的相关性。在理解“苹果”这个词时,模型认为“有”和它自己“苹果”具备最相关的上下文信息。
- 加权求和生成新表示。将上一步得到的所有权重,分别与对应的V(Value)向量相乘,并求和。
- 这样生成的新向量,就不再是孤立的“苹果”的语义,而是融合了整句上下文信息的“苹果”——即“我所拥有的那个苹果”。这个新表示**能更准确地反映这个词在当前句子中的具体含义。**当然,每个Token都有一个这样的执行过程。
至此,AI大模型终于完整地理解了人类语言的一句话了。
学习资源推荐
如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。