手撕 Transformer (1):Transformer 的结构拆解

在手撕 Transformer 之前,我们要先了解一下 Transformer 的结构。乍一看,它的结构有点复杂,其实还好。我们分开看就可以了,可以把 Transformer 看成四个部分:输入部分、输出部分、编码器部分、解码器部分。这篇文章不讲每个部分的作用只做拆解,每个部分的作用将在后续文章详细说明。可以带着问题去读后续文章。

输入部分

如下图所示,Transformer 的输入部分分为两部分,一部分是源文本嵌入层(图中 Inuput Embedding)+ 位置编码(图中 Positional Encoding),另一部分是目标文本嵌入层(图中 Output Embedding)+ 位置编码(图中 Positional Encoding)

输出部分

如下图所示,Transformer 的输出部分由 Linear 和 Softmax 组成。

编码器

如下图所示,Transformer 的编码器由 N 个编码器层(Encoder Layer)组成,每个编码器层由 2 个子层组成。第一个子层由一个多头自注意力 (Multi-Head Self-Attention,图中 Multi-Head Attention)和一个层归一化 (Layer Normalization,图中为 Norm),以及一个残差连接组成。第二个子层由一个前馈层 (图中 Feed Forward)和一个层归一化 (图中 Norm),以及一个残差连接组成。

解码器

如下图所示,Transformer 的解码器由 N 个解码器层(Decoder Layer)组成,每个解码器层由 3 个子层组成。第一个子层由一个掩码多头自注意力 (Masked Multi-Head Self-Attention,图中 Masked Multi-Head Attention)和一个层归一化,以及一个残差连接组成。第二个子层由一个多头注意力(不是自注意力,而是交叉注意力 ,图中 Multi-Head Attention)和一个层归一化,以及一个残差连接组成。第三个子层由一个前馈层 和一个层归一化,以及一个残差连接组成。

文章链接

相关推荐
信可维9 分钟前
AI 说「改完了」怎么确认真改完了:git diff + 测试 + 一张验收表的 3 步复核
人工智能·git
CoderIsArt11 分钟前
消除喷头残余振荡方案
人工智能·喷墨打印
镜象科技15 分钟前
AI情感陪伴大模型是什么?孤独时代的科技解法与它的专业底线
人工智能
吴佳浩 Alben15 分钟前
单卡5090跑125B 大模型:从安装、验证到基准测试的完整操作教程
人工智能
马剑威(威哥爱编程)16 分钟前
【AI全栈后端12-11】Spring Boot 把 AI 接口真正上线扛量:限流 / 降级 / 可观测
人工智能·spring boot·后端
数智顾问23 分钟前
(172页PPT)某大型集团数字化转型采购供应链及财务管控业务流程蓝图规划方案(附下载方式)
大数据·人工智能
做个有深度的老李26 分钟前
中小机加工车间协作机器人落地难点|从集成交付能力角度选型
大数据·人工智能·机器人·自动化·柔性机器人
行业研究员31 分钟前
Agent Memory降低Token消耗原理解析
数据库·人工智能·oracle·腾讯云·智能体
LONGZETECH32 分钟前
新能源技术实训难题破解:纯电动汽车五大核心系统三维仿真解决方案
大数据·c语言·人工智能·安全·汽车
吴建旭 智宅焕36 分钟前
智能家居全国交付知识生产系统的真实性架构:从AI生成内容到可验证交付资产
人工智能·架构·智能家居