大模型必知基础知识:3、Transformer架构-词嵌入原理详解

大模型必知基础知识:3、Transformer架构-词嵌入原理详解

总目录

  1. 大模型必知基础知识:1、Transformer架构-QKV自注意力机制
  2. 大模型必知基础知识:2、Transformer架构-大模型是怎么学习到知识的?
  3. 大模型必知基础知识:3、Transformer架构-词嵌入原理详解
  4. 大模型必知基础知识:4、Transformer架构-多头注意力机制原理详解
  5. 大模型必知基础知识:5、Transformer架构-前馈神经网络(FFN)原理详解
  6. 大模型必知基础知识:6、Transformer架构-提示词工程调优
  7. 大模型必知基础知识:7、Transformer架构-大模型微调作用和原理详解
  8. 大模型必知基础知识:8、Transformer架构-如何理解学习率 Learning Rate
  9. 大模型必知基础知识:9、MOE多专家大模型底层原理详解
  10. 大模型必知基础知识:10、大语言模型与多模态融合架构原理详解
  11. 大模型必知基础知识:11、大模型知识蒸馏原理和过程详解
  12. 大模型必知基础知识:12、大语言模型能力评估体系
  13. 大模型必知基础知识:13、大语言模型性能评估方法

目录

  1. 什么是Transformer
  2. Transformer的核心理念
  3. Transformer的整体架构
  4. 输入层:词嵌入技术详解
  5. 核心机制:注意力机制
  6. 总结与展望
  7. 附录

什么是Transformer

想象你有一个超级聪明的翻译机器人,它能在瞬间将中文翻译成英文,能写出连贯的文章、回答复杂的问题、生成创意内容。Transformer就是这个机器人的"大脑",是现代大型语言模型(如ChatGPT、Claude、Qwen、Deepseek、Grok等)的核心架构。

Transformer由Google Brain团队在2017年的标志性论文《Attention Is All You Need》中首次提出,彻底改变了自然语言处理的游戏规则。相比传统的循环神经网络(RNN),Transformer具有更强的并行计算能力更优秀的长距离依赖捕捉能力,已成为支撑现代AI的重要基石。

这个架构不仅在语言处理领域表现卓越,还被广泛应用于图像处理、多模态学习等复杂数据处理任务,证明了其设计的通用性和高效性。


Transformer的核心理念

Transformer的厉害之处在于它能"理解"一句话的整体意思,而不是一个词一个词地机械式地处理。它通过一种叫"注意力机制"(Attention)的技术,快速而精准地抓住句子中哪些词更重要、哪些词之间的关系更紧密

这种全局视角是Transformer相比RNN最大的优势。传统的RNN必须按照时间序列一步步处理输入数据,而Transformer可以并行处理所有位置的数据,通过注意力权重来建立任意两个位置之间的关系。

打个具体的比方:

你读这句英文"Tom ate an apple in the kitchen",传统的逐词处理方式会这样进行:先看"Tom",再看"ate",再看"an",依次进行到"kitchen"。

而Transformer不会这样傻傻地逐词处理。它会瞬间扫描整个句子,立刻注意到"ate"和"apple"的关系最紧密(因为吃的对象就是苹果),"Tom"是吃的主体,"in the kitchen"是次要的背景信息。

通过这种**"全局观察"和"重点关注"的能力**,Transformer能更准确地理解句子的真实含义和上下文关系

这种从全局角度理解语义的方式,就是Transformer的精髓所在。


Transformer的整体架构

在这里插入图片描述

可以简单将Transformer理解为一个函数:y = f(x),其中输入X经过复杂的数学计算得到输出Y。具体来说,Transformer就像一个"加工厂":

  • 输入端: 接收原始文本数据(比如一句中文或英文)
  • 处理车间: 经过多个层级的处理工序,每层都对数据进行深层的语义提取和特征转换
  • 输出端: 生成处理好的结果(比如翻译、文本摘要、问题回答)

