Datawhale Fun-transformer task01 引言 笔记
一、Intro## 1. Seq2Seq模型### 1.1 基本概念- **定义**:处理可变长度输入输出序列的模型- **核心标记**:- `<bos>`:序列开始符- `<eos>`:序列结束符- **处理优势**:- 减少对填充的依赖- 动态识别序列边界### 1.2 发展背景- **前身局限**:- 固定长度输入输出- 依赖填充(padding)处理- 掩码机制引入计算复杂度- **突破方
原文链接:Datawhale-学用 AI,从此开始
# 一、Intro
## 1. Seq2Seq模型
### 1.1 基本概念
- **定义**:处理可变长度输入输出序列的模型
- **核心标记**:
- `<bos>`:序列开始符
- `<eos>`:序列结束符
- **处理优势**:
- 减少对填充的依赖
- 动态识别序列边界
### 1.2 发展背景
- **前身局限**:
- 固定长度输入输出
- 依赖填充(padding)处理
- 掩码机制引入计算复杂度
- **突破方向**:
- 机器翻译
- 语音识别
- 对话系统
### 1.3 模型评价
#### 优势:
✅ 端到端学习
✅ 处理变长序列
✅ 信息压缩表示
✅ 架构可扩展性
#### 劣势:
❌ 上下文向量信息压缩
❌ RNN短期记忆限制
❌ 暴露偏差(Exposure Bias)
此处特别理解了暴露偏差的含义如下:
暴露偏差(Exposure Bias)是序列生成模型(如Seq2Seq)中的一种训练与推理不一致问题,具体可通过以下类比和分步解释理解:
---
### 核心问题:**训练与推理的输入差异**
#### 1. **训练阶段(Teacher Forcing策略)**
- **操作方式**:每个时间步的解码器输入都是**真实的标签数据**(正确答案)。
- **示例**:
假设要生成句子 "I love cats"。
解码器在生成第2个词时,输入是真实的前一个词 "I",而不是模型预测的词。- **优点**:
✅ 训练稳定,避免错误累积
✅ 收敛速度快#### 2. **推理阶段(自回归生成)**
- **操作方式**:每个时间步的输入是**模型自己生成的词**。
- **示例**:
如果模型错误生成第1个词为 "He",后续输入将基于错误的 "He" 继续生成。- **问题**:
❌ 模型从未在训练中见过自己生成的错误输入
❌ 错误会像多米诺骨牌一样逐级传播---
### 暴露偏差的本质
**如同“开卷考试 vs 闭卷考试”的差异**:
- 学生(模型)在平时练习(训练)时,老师总在耳边提示正确答案(Teacher Forcing),但考试(推理)时却要独立作答。一旦首次答错,后续可能全盘皆错。---
### 数学视角的解释
设解码器在第 \( t \) 步生成词的概率为:
\[ P(y_t | y_{1:t-1}, C) \]
- **训练时**:使用真实序列 \( y_{1:t-1}^* \)
- **推理时**:使用预测序列 \( \hat{y}_{1:t-1} \)当 \( \hat{y}_{1:t-1} \neq y_{1:t-1}^* \) 时,模型在训练阶段从未学习过如何基于错误前缀生成后续内容。
---
### 实际影响案例
**机器翻译任务**:
- 训练时:解码器始终接收正确的前缀(如 "Je suis étudiant")
- 推理时:若首词误译为 "I am",后续可能生成 "I am a student"(正确),但也可能因错误累积生成 "I am a banana"(荒谬结果)。---
### 解决方案
1. **计划采样(Scheduled Sampling)**
- 逐步混合使用真实标签与模型预测作为输入
- 例如:训练初期100%用真实数据,后期逐渐增加使用模型预测的比例2. **强化学习(Reinforcement Learning)**
- 直接优化生成序列的整体质量(如BLEU得分)
- 使用策略梯度方法(如REINFORCE算法)3. **波束搜索(Beam Search)**
- 推理时保留多个候选序列,减少单一路径错误的影响4. **课程学习(Curriculum Learning)**
- 从简单样本开始训练,逐步增加难度
> **小故事类比**:
> 优势:像能自动压缩百科全书的智能翻译笔
> 劣势:如同用记忆卡片记长篇小说会丢失细节
## 2. Encoder-Decoder架构
### 2.1 概念区分
| 概念 | 特点 | 关系 |
|------|------|------|
| Seq2Seq | 强调输入输出形式 | 应用场景 |
| Encoder-Decoder | 强调实现方法 | 具体实现 |
### 2.2 工作流程
#### 编码器阶段:
1. 词嵌入转换(Word Embedding)
2. 序列处理(RNN/LSTM/GRU)
3. 生成上下文向量
#### 解码器阶段:
1. 参数初始化(Xavier/He)
2. 输入要素:
- 上下文向量
- `<bos>`起始符
- 前步输出
3. 自回归生成
> **训练类比**:
> 教师指导学生复述故事:
> 1. 数据准备 → 翻译故事书
> 2. 参数初始化 → 学生大脑初始化
> 3. 编码处理 → 教师讲解故事
> 4. 解码训练 → 学生复述练习
### 2.3 应用场景
```mermaid
graph LR
A[文本类] --> B(机器翻译)
A --> C(对话系统)
A --> D(文本摘要)
E[跨模态] --> F(语音识别)
E --> G(图像描述)
2.4 核心缺陷
-
信息瓶颈:固定长度上下文向量
-
类比:高分辨率图片强制压缩导致模糊
3. 注意力机制
3.1 发展历程
| 时间线 | 里程碑 | 突破点 |
|---|---|---|
| 2014 | Seq2Seq | 编解码框架 |
| 2015 | Attention | 动态上下文 |
| 2017 | Transformer | 自注意力 |
| 2018 | BERT | 预训练范式 |
3.2 核心机制
改进方案:
-
动态上下文向量序列(C1,C2,C3...)
-
注意力权重计算三要素:
-
Query(当前解码状态)
-
Key(编码器隐藏状态)
-
Value(编码器输出)
-
类型矩阵:
| 维度 | 具体类型 |
|---|---|
| 计算区域 | Global/Local/Hard |
| 信息类型 | General/Self |
| 权值计算 | 点乘/矩阵/Cos |
3.3 核心优势
-
并行计算:突破RNN时序限制
-
长程依赖:直接捕捉远距离关联
-
可解释性:可视化注意力权重
视觉类比:
类似人类观看图片时聚焦主体(熊猫),自动忽略背景细节
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)