本文通过动画和可视化方式详细解析了Transformer架构的工作原理,重点介绍了编码器部分。文章解释了Transformer如何通过自注意力机制将输入token转换为上下文化表示,详细阐述了查询(Q)、键(K)和值(V)向量的计算过程,以及多头注意力、位置编码、前馈网络(MLP)和残差连接等关键组件。通过这种方式,作者旨在将复杂的数学概念转化为直观的视觉理解,帮助读者掌握大语言模型的核心架构。


动画是你所需要的一切!(可视化理解Transformer)

Transformer是当今大语言模型(LLM)的核心,但其内部工作原理往往像是一个充满数学和术语的黑箱。本文采用视觉优先的方法,逐步拆解Transformer如何处理语言——从token到注意力机制再到文本生成。目标是让Transformer变得既直观又易于理解,用清晰的图表和结构化的解释取代大量公式。

在这里插入图片描述

概述

简单来说,深度学习领域中的Transformer是一种模型架构,它接收一系列token作为输入,并输出一系列token(token进,token出)。输入是一次性接收的,而输出token则以自回归方式生成,即逐个生成。从宏观角度看,Transformer模型可分为两部分:

    1. 编码器(Encoder)
    1. 解码器(Decoder)

编码器将输入token列表转换为键(Key)和值(Value)列表(每个token对应一个,因此如果token数量为n,我们得到n个键和n个值)。可以将这些键/值视为输入token的更好表示,解码器可以利用它们来生成输出。

  • • 输入是token列表
  • • 输出是键和值列表
  • • 以并行方式运行

解码器接收由编码器生成的输入token的精炼表示(即键和值),并逐个生成输出token。解码器在第一步生成的输出会被反馈到解码器中(与静态的键/值一起),以生成第二个输出。这个过程重复进行,直到完整的输出句子生成完毕。

  • • 输入是键和值列表
  • • 输入是解码器在上一步生成的输出(第一步除外——第一步使用特殊的句首token)
  • • 输出是逐个生成的token
  • • 以自回归(顺序)方式运行

动画概述: 下面是我们目前所学内容的动画摘要。

在这里插入图片描述

Transformer — 动画概述(作者制作的动画)

编码器如何工作?

现在我们知道了编码器处理什么输入/输出,让我们深入了解它如何从输入产生输出。

编码器接收用户提供句子的token化表示作为输入。token化表示将句子中的词/子词转换为固定维度的嵌入(或称为token)。这些token是句子中词/子词的高维表示,可以离线计算。市面上有多种可用的文本嵌入方法。

现在,这些token化表示是离线预计算的,这意味着它们非常通用,需要被转换为能更好地捕捉当前任务要点的表示。这就是编码器发挥作用的地方。编码器的唯一目的是将token化表示转换为更好的表示。这是通过自注意力(Self-Attention)实现的。自注意力试图通过引入其他token的贡献来重新调整每个token的表示。句子中相互依赖的词之间会有较强的贡献。这表示一个词需要对句子中的其他词给予多少"注意力",以便更好地理解当前任务(因此称为自注意力)。

自注意力机制的主要目的是将词嵌入转换为上下文化的嵌入

让我们逐步了解如何通过自注意力转换一组输入token(或n个维度为d的向量)。为简单起见,假设我们有4个输入token(即n=4)。

寻找更好的"自注意力"

最简单的自注意力形式是新表示(zi)是所有输入token(ti)的加权平均。听起来不错,但我们如何计算这些权重呢?

一个非常基础的"自注意力"(作者制图)

权重候选:点积: 最简单的候选方法是计算源向量和目标向量的点积,以确定源向量对目标向量的贡献程度。然而,这有三个问题:

    1. 点积是可交换的。但txty的注意力不一定与tytx的注意力相同。
    1. 没有可学习参数——这意味着我们没有从当前任务中学习任何东西,而只是进行离线的、与任务无关的通用计算来转换token。
    1. 没有学习参数。我们希望权重能根据当前问题自我调整。

    1. 寻找被加权值的最佳候选(作者制图)