Transformer的核心组件包括:

  1. 词嵌入与位置编码层:将文本转换为数字向量
  2. 自注意力机制:理解词与词之间的关系
  3. 多头注意力机制:从多个角度理解文本
  4. 前馈神经网络:对特征进行非线性转换
  5. 多层堆叠的编码器或解码器:逐层提升理解能力
  6. 层归一化与残差连接:保证训练稳定性

这些部分相互配合,形成了一个完整的、强大的神经网络架构。


输入层:词嵌入技术详解

计算机本质上只能理解数字。无论是中文、英文还是任何其他语言,计算机都无法直接理解文字的语义。因此,Transformer的第一步工作就是把文本转换成计算机能够处理的数字形式。这个过程分为三个关键步骤:分词词嵌入位置编码

在这里插入图片描述

分词(Tokenization)

什么是分词?

分词是将一段连续的文本分解成更小的、意义明确的单元的过程。每个单元被称为一个"token"(令牌)。这个概念特别重要,因为现在许多收费的大模型都按tokens来计费。

分词的作用

计算机不能直接理解"苹果"、"机器学习"这样的词。分词的作用是将句子拆解成一个个离散的、有明确身份的小单位,便于后续的数学处理。

分词的方式

分词方式有多种,适用于不同的语言和场景:

1. 词级别分词(Word-level Tokenization)

这是最直观的方式。比如句子"我爱吃苹果",按词级别分词可以得到:["我", "爱", "吃", "苹果"]。每个词被视为一个独立的token。

优点: 直观易懂,符合人类的语言习惯
缺点: 词汇表庞大,难以处理生僻词和新词

2. 子词级别分词(Subword Tokenization)

这是现代大模型普遍采用的方式。子词分词能更灵活地处理生词、复合词等情况。同样的句子可能被分解为:["我", "爱", "吃", "苹", "##果"],其中"##"表示这是前一个词的延续。

流行的子词分词方法包括:

  • BPE(Byte Pair Encoding):GPT系列常用
  • WordPiece:BERT系列常用
  • SentencePiece:多语言模型常用

优点: 平衡词汇表大小和表达能力,能处理未见过的词
缺点: 需要预先训练分词器

语言差异

英文处理相对直接,通常一个英文单词对应一个token。但中文处理更复杂:常见词汇(如"我"、“爱”、“苹果”)可能被识别为一个token,但较冷门的汉字可能按偏旁部首拆分。这导致相同的汉字数在被token化后,token总数往往会大幅增加,通常是汉字数的1.5到3倍。

Token ID分配

每个token被分配一个唯一的数字ID,这个ID通过查询模型的词汇表(vocabulary)得到。

举个具体的例子:

原始句子:"我爱吃苹果"

步骤1:分词
["我", "爱", "吃", "苹果"]

步骤2:查询词汇表,转换为ID
[100, 101, 102, 103]

这些数字ID就是计算机能够处理的形式

词嵌入(Word Embedding)

什么是词嵌入?

词嵌入是将每个token ID转换为一个高维向量的过程。这个向量不是随机的,而是经过训练学习到的,能够捕捉词的语义信息。

为什么需要词嵌入?

简单的数字ID(如100, 101)只是一个标识符,不包含任何语义信息。词嵌入将这些ID映射到一个连续的向量空间,使得语义相近的词在向量空间中距离也相近。

词嵌入的数学表示

假设我们的词汇表大小为V(比如50,000个词),嵌入维度为 d m o d e l d_{model} dmodel(比如512维),那么词嵌入矩阵 E E E的维度就是 V × d m o d e l V \times d_{model} V×dmodel

对于token ID为 i i i的词,其嵌入向量为:

embedding i = E [ i ] ∈ R d m o d e l \text{embedding}_i = E[i] \in \mathbb{R}^{d_{model}} embeddingi=E[i]Rdmodel

词嵌入的直观理解

想象一个512维的空间(虽然我们无法直接可视化),在这个空间中:

  • "国王"和"王后"的向量距离很近
  • "男人"和"女人"的向量有特定的方向关系
  • “苹果”(水果)和"苹果"(公司)可能在不同的区域

