将 11 个目录下的 26 个子章节文件合并到对应的父文件中, 用 --- 分隔各子章节,移除冗余的章节目录索引。 每个篇章现在是独立的单文件,结构更简洁。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
11 KiB
第四篇:Transformer与大模型
本篇介绍革命性的Transformer架构和大语言模型,理解Self-Attention机制和LLM应用。
篇章导读
Transformer是AI领域最重要的架构创新之一。它不仅彻底改变了自然语言处理,还通过Attention机制启发了计算机视觉的范式变革。
本篇将从注意力机制出发,深入理解Transformer架构,并探讨大语言模型在设计领域的应用。
学习目标
理解Self-Attention的动机和原理
掌握Q、K、V的计算过程
了解Multi-Head Attention的优势
为什么需要Attention
序列标注问题
输入序列:``x₁, x₂, ..., xₙ (N``个元素``)
输出序列:``y₁, y₂, ..., yₙ' (N'``个元素``)
传统方法 (RNN/FCN): - 固定窗口大小 - 长距离依赖丢失 - 难以并行计算
Self-Attention: - 每个元素都能关注所有元素 - 直接建模任意距离依赖 - 可以并行计算
Self-Attention原理
核心思想
为每个输出元素,计算输入序列中所有元素的相关性:
对于每个位置``i``:
yᵢ = Σ (``注意力权重`` × ``对应输入值``)
Q、K、V计算
输入``X → ``三个线性变换
↓
Q (Query): "``我想找什么``"
K (Key): "``我有什么标签``"
V (Value): "``我的实际内容``"
注意力分数计算
1. ``计算相似度:``Score = Q × Kᵀ
2. ``缩放:``Score = Score / √dₖ
3. ``Softmax``:``Weight = ``softmax``(Score)
4. ``加权求和:``Output = Weight × V
直观理解
查询:``"``苹果``"
↓
与所有``Key``计算相似度
↓
权重高的``Key``对应``Value``贡献更大
↓
输出:融合上下文的``"``苹果``"``表示
Multi-Head Attention
单头 vs 多头
单头注意力:
一组``Q``、``K``、``V → ``一个注意力表示
多头注意力:
多组``Q``、``K``、``V → ``多个注意力表示`` → ``拼接
多头优势
头 关注内容
Head 1 语法关系
Head 2 语义指代
Head 3 长距离依赖
... ...
多头让模型从不同角度理解序列。
Positional Encoding
问题
Self-Attention本身是置换不变的:
Attention(``[A, B, C]) = Attention([B, A, C])
但序列位置很重要!
解决方案
添加位置信息:
输入`` = X + ``PositionalEncoding
常用方法: - 正弦/余弦位置编码 - 可学习位置编码
Self-Attention vs CNN
感受野对比
层级 CNN Self-Attention
单层 局部感受野 全局感受野
深层 逐层扩大 始终全局
计算复杂度
操作 CNN Self-Attention
复杂度 O(k²·C) O(n²·d)
n 图像尺寸 序列长度
k 卷积核大小 -
思考与练习
1.为什么Attention需要Scaling (除以√dₖ)?
2.Multi-Head Attention中,头数越多越好吗?
3.Self-Attention如何应用在图像上?
关键术语
中文 英文 说明
查询 Query 查询向量
键 Key 键向量
值 Value 值向量
缩放点积 Scaled Dot-Product 注意力计算方式
掩码 Mask 屏蔽某些位置的注意力
延伸阅读
The Illustrated Transformer # 03.2 Transformer架构
学习目标
理解Transformer的Encoder-Decoder结构
掌握各组件的作用和连接方式
了解Token处理流程
整体架构
输入``Token``序列`` → Encoder → ``编码表示
↓
输出``Token``序列`` ← Decoder ← ``编码表示
Encoder层
单层结构
输入``X
↓
Multi-Head Self-Attention
↓
Add & Norm (``残差连接`` + ``层归一化``)
↓
Feed-Forward Network (FFN)
↓
Add & Norm
↓
输出``H
残差连接
输出`` = F(x) + x
作用: - 缓解梯度消失 - 便于训练深层网络
层归一化
输出`` = ``LayerNorm``(x + F(x))
作用: - 稳定训练 - 加速收敛
FFN (前馈网络)
FFN(x) = ``ReLU``(``xW``₁ + b₁)W₂ + b₂
本质:两层全连接网络,非线性变换
Decoder层
结构
输入``X
↓
Masked Self-Attention (``只能看之前的位置``)
↓
Add & Norm
↓
Cross-Attention (Query``来自``Decoder, Key/Value``来自``Encoder)
↓
Add & Norm
↓
FFN
↓
Add & Norm
↓
输出`` (``接``Softmax``预测概率``)
Cross-Attention
Q: Decoder``的隐藏状态
K, V: Encoder``的输出
作用:让Decoder关注Encoder的相关部分
Token处理流程
输入处理
文本`` → Tokenize → Token IDs
↓
Embedding``层
↓
``位置编码相加
↓
Encoder/Decoder
输出处理
Decoder``输出`` → ``线性层`` → ``Softmax`` → ``概率分布
↓
``选择最大值
训练与推理
训练阶段
教师强制`` (Teacher Forcing)``:
``真实标签作为``Decoder``输入
``可以并行计算
推理阶段
自回归生成`` (Autoregressive)``:
``生成一个``Token → ``加入输入`` → ``生成下一个
``串行计算
Transformer变体
BERT (Encoder-only)
输入`` → Encoder → [CLS]``表示`` / ``每个``Token``表示
应用:分类、NER、问答
GPT (Decoder-only)
输入`` → Decoder → ``下一个``Token``预测
应用:文本生成
T5 (Encoder-Decoder)
输入`` → Encoder → ``表示`` → Decoder → ``输出
应用:翻译、摘要
思考与练习
-
为什么Decoder需要Masked Attention?
-
Encoder-only和Decoder-only模型各有什么优势?
-
Transformer如何处理超长序列?
关键术语
中文 英文 说明
残差连接 Residual Connection 跨层连接
层归一化 Layer Normalization 归一化层
教师强制 Teacher Forcing 训练时使用真实标签
自回归 Autoregressive 基于前序生成后续
编码器-解码器 Encoder-Decoder Seq2Seq架构
延伸阅读
-
Visualizing A Machine Learning Model # 03.3 大语言模型应用
学习目标
-
理解从Transformer到ChatGPT的演进
掌握RAG、RLHF等关键技术
了解Prompt工程在设计中的应用
从Transformer到ChatGPT
GPT系列演进
模型 发布时间 参数量 特点
GPT-1 2018 117M 验证Decoder-only可行性
GPT-2 2019 1.5B 展示零样本能力
GPT-3 2020 175B 少样本学习震撼业界
ChatGPT 2022 ~ 对话能力达到新高度
GPT-4 2023 ~ 多模态能力
训练范式
预训练`` (Pre-training)``:
``大规模文本`` → ``无监督学习`` → ``语言模型
微调`` (Fine-tuning)``:
``特定任务`` → ``有监督学习`` → ``任务模型
RAG:检索增强生成
核心思想
用户提问 → 检索相关文档 → LLM生成答案
↑
外部知识库
RAG架构
文档索引
文档`` → ``切分`` → Embedding → ``向量数据库
2. ``检索阶段
问题 → Embedding → 相似度搜索 → 相关文档
3. ``生成阶段
问题 + 相关文档 → LLM → 答案
RAG优势
特点 说明
减少幻觉 基于检索的事实
可更新 更新知识库即可
可解释 显示参考来源
RLHF:人类反馈强化学习
为什么需要RLHF
预训练模型可能: - 生成有害内容 - 不符合人类偏好 - 产生无意义输出
RLHF三阶段
有监督微调 (SFT)
人工标注对话`` → ``微调模型
2. ``奖励模型`` (RM)
多个输出 → 人类排序 → 训练奖励模型
3. ``强化学习`` (RL)
PPO算法 → 优化策略
效果
-
输出更符合人类偏好
减少有害内容
提高回答质量
Prompt工程
Prompt设计原则
明确任务
好:请总结以下文本的主要观点
差:看看这段文字
提供示例
任务:情感分类
示例:
"``这部电影太棒了!``" → ``正面
"``服务态度很差。``" → ``负面
现在分类:``"..."
指定格式
请按以下格式输出:
- ``观点``1``:``...
- ``观点``2``:``...
- ``结论:``...
设计领域应用
任务 Prompt示例
方案生成 "设计一个50人的办公空间,要求开放式布局"
代码生成 "写一个Python脚本计算建筑容积率"
文档撰写 "帮我写一份景观设计说明书的框架"
思考与练习
-
RAG和微调(Fine-tuning)各适用于什么场景?
-
如何评估LLM输出的质量?
-
Prompt工程在设计工作流中能解决什么问题?
关键术语
中文 英文 说明
检索增强生成 RAG Retrieval-Augmented Generation
人类反馈强化学习 RLHF Reinforcement Learning from Human Feedback
提示工程 Prompt Engineering 设计输入以引导模型输出
向量数据库 Vector Database 存储和检索向量表示