更好的权重候选:带有可学习向量的点积: 不使用token的点积作为权重,而是引入新向量(我们将其称为)来计算用作权重的点积。这些向量通过可学习矩阵从相关token 计算得出,如下所示:

    1. 寻找被加权值的最佳候选(作者制图)

键向量解决了我们三个问题中的两个,但权重仍然是可交换的,这是不理想的。

更好的权重候选:使用两个不同的源和目标向量的点积: 引入另一个向量(称为查询)与键向量一起进行点积,有助于解决这个问题。与类似,通过可学习矩阵从相关token 计算得出。

    1. 寻找权重的最佳候选(作者制图)

被加权值的候选:token本身(即): 现在我们已经找到了更好的权重候选,让我们看看被加权值的候选。最简单的候选是token本身()。然而,这有以下问题:

    1. 可能存在更好的表示
    1. 没有可学习参数

更好的被加权值候选:变换后的token: 就像我们引入了键和查询向量一样,我们可以引入另一个向量作为加权平均时使用的值。我们可以称之为值(Value),并通过线性变换(矩阵乘法)使用矩阵从输入token派生。矩阵(就像和一样)将在模型训练期间通过反向传播学习。

寻找被加权值的最佳候选(作者制图)

现在我们对每个输入token 有三个向量:键、查询和值。我们将转换为这三个针对当前问题的学习表示。

从输入token计算键、查询和值(作者制图)

查询、键和值的直观理解: 可以把它想象成搜索文件柜:查询是你手上写有主题的便签,键是文件夹标签,值是文件夹内容。你不是只选一个文件夹,而是根据标签与查询的匹配程度,从多个文件夹中提取混合内容。

在矩阵形式中,我们可以通过以下方程表述每个编码器模块,其中Q、K和V是查询、键和值矩阵,Z是将作为输入馈入下一个编码器模块的潜在表示。

自注意力方程(作者制图)

为了约束Z向量,我们使用归一化和softmax强制其成为概率分布。dk是键向量的维度(通常与查询向量相同)。我们除以dk是为了防止较大的点积值使softmax不稳定。

更新后的自注意力方程(作者制图)

加法与归一化(Add and Norm)

自注意力是编码器模块中三个操作之一。在自注意力之后还有两个操作,它们独立地在每个token上进行(自注意力是跨token的联合操作):

  • • 加法与归一化(Add and Normalization)
  • • 前馈网络或MLP

下面是包含所有操作的编码器模块示意图。

Transformer编码器模块总结(作者制图)

加法与归一化操作有两个主要目的:

    1. 残差连接:

    它引入了一个残差(跳跃)连接,绕过自注意力层并添加到其输出,类似于ResNet架构中使用的残差连接。

    1. 层归一化:

    它应用层归一化,通过独立归一化每个token的特征来稳定训练。

层归一化细节:

  • • 归一化是跨特征进行的,但对每个token单独进行。
  • • 每个token有自己的均值和方差,在特征维度上计算。
  • • LayerNorm包含两个可学习参数,γ(gamma)β(beta),每个的维度等于隐藏层大小d
  • • 这些参数是全局共享的,而不是按token学习的。

加法与归一化解释(作者制图)

下面是归一化层的数学细节

归一化层 — 背后的数学原理(作者制图)

加法与归一化层的动画说明如下。

在这里插入图片描述

加法与归一化 — 动画概述(作者制作的动画)

MLP层

编码器模块中的MLP是一个包含两层的前馈网络。第一层将隐藏状态的维度扩展4倍(在论文中从d=512扩展到2048),而第二层压缩回原始维度(512)。这些层使用ReLU作为激活函数,用于在编码器模块中引入非线性。每个token独立地通过自己的MLP,与其他token无关。MLP的输出通过另一组加法与归一化层。

MLP/前馈网络(作者制图)

在这里插入图片描述