这种空间分布使得模型能够理解词与词之间的语义关系。

经典的词嵌入关系

词嵌入有一个著名的特性:向量运算能够反映语义关系

King - Man + Woman ≈ Queen
(国王 - 男人 + 女人 ≈ 王后)

Paris - France + Italy ≈ Rome
(巴黎 - 法国 + 意大利 ≈ 罗马)

这种"语义代数"是词嵌入最神奇的特性之一。


位置编码(Positional Encoding)

为什么需要位置编码?

Transformer的注意力机制本身是位置无关的。也就是说,如果不添加位置信息,模型无法区分"猫吃鱼"和"鱼吃猫"这两句话——它只能看到三个词,但不知道它们的顺序。

位置编码就是为了解决这个问题,让模型知道每个词在句子中的位置。

位置编码的设计原则

一个好的位置编码应该满足:

  1. 每个位置有唯一的编码
  2. 不同位置之间的距离应该一致可衡量
  3. 能够泛化到训练时未见过的序列长度
  4. 编码值应该有界,不会随位置无限增长
正弦位置编码(Sinusoidal Positional Encoding)

原始Transformer论文使用的是正弦位置编码,公式如下:

P E ( p o s , 2 i ) = sin ⁡ ( p o s 1000 0 2 i / d m o d e l ) PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right) PE(pos,2i)=sin(100002i/dmodelpos)

P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s 1000 0 2 i / d m o d e l ) PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right) PE(pos,2i+1)=cos(100002i/dmodelpos)

其中:

  • p o s pos pos 是位置索引(0, 1, 2, …)
  • i i i 是维度索引(0到 d m o d e l / 2 d_{model}/2 dmodel/2
  • 偶数维度使用sin函数,奇数维度使用cos函数
位置编码的直观理解

可以把位置编码想象成时钟的指针:

  • 不同的维度就像不同速度转动的指针
  • 低频维度(慢指针)捕捉大范围的位置关系
  • 高频维度(快指针)捕捉精细的位置差异

这种设计使得模型能够学习相对位置关系,比如"相邻的词"、"距离k个位置的词"等。

最终的输入表示

最终输入到Transformer的向量是词嵌入和位置编码的相加

Input = WordEmbedding + PositionalEncoding \text{Input} = \text{WordEmbedding} + \text{PositionalEncoding} Input=WordEmbedding+PositionalEncoding

这个简单的相加操作,就让模型同时获得了"这是什么词"和"这个词在哪里"的信息。


核心机制:注意力机制

注意力机制是Transformer的灵魂,也是其名称"Attention Is All You Need"的由来。这个机制让模型能够动态地关注输入序列中的不同部分。

自注意力机制(Self-Attention)

注意力机制的核心思想

当人类阅读一句话时,我们不会平等地对待每个词。比如在"我昨天在北京的故宫博物院看到了很多珍贵的文物"这句话中,如果我们要理解"文物",我们会自动关注"故宫博物院"、“珍贵"等相关词,而不太关注"昨天”。

自注意力机制就是让模型学会这种"选择性关注"的能力。

自注意力的数学表示

自注意力机制包含三个核心矩阵:Query(查询)Key(键)Value(值)

对于输入序列 X ∈ R n × d m o d e l X \in \mathbb{R}^{n \times d_{model}} XRn×dmodel(n是序列长度),我们通过三个权重矩阵得到Q、K、V:

Q = X W Q , K = X W K , V = X W V Q = XW^Q, \quad K = XW^K, \quad V = XW^V Q=XWQ,K=XWK,V=XWV

其中 W Q , W K , W V ∈ R d m o d e l × d k W^Q, W^K, W^V \in \mathbb{R}^{d_{model} \times d_k} WQ,WK,WVRdmodel×dk是可学习的参数。

注意力的计算公式为:

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

注意力计算的步骤详解

让我们用一个具体例子来理解这个过程。假设句子是"猫吃鱼":

步骤1:计算相似度得分

对于"吃"这个词(Query),计算它与所有词(Key)的相似度:

"吃"与"猫"的得分:0.3
"吃"与"吃"的得分:0.8
"吃"与"鱼"的得分:0.7

这通过 Q K T QK^T QKT计算得到,除以 d k \sqrt{d_k} dk 是为了数值稳定。

步骤2:归一化得到注意力权重

通过softmax将得分转换为概率分布:

"吃"对"猫"的注意力:0.15
"吃"对"吃"的注意力:0.40
"吃"对"鱼"的注意力:0.45

步骤3:加权求和得到输出

用注意力权重对Value进行加权求和:

"吃"的输出 = 0.15 × "猫"的value + 0.40 × "吃"的value + 0.45 × "鱼"的value

这个输出向量融合了所有相关词的信息,其中"鱼"的信息占比最大。

为什么除以 d k \sqrt{d_k} dk

当维度 d k d_k dk很大时, Q K T QK^T QKT的值可能很大,导致softmax函数的梯度非常小(饱和区)。除以 d k \sqrt{d_k} dk 可以将方差归一化为1,避免这个问题。


多头注意力(Multi-Head Attention)

为什么需要多头?

单个注意力头只能从一个角度理解句子。就像看一个物体,从一个角度看可能看不全,需要从多个角度观察。

多头注意力让模型能够:

  • 从不同的语义空间关注不同的信息
  • 同时捕捉多种类型的依赖关系(语法关系、语义关系等)
多头注意力的计算

多头注意力将 d m o d e l d_{model} dmodel维度分成 h h h个头,每个头的维度为 d k = d m o d e l / h d_k = d_{model}/h dk=dmodel/h

head i = Attention ( Q W i Q , K W i K , V W i V ) \text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) headi=Attention(QWiQ,KWiK,VWiV)

