一键重装系统工具 | U盘启动盘制作工具 | 误删文件恢复软件 | 硬盘数据抢救专家 | 电脑蓝屏修复助手 | C盘空间清理神器 | 电脑驱动离线安装工具 | 微信聊天记录恢复工具 | 照片误格式化恢复 | 电脑密码破解清除工具 | 系统崩溃紧急救援盘 | 电脑加速优化大师 | 电脑开不了机怎么重装系统 | 回收站清空了怎么恢复 | 硬盘分区丢失数据恢复 | 电脑卡顿重装系统有用吗 | U盘插入提示格式化数据恢复 | 电脑中毒文件被隐藏恢复 | 忘记电脑开机密码怎么办 | 新硬盘分区对齐工具 | 旧电脑装Win10流畅工具 | SD卡照片删除恢复免费版 | 移动硬盘打不开提示损坏修复 | 电脑无故重启系统修复工具 | 电脑小白一键重装神器 | 程序员电脑环境配置助手 | 设计师电脑字体/素材恢复工具 | 网吧网管系统维护工具箱 | 财务人员电脑发票备份恢复 | 学生党免费电脑系统安装包 | 电脑维修师傅必备工具盘 | 游戏玩家电脑性能优化助手 | 办公白领误删文档恢复软件 | 自媒体视频素材恢复工具 | 网课录制视频损坏修复工具 | 最好的U盘PE系统排名 | 数据恢复软件哪个最强 | 免费电脑助手与收费版区别 | 国产装机工具哪款无广告 | 离线版驱动助手推荐 | 轻量级电脑优化工具对比 | 支持NVMe驱动的PE工具 | 带网络功能的应急启动盘 | 2026最新版万能装机工具 | 支持Win11 24H2的PE工具 | 最新免激活系统重装工具 | 2026数据恢复软件破解版合集 | 纯净无捆绑装机助手V3.0 | 支持苹果M芯片的电脑助手 | 秋季更新版系统维护工具箱 | 电脑系统崩了怎么用U盘把重要资料拷贝出来 | 重装系统前哪些文件夹必须备份 | 固态硬盘误格式化还能恢复数据吗 | 如何制作一个既带PE又能存数据的双分区U盘 | 电脑总是弹窗广告用什么助手彻底拦截 后台管理
📢 欢迎访问系统之家!所有资源均经过安全检测。

一文了解Transformer全貌(图解Transformer)

