前言
2017年Google发表的《Attention Is All You Need》彻底颠覆了NLP乃至整个深度学习领域,摒弃了RNN、LSTM等循环序列模型的串行计算模式,完全基于注意力机制构建的Transformer架构,成为了BERT、GPT、LLaMA、ChatGPT等所有大语言模型的底层基石。
很多初学者学习Transformer时,常常被QKV矩阵、多头注意力、编解码结构、掩码机制等概念绕晕。本文将从零起步,循序渐进讲解词向量与嵌入层、自注意力机制、编码器、解码器四大核心模块,拆解每一步工作原理,规避晦涩公式堆砌,兼顾原理深度与落地理解,零基础也能轻松看懂。
📌 本文核心知识点
- 词向量的核心作用与技术意义
- 嵌入层+位置编码的输入处理逻辑
- 自注意力机制底层原理、QKV计算流程、缩放点积的作用
- 多头自注意力的优势与工作机制
- 编码器完整结构与特征提取逻辑
- 解码器三层核心结构与序列生成原理
- 编解码协同工作的完整流程
Transformer 架构图
左边为编码器,右边为解码器。
一、词向量:AI理解人类语言的基础
1.1 什么是词向量?
计算机无法直接识别文字、词语等人类自然语言,只能处理数值数据。词向量(Word Embedding)的核心作用,就是将离散、无规律的自然语言词汇,映射为低维、稠密、连续的实数向量,实现语言符号到数值空间的转换。
简单来说:每一个词语,都会被转化为一个固定维度的向量(Transformer默认512维),向量中的每一个数值,都代表该词语的某一项语义特征。
举例:
- “猫”、“狗”的词向量数值相似度极高(同属动物)
- “电脑”、“水杯”的词向量数值差异较大(语义无关)
1.2 词向量的核心重要性
传统的独热编码(One-Hot)存在致命缺陷:维度爆炸、词语之间相互独立、无法表达语义关联。而词向量完美解决了这些问题,是NLP模型的前置核心基础:
二、嵌入层:Transformer的输入预处理核心
嵌入层(Embedding Layer)是Transformer的第一层网络,负责完成原始文本的数值化转换,同时解决注意力机制的固有缺陷。完整输入处理包含词嵌入和位置编码两个核心步骤。
2.1 词嵌入:文本转向量
输入文本首先经过分词处理,拆分为若干Token(字词单元),随后通过嵌入层的词向量查询表,将每一个Token转换为固定维度的词向量。假设输入句子包含N个Token,最终会输出一个 N×d_model 的矩阵(d_model为模型维度,标准Transformer为512)。
2.2 位置编码:补充序列时序信息
这是Transformer区别于RNN的关键!自注意力机制本身无法感知序列顺序,它只关注词语语义关联,不区分词语先后顺序,无法识别“猫追老鼠”和“老鼠追猫”的语义差异。
为了解决该问题,Transformer引入位置编码(Positional Encoding),通过正弦、余弦函数生成位置向量,为每个Token注入时序位置信息。最终模型的输入向量公式为:
InputEmbedding = WordEmbedding + PositionalEncoding
简单理解:词向量负责存储语义信息,位置编码负责存储顺序信息,二者叠加后,模型才能完整理解自然语言。
三、自注意力机制:Transformer的核心灵魂
如果说嵌入层是Transformer的“输入眼睛”,那自注意力机制(Self-Attention)就是Transformer的“大脑”。其核心思想非常简单:让序列中的每一个Token,动态关注整个序列中所有相关Token,捕捉全局上下文依赖。
不同于RNN只能串行捕捉局部时序依赖,自注意力可以直接建模长距离语义关联,这也是大模型能够理解超长文本的核心原因。
3.1 核心QKV矩阵原理
自注意力通过三个可训练的权重矩阵,对输入向量做线性变换,生成Query、Key、Value三个特征矩阵,三者分工明确:
- Query(查询Q):当前Token的特征向量,代表“我要找什么信息”
- Key(键K):全局所有Token的特征向量,代表“我有什么信息”
- Value(值V):全局所有Token的原始语义信息,代表“我能提供什么信息”
3.2 缩放点积注意力完整计算流程
标准缩放点积注意力(Scaled Dot-Product Attention)分为4步,全程无复杂非线性计算,高效且易并行:
核心公式:
Attention(Q,K,V) = Softmax( QKT / √dk )V
3.3 多头自注意力(Multi-Head Attention)
单一自注意力头只能捕捉单一维度的语义关联,而多头自注意力通过拆分QKV、并行计算多组注意力,大幅提升模型特征提取能力:
- 将QKV均匀拆分为h组(标准Transformer h=8),每组独立计算注意力
- 不同注意力头分别捕捉语法、语义、语序、指代等不同维度的特征
- 拼接所有头的输出,通过线性层融合特征,得到最终注意力输出
优势:并行计算、多维度特征捕捉、避免单一注意力的特征局限,是模型理解复杂语义的关键。
四、编码器(Encoder):全局语义理解模块
Transformer的编码器由6层完全相同的网络层堆叠而成,核心功能是对输入文本做全局语义编码,提取完整上下文特征,主要用于理解类任务(如文本分类、语义匹配、BERT预训练)。
4.1 单层编码器完整结构
每一层编码器包含两个核心子层,搭配残差连接与层归一化(LayerNorm),结构简洁且高效:
4.2 编码器核心特点
- 双向感知:上下文双向可见,适合文本理解任务
- 全局建模:无序列遮挡,捕捉完整长距离依赖
- 特征提纯:多层堆叠逐步细化语义特征,输出高质量编码特征
五、解码器(Decoder):序列生成模块
解码器同样由6层相同网络层堆叠而成,在编码器两层子层的基础上,新增一层掩码自注意力,核心功能是基于编码器的全局特征,逐字生成目标序列,主要用于生成类任务(机器翻译、文本续写、GPT生成)。
5.1 单层解码器三层核心结构
核心作用:防止未来信息泄露。序列生成是逐字迭代过程,生成第i个Token时,不能看到i之后的所有Token。通过上三角掩码矩阵,屏蔽未来位置的注意力分数,保证生成时序合法性。
这是编解码协同的核心!区别于自注意力的自身建模,交叉注意力的Q来自解码器上一层输出,K、V来自编码器的最终输出。让解码过程的每一步,都能动态关注输入文本的全局特征,实现输入与输出的语义对齐。
与编码器一致,对融合后的特征做非线性优化,提升生成文本的语义准确性与流畅度。
5.2 解码器工作逻辑
采用自回归生成模式:从起始Token开始,逐次生成一个新Token,将新Token加入输入序列,迭代循环,直到生成结束Token,最终完成完整文本序列生成。
六、关键答疑:编码器输出与解码器输入的核心关系
在学习编解码协同工作流程时,绝大多数初学者会混淆编码器输出和解码器输入,这里做精准、通俗的权威界定,打通核心逻辑闭环:
1. 编码器的输出:Token 全局抽象语义向量
编码器经过6层堆叠迭代计算后,最终输出的不再是原始词向量(仅包含孤立语义),也不是简单的嵌入向量,而是融合整句双向上下文、全局语义信息的高级抽象Token向量矩阵。每一个位置的向量,都已经结合了全文所有Token的关联特征,是源文本的终极语义表征。
2. 该抽象向量的用途:不直接作为解码器原始输入,仅供给交叉注意力层
很多人误区:编码器输出 = 解码器输入。实际编解码分工极其明确:
- 解码器原始输入(喂给掩码自注意力):是目标序列的Token嵌入向量(带位置编码)。比如机器翻译中,是已经生成的译文Token;文本续写中,是模型已经输出的历史Token,用于保证生成时序合法、自回归迭代输出。
- 编码器输出(喂给交叉注意力):作为全局语义上下文素材,只作用于解码器的Cross-Attention层。解码器每生成一个新Token,都会通过交叉注意力,查询编码器的全局抽象向量,对齐源文本语义,保证生成内容不偏离原文语义。
一句话终极总结:编码器输出是源文本的全局抽象语义知识库(用于语义对齐),解码器输入是已生成的目标序列历史内容(用于续写生成),二者配合完成完整的语义理解+文本生成流程。
七、Transformer整体工作全流程总结
为方便大家整体串联知识点,梳理完整端到端工作流程:
八、核心模块对比与核心亮点
8.1 编码器VS解码器核心区别
- 编码器:双向无掩码、专注语义理解、输出全局特征、适用于理解类任务
- 解码器:单向掩码、专注序列生成、依赖编码特征、适用于生成类任务
8.2 Transformer核心优势
九、总结与学习感悟
本文从基础到核心,完整拆解了Transformer四大核心模块:词向量是语言数字化的基础,嵌入层完成文本输入预处理,自注意力机制实现全局语义建模,编码器负责理解、解码器负责生成。
所有大语言模型的迭代优化,本质上都是对Transformer基础架构的微调、扩容与优化:BERT仅保留编码器做理解任务,GPT仅保留解码器做生成任务,机器翻译模型则完整保留编解码结构。
吃透这一套基础原理,是深入学习大模型微调、Prompt工程、模型部署的必备前提。后续我会持续更新Transformer进阶知识点(RoPE位置编码、稀疏注意力、模型缩放原理等),欢迎持续关注!
💡 码字不易,点赞收藏+关注,持续更新AI深度学习干货!