MultiHead ( Q , K , V ) = Concat ( head 1 , . . . , head h ) W O \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^O MultiHead(Q,K,V)=Concat(head1,...,headh)WO

其中 W O W^O WO是输出投影矩阵。

多头注意力的直观理解

假设有8个注意力头,对于句子"银行卡在桌子上":

  • 头1可能关注"银行卡"的整体语义
  • 头2可能关注"卡"和"在"的位置关系
  • 头3可能关注"在"和"桌子上"的语法关系
  • 头4可能捕捉长距离依赖

不同的头学习到不同的关注模式,然后将这些信息拼接起来,形成更全面的理解。


总结与展望

Transformer的革命性意义

Transformer架构自2017年问世以来,已经彻底改变了自然语言处理乃至整个人工智能领域。它的核心创新在于用注意力机制完全替代了传统的循环结构,实现了:

1. 并行化计算

相比RNN的顺序处理,Transformer可以并行处理整个序列,极大提升了训练效率。

对比示例:

RNN处理"我爱吃苹果":
  时间步1: 处理"我" → 输出h1
  时间步2: 处理"爱"(依赖h1) → 输出h2
  时间步3: 处理"吃"(依赖h2) → 输出h3
  时间步4: 处理"苹果"(依赖h3) → 输出h4
  (必须顺序执行)

Transformer处理"我爱吃苹果":
  同时处理所有词,计算注意力矩阵
  所有位置可以并行计算
  (可以在GPU上高效并行)
2. 长距离依赖建模

注意力机制能直接建立任意两个位置的关系,不受距离限制,而RNN在处理长序列时会出现梯度消失问题。

示例:

句子:"那个在1998年我第一次去过的城市真的很美"

RNN: "城市"到"美"需要经过多个时间步,信息衰减严重
Transformer: "城市"和"美"可以直接建立注意力连接,距离不是问题
3. 可解释性

注意力权重可以可视化,让我们能够理解模型"在看什么"。

示例:

翻译"The cat sat on the mat"为"猫坐在垫子上"

可视化注意力权重发现:
- "猫"高度关注"cat"
- "坐"高度关注"sat"
- "垫子"同时关注"mat"和"the"
4. 通用性强