发布时间:2026-09-18 | 浏览:2
📥 下载地址(文章开头)
一键制作系统U盘仅需下载到电脑后接上U盘点一下全自动完成。
打个小广告 ☻,知乎专栏 《大模型前沿应用》 的内容已经收录在新书 《揭秘大模型:从原理到实战》 中。感兴趣的朋友可以购买,多谢支持!♥♥ 自2017年Google推出Transformer以来,基于其架构的语言模型便如雨后春笋般涌现,其中Bert、T5等备受瞩目,而近期风靡全球的大模型ChatGPT和LLaMa更是大放异彩。网络上关于Transformer的解析文章非常大,但本文将力求用浅显易懂的语言,为大家深入解析Transformer的技术内核。 Transformer是谷歌在2017年的论文《Attention Is All You Need》中提出的,用于NLP的各项任务,现在是谷歌云TPU推荐的参考模型。网上有关Transformer原理的介绍很多,在本文中我们将尽量模型简化,让普通读者也能轻松理解。 1. Transformer整体结构 在机器翻译中,Transformer可以将一种语言翻译成另一种语言,如果把Transformer看成一个黑盒,那么其结构如下图所示: 那么拆开这个黑盒,那么可以看到Transformer由若干个编码器和解码器组成,如下图所示: 继续将Encoder和Decoder拆开,可以看到完整的结构,如下图所示: 可以看到Encoder包含一个Muti-Head Attention模块,是由多个Self-Attention组成,而Decoder包含两个Muti-Head Attention。Muti-Head Attention上方还包括一个 Add & Norm 层,Add 表示残差连接 (Residual Connection) 用于防止网络退化,Norm 表示 Layer Normalization,用于对每一层的激活值进行归一化。 假设我们的输入包含两个单词,我们看一下Transformer的整体结构: 为了能够对Transformer的流程有个大致的了解,我们举一个简单的例子,还是以之前的为例,将法语"Je suis etudiant"翻译成英文。 第一步 :获取输入句子的每一个单词的表示向量 , 由单词的Embedding和单词位置的Embedding 相加得到。 第二步 :将单词向量矩阵传入Encoder模块,经过N个Encoder后得到句子所有单词的编码信息矩阵 ,如下图。输入句子的单词向量矩阵用 表示,其中 是单词个数, 表示向量的维度(论文中 )。每一个Encoder输出的矩阵维度与输入完全一致。 第三步 :将Encoder输出的编码矩阵 传递到Decoder中,Decoder会根据当前翻译过的单词 翻译下一个单词 ,如下图所示。 上图Decoder接收了Encoder的编码矩阵,然后首先输入一个开始符 "<Begin>",预测第一个单词,输出为"I";然后输入翻译开始符 "<Begin>" 和单词 "I",预测第二个单词,输出为"am",以此类推。这是Transformer的大致流程,接下来介绍里面各个部分的细节。 2. Transformer的输入表示 Transformer中单词的输入表示由 单词Embedding 和 位置Embedding (Positional Encoding)相加得到。 2.1 单词Embedding 单词的Embedding可以通过Word2vec等模型预训练得到,可以在Transformer中加入Embedding层。 2.2 位置Embedding Transformer 中除了单词的Embedding,还需要使用位置Embedding 表示单词出现在句子中的位置。 因为 Transformer不采用RNN结构,而是使用全局信息,不能利用单词的顺序信息,而这部分信息对于NLP来说非常重要。 所以Transformer中使用位置Embedding保存单词在序列中的相对或绝对位置。 位置Embedding用 表示, 的维度与单词Embedding相同。 可以通过训练得到,也可以使用某种公式计算得到。在Transformer中采用了后者,计算公式如下: 其中, 表示单词在句子中的位置, 表示 的维度。 3. Multi-Head Attention(多头注意力机制) 上图是Transformer的内部结构,其中红色方框内为 Multi-Head Attention ,是由多个 Self-Attention 组成,具体结构如下图: 因为 Self-Attention 是Transformer的重点,所以我们重点关注 Multi-Head Attention 以及 Self-Attention,首先介绍下Self-Attention的内部逻辑。 3.1 Self-Attention结构 上图是Self-Attention结构,最下面是 (查询)、 (键值)、 (值)矩阵,是通过输入矩阵 和权重矩阵 相乘得到的。 得到 之后就可以计算出Self-Attention的输出,如下图所示: 3.2 Multi-Head Attention输出 在上一步,我们已经知道怎么通过Self-Attention计算得到输出矩阵 ,而Multi-Head Attention是由多个Self-Attention组合形成的,下图是论文中Multi-Head Attention的结构图。 从上图可以看到Multi-Head Attention包含多个Self-Attention层,首先将输入 分别传递到 个不同的Self-Attention中,计算得到 个输出矩阵 。下图是 的情况,此时会得到 8 个输出矩阵 。 得到8个输出矩阵 后,Multi-Head Attention将它们拼接在一起(Concat),然后传入一个Linear层,得到Multi-Head Attention最终的输出矩阵 。 4. 编码器Encoder结构 上图红色部分是Transformer的Encoder结构, 表示Encoder的个数,可以看到是由Multi-Head Attention、Add & Norm、Feed Forward、Add & Norm组成的。前面已经介绍了Multi-Head Attention的计算过程,现在了解一下Add & Norm和 Feed Forward部分。 4.1 单个Encoder输出 Add & Norm 是指残差连接后使用LayerNorm,表示如下:
📥 下载地址(文章中间)
一键制作系统U盘仅需下载到电脑后接上U盘点一下全自动完成。
其Sublayer表示经过的变换,比如第一个Add & Norm中Sublayer表示Multi-Head Attention。 Feed Forward 是指全连接层,表示如下: 因此输入矩阵 经过一个Encoder后,输出表示如下: 4.2 多个Encoder输出 通过上面的单个Encoder,输入矩阵 ,最后输出矩阵 。通过多个Encoder叠加,最后便是编码器Encoder的输出。 5. 解码器Decoder结构 上图红色部分为Transformer的Decoder结构,与Encoder相似,但是存在一些区别: 包含两个Multi-Head Attention 第一个Multi-Head Attention采用了Masked操作 第二个Multi-Head Attention的 矩阵使用Encoder的 编码信息矩阵 进行计算,而 使用上一个 Decoder的输出计算 最后有一个Softmax层计算下一个翻译单词的概率 5.1 第一个Multi-Head Attention Decoder的第一个Multi-Head Attention采用了Masked操作,因为在翻译的过程中是顺序翻译的,即翻译完第 个单词,才可以翻译第 个单词。通过 Masked 操作可以防止第 个单词知道 个单词之后的信息。下面以法语"Je suis etudiant"翻译成英文"I am a student"为例,了解一下 Masked 操作。 在Decoder的时候,需要根据之前翻译的单词,预测当前最有可能翻译的单词,如下图所示。首先根据输入"<Begin>"预测出第一个单词为"I",然后根据输入"<Begin> I" 预测下一个单词 "am"。 Decoder在预测第 个输出时,需要将第 之后的单词掩盖住, Mask操作是在Self-Attention的Softmax之前使用的, 下面以前面的"I am a student"为例。 第一步: 是Decoder的输入矩阵和 Mask 矩阵,输入矩阵包含"<Begin> I am a student"4个单词的表示向量, Mask 是一个 的矩阵。在 Mask 可以发现单词"<Begin>"只能使用单词"<Begin>"的信息,而单词"I"可以使用单词"<Begin> I"的信息,即只能使用之前的信息。 第二步 :接下来的操作和之前Encoder中的Self-Attention一样,只是在Softmax之前需要进行Mask操作。 第三步 :通过上述步骤就可以得到一个Mask Self-Attention的输出矩阵 ,然后和Encoder类似,通过Multi-Head Attention拼接多个输出 然后计算得到第一个Multi-Head Attention的输出 , 与输入 维度一样。 5.2 第二个Multi-Head Attention Decoder的第二个Multi-Head Attention变化不大, 主要的区别在于其中Self-Attention的 矩阵不是使用上一个Multi-Head Attention的输出,而是使用 Encoder的编码信息矩阵 计算的。根据Encoder的输出 计算得到 ,根据上一个Multi-Head Attention的输出 计算 。这样做的好处是在Decoder的时候,每一位单词(这里是指"I am a student")都可以利用到Encoder所有单词的信息(这里是指"Je suis etudiant")。 编码器Decoder最后的部分是利用 Softmax 预测下一个单词,在Softmax之前,会经过Linear变换,将维度转换为词表的个数。 假设我们的词表只有6个单词,表示如下: 因此,最后的输出可以表示如下: Transformer由于可并行、效果好等特点,如今已经成为机器翻译、特征抽取等任务的基础模块,目前ChatGPT特征抽取的模块用的就是Transformer,这对于后面理解ChatGPT的原理做了好的铺垫。 初识CV:Transformer模型详解(图解最完整版) 数据汪:BERT大火却不懂Transformer?读这一篇就够了 The Illustrated Transformer 忆臻:搞懂Transformer结构,看这篇PyTorch实现就够了(上) The Annotated Transformer https:// arxiv.org/pdf/1706.0376 2.pdf 青空栀浅:图解Transformer Ph0en1x:Transformer结构及其应用详解--GPT、BERT、MT-DNN、GPT-2 大师兄:ChatGPT/InstructGPT详解 张俊林:ChatGPT会取代搜索引擎吗 张俊林:放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较
📥 下载地址(文章结尾)
一键制作系统U盘仅需下载到电脑后接上U盘点一下全自动完成。