MLP/前馈网络 — 动画概述(作者制作的动画)

多头注意力

我们已经了解了自注意力模块的样子。在实践中,有多个这样的模块或头并行工作。每个头的输出被连接起来。连接后的头输出通过可学习的矩阵乘法融合在一起。多头注意力的最终输出与输入具有相同的维度。

在这里插入图片描述

多头自注意力 — 动画概述(作者制作的动画)

论文中的原始Transformer使用8个自注意力头。为了减少计算负载,每个自注意力头产生维度为d/8的隐藏状态(而不是d——这是通过限制、和矩阵的维度来实现的,使其产生通道数为d/8的查询、键和值)。融合矩阵W⁰是一个大小为dxd的方阵。

位置编码

由于句子中token的顺序很重要,位置编码用于为输入token嵌入分配位置信息。这是通过为每个token位置生成一个位置相关的向量(例如,使用正弦函数或学习的嵌入),并在将其传入第一个编码器模块之前,将其逐元素添加到相应的token嵌入中来实现的。

位置编码解释(作者制图)

位置编码仅添加到第一个编码器模块,因为自注意力本身是置换不变的。残差连接将位置信息传播到所有层。在每一层重新添加位置编码会扭曲表示。

位置编码解释(作者制图)

在这里插入图片描述

位置编码 — 动画概述(作者制作的动画)

总结

在本篇文章中,我们探索了编码器模块的工作原理——Transformer架构的两个核心构建模块之一。编码器的作用是为输入token序列生成上下文感知的嵌入,产生解码器后续使用的键和值,而不是原始输入token来生成输出。在此过程中,我们讨论了关键概念,如用于更丰富表示能力的多头注意力、用于引入非线性的MLP,以及用于在序列中纳入token顺序信息的位置编码。多个编码器模块顺序堆叠形成完整的编码器。

最后

选择AI大模型就是选择未来!最近两年,大家都可以看到AI的发展有多快,时代在瞬息万变,我们又为何不给自己多一个选择,多一个出路,多一个可能呢?

与其在传统行业里停滞不前,不如尝试一下新兴行业,而AI大模型恰恰是这两年的大风口,人才需求急为紧迫!

人工智能时代最缺的是什么?就是能动手解决问题还会动脑创新的技术牛人!智泊AI为了让学员毕业后快速成为抢手的AI人才,直接把课程升级到了V6.0版本‌。

这个课程就像搭积木一样,既有机器学习、深度学习这些基本功教学,又教大家玩转大模型开发、处理图片语音等多种数据的新潮技能,把AI技术从基础到前沿全部都包圆了!

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

图片

课程还教大家怎么和AI搭档一起工作,就像程序员带着智能助手写代码、优化方案,效率直接翻倍‌!

这么练出来的学员确实吃香,83%的应届生都进了大厂搞研发,平均工资比同行高出四成多‌。

智泊AI还特别注重培养"人无我有"的能力,比如需求分析、创新设计这些AI暂时替代不了的核心竞争力,让学员在AI时代站稳脚跟‌。

课程优势一:人才库优秀学员参与真实商业项目实训

图片

课程优势二:与大厂深入合作,共建大模型课程

图片

课程优势三:海外高校学历提升

图片

课程优势四:热门岗位全覆盖,匹配企业岗位需求

图片

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

·应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

·零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

·业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

图片

智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

重磅消息

人工智能V6.0升级两大班型:AI大模型全栈班AI大模型算法班,为学生提供更多选择。

图片

图片

由于文章篇幅有限,在这里我就不一一向大家展示了,学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。

【最新最全版】AI大模型全套学习籽料(可无偿送):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!

获取方式:有需要的小伙伴,可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

来智泊AI,高起点就业

培养企业刚需人才

扫码咨询 抢免费试学

⬇⬇⬇

在这里插入图片描述

在这里插入图片描述

AI大模型学习之路,道阻且长,但只要你坚持下去,就一定会有收获。

Logo

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

更多推荐