Transformer不仅在NLP领域成功,还被成功应用于:

  • 计算机视觉:Vision Transformer (ViT)
  • 多模态学习:CLIP、GPT-4
  • 蛋白质结构预测:AlphaFold
  • 代码生成:Codex、GitHub Copilot
  • 音乐生成:MuseNet
  • 药物发现:AlphaFold、ESMFold

结语

Transformer不仅仅是一个技术架构,更是人工智能从"专用工具"向"通用智能"迈进的重要里程碑。理解Transformer的原理,就是理解现代AI如何"思考"的基础。


附录:关键术语对照表

中文术语英文术语简要说明公式/符号
词嵌入Word Embedding将词转换为向量表示 E ∈ R V × d E \in \mathbb{R}^{V \times d} ERV×d
位置编码Positional Encoding为token添加位置信息 P E p o s , 2 i = sin ⁡ ( p o s / 1000 0 2 i / d ) PE_{pos,2i} = \sin(pos/10000^{2i/d}) PEpos,2i=sin(pos/100002i/d)
自注意力Self-Attention序列与自身的注意力计算 A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k}})V Attention(Q,K,V)=softmax(dk QKT)V
多头注意力Multi-Head Attention并行的多个注意力头 M u l t i H e a d = C o n c a t ( h e a d 1 , . . . , h e a d h ) W O MultiHead = Concat(head_1,...,head_h)W^O MultiHead=Concat(head1,...,headh)WO
查询Query (Q)注意力机制的查询向量 Q = X W Q Q = XW^Q Q=XWQ
Key (K)注意力机制的键向量 K = X W K K = XW^K K=XWK
Value (V)注意力机制的值向量 V = X W V V = XW^V V=XWV
前馈网络Feed-Forward Network全连接的神经网络层 F F N ( x ) = R e L U ( x W 1 + b 1 ) W 2 + b 2 FFN(x) = ReLU(xW_1+b_1)W_2+b_2 FFN(x)=ReLU(xW1+b1)W2+b2
残差连接Residual Connection跨层的直接连接 O u t p u t = I n p u t + S u b L a y e r ( I n p u t ) Output = Input + SubLayer(Input) Output=Input+SubLayer(Input)
层归一化Layer Normalization归一化技术 L N ( x ) = γ x − μ σ + β LN(x) = \gamma\frac{x-\mu}{\sigma}+\beta LN(x)=γσxμ+β
编码器Encoder理解输入的组件多层self-attention + FFN
解码器Decoder生成输出的组件多层masked self-attention + cross-attention + FFN
因果掩码Causal Masking防止看到未来信息的掩码下三角矩阵
交叉注意力Cross Attention不同序列间的注意力Q来自目标,K/V来自源
SoftmaxSoftmax函数归一化为概率分布 s o f t m a x ( x i ) = e x i ∑ j e x j softmax(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}} softmax(xi)=jexjexi
嵌入维度Model Dimension模型的隐藏层维度通常512或768
注意力头数Number of Heads多头注意力的头数通常8或16
束搜索Beam Search保留多个候选的搜索策略beam_size控制候选数
温度参数Temperature控制输出随机性的参数T<1更确定,T>1更随机
Top-k采样Top-k Sampling在前k个最可能的词中采样k通常为40-50
Top-p采样Nucleus Sampling累积概率达到p的采样p通常为0.9-0.95
预训练Pre-training在大规模数据上训练MLM, CLM等任务
微调Fine-tuning在特定任务上调整使用小学习率
零样本学习Zero-shot Learning无示例的任务执行GPT系列能力
少样本学习Few-shot Learning少量示例的任务学习In-context learning
提示Prompt输入给模型的指令或示例“翻译成英文:”
TokenToken文本的最小单位可以是词、子词或字符
词汇表Vocabulary所有可能token的集合大小通常3万-10万

希望这篇文章成为你深入大模型世界的起点。无论你是研究者、工程师,还是对AI充满好奇的学习者,掌握Transformer都将为你打开通往智能未来的大门。

愿同学们在大模型相关工作的道路上,不断前行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值