大模型AI-入门-发展历程-Transformer
部分内容可能来自网络或者由AI生成。
如有雷同,纯属巧合,仅供学习参考之用。
Transformer 架构详解:从原理到多模态革命
Transformer 是深度学习领域最具影响力的架构之一,自 2017 年提出以来,不仅彻底改变了自然语言处理(NLP),还迅速扩展到计算机视觉(CV)、语音、多模态等广泛领域。GPT、BERT、ViT 等大模型均以 Transformer 为基石。本文系统解析其核心机制、优势及演进。
一、为什么需要 Transformer?—— Seq2Seq 任务的挑战
1. 什么是 Seq2Seq?
序列到序列(Sequence-to-Sequence, Seq2Seq) 是一类将输入序列映射为输出序列的任务,不要求等长:
-
机器翻译:
"Hello world"→"你好世界" -
文本摘要:长文章 → 简短摘要
-
语音识别:音频波形 → 文字
2. 经典 Seq2Seq 框架
由 编码器(Encoder) + 解码器(Decoder) 构成:
-
编码器:将输入序列压缩为上下文向量(Context Vector)
-
解码器:基于该向量自回归(Autoregressive) 生成输出序列
📌 自回归:每一步生成依赖于之前所有已生成内容 $ P(y) = P(y_1) \cdot P(y_2|y_1) \cdot P(y_3|y_1,y_2) \cdots $
二、RNN/LSTM 的困境
在 Transformer 之前,Seq2Seq 主要依赖 RNN 及其变体(LSTM/GRU),但存在三大瓶颈:
| 问题 | 原因 | 后果 |
|---|---|---|
| 梯度消失/爆炸 | 反向传播中链式求导导致梯度指数衰减或激增 | 无法有效训练长序列 |
| 长距离依赖丢失 | 早期信息在长序列中被“遗忘” | 如句子开头“北京”在结尾处无法被关联 |
| 串行计算 | 每个时间步必须等待前一步完成 | 无法并行化,训练慢,GPU 利用率低 |
💡 LSTM/GRU 虽缓解梯度问题,但仍无法解决串行计算与长程建模瓶颈。
三、Transformer 的核心创新
1. 整体架构:Encoder-Decoder 框架
Input Sequence → [Encoder] → Context Representation → [Decoder] → Output Sequence
-
Encoder:6 层堆叠(原始论文),每层含 多头自注意力 + 前馈网络
-
Decoder:6 层堆叠,每层含 掩码自注意力 + 跨注意力 + 前馈网络
✅ 关键突破:完全摒弃循环结构,实现全并行计算
2. 位置编码(Positional Encoding)
问题:自注意力对输入顺序不敏感("猫追狗" 与 "狗追猫" 会被视为相同)
解决方案:将位置信息注入词嵌入(Word Embedding)
-
公式(正弦/余弦函数):
PE_(pos,2i)=sin(pos100002i/d),PE_(pos,2i+1)=cos(pos100002i/d)PE\_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d}}\right), \quad PE\_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d}}\right)PE_(pos,2i)=sin(100002i/dpos),PE_(pos,2i+1)=cos(100002i/dpos)
-
特点:
-
每个位置有唯一编码
-
支持任意长度序列(相对位置可推断)
-
与词嵌入相加后输入网络
-
🧠 效果:模型既能理解词义,又能感知词序。
3. 自注意力机制(Self-Attention)
核心思想
让序列中每个 token 能“关注”其他所有 token,动态加权聚合信息。
QKV 机制(Query-Key-Value)
对每个输入 token $ x_i $,通过线性变换生成三组向量:
-
Query (Q):当前 token 的“查询”向量(“我想知道什么?”)
-
Key (K):其他 token 的“标签”向量(“我能提供什么信息?”)
-
Value (V):其他 token 的“内容”向量(“实际语义是什么?”)
计算步骤:
-
计算注意力分数:$ \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V $
-
分数表示 token 间相关性(如“它” → “猫”)
-
加权求和得到上下文感知表示
🔍 示例: 在句子
"The animal didn't cross the street because it was too tired."中, “it” 的注意力会高亮 “animal”,而非 “street”。
4. 多头注意力(Multi-Head Attention)
动机:单一注意力头可能只捕获一种关系(如语法),而语言包含多种模式(语义、指代、情感等)
实现:
-
将 Q、K、V 投影到 h 个子空间(如 h=8)
-
每个头独立计算注意力:$ \text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) $
-
拼接所有头输出:$ \text{MultiHead} = \text{Concat}(\text{head}_1, …, \text{head}_h) W^O $
优势:
-
✅ 捕获多样化语义关系
-
✅ 并行计算,提升效率
-
✅ 增强模型鲁棒性
5. 解码器中的特殊机制
| 机制 | 作用 | 实现 |
|---|---|---|
| 掩码自注意力(Masked Self-Attention) | 防止解码器“偷看”未来 token | 在 softmax 前将未来位置设为 -∞ |
| 跨注意力(Cross-Attention) | 让解码器关注编码器输出 | Q 来自解码器,K/V 来自编码器 |
🛑 掩码示例: 生成第 3 个词时,只能看到
[y1, y2, -∞, -∞, ...]
四、Transformer 的核心优势
| 维度 | RNN/LSTM | Transformer |
|---|---|---|
| 并行性 | ❌ 串行计算 | ✅ 全序列并行 |
| 长程依赖 | ⚠️ 有限记忆 | ✅ 全局直接连接 |
| 特征表示 | 单一隐藏状态 | ✅ 多头注意力 → 多视角建模 |
| 训练速度 | 慢(GPU 利用率低) | 快(大规模并行) |
| 可扩展性 | 难以扩展到超长序列 | 支持长上下文(如 32K tokens) |
🚀 结果:训练更快、性能更强、更易扩展 → 成为大模型基础。
五、主流 Transformer 变体与应用
1. 架构分类
| 类型 | 结构 | 代表模型 | 应用场景 |
|---|---|---|---|
| Encoder-Only | 仅编码器 | BERT, RoBERTa | 文本分类、问答、NER |
| Decoder-Only | 仅解码器 | GPT, Llama, DeepSeek | 文本生成、对话、代码 |
| Encoder-Decoder | 完整结构 | T5, BART, Transformer | 机器翻译、摘要、复述 |
2. 跨模态扩展
| 领域 | 模型 | 创新 |
|---|---|---|
| 计算机视觉 | Vision Transformer (ViT) | 将图像分块为序列,直接套用 Transformer |
| 多模态 | CLIP, Flamingo, LLaVA | 联合编码图像+文本,实现图文理解与生成 |
| 语音 | Whisper, Wav2Vec 2.0 | 将音频转为 token 序列,用 Transformer 建模 |
🌐 ViT 的意义:证明 CNN 并非视觉任务必需,Transformer 可统一多模态。
六、典型模型对比
| 模型 | 架构 | 预训练目标 | 特点 |
|---|---|---|---|
| BERT | Encoder-Only | 掩码语言建模(MLM) + 下一句预测 | 双向上下文,适合理解任务 |
| GPT | Decoder-Only | 自回归语言建模 | 单向生成,适合创作与对话 |
| T5 | Encoder-Decoder | 文本到文本(所有任务统一为 Seq2Seq) | 通用性强,支持多任务 |
| ViT | Encoder-Only | 图像分类(ImageNet) | 无卷积,纯 Transformer 处理图像 |
💡 选择建议:
七、总结:Transformer 为何如此全能?
-
通用序列建模范式:任何可序列化的数据(文本、图像块、音频帧)均可处理
-
全局依赖建模:自注意力打破局部限制,捕捉任意距离关系
-
高度并行化:充分利用现代硬件(GPU/TPU),支持大规模训练
-
可扩展性强:通过增加层数、头数、维度,轻松构建大模型
-
统一架构:一套框架通吃 NLP、CV、语音、多模态
更多推荐


所有评论(0)