手撕 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)和一个层归一化,以及一个残差连接组成。第三个子层由一个前馈层 和一个层归一化,以及一个残差连接组成。

文章链接

相关推荐
米小虾18 分钟前
AI Agent 安全实战指南:当智能体开始"不听话",开发者该如何应对?
人工智能·安全·agent
IT_陈寒2 小时前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
阿里云大数据AI技术4 小时前
构建高转化海外电商搜索:阿里云OpenSearch行业算法版的全链路智能优化策略实战
人工智能·搜索引擎
Awu12274 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
字节跳动视频云技术团队4 小时前
让 Agent 成为音视频工作台:AI MediaKit CLI + Skill 发布
人工智能·音视频开发
魏祖潇4 小时前
framework 整合实战——DDD/TDD/SDD 三件套在 framework 仓的真实落地
人工智能·后端
Token炼金师5 小时前
去噪扩散:从随机噪声到高保真图像的数学之路
人工智能·aigc
这个DBA有点耶5 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员
阿里云大数据AI技术5 小时前
阿里云 EMR AI 助手正式发布:从问答工具到全栈智能运维助手
运维·人工智能