目 录
引言 1
一、大模型技术的发展历史 1
1. 基于规则和统计学习的早期阶段 1
2. 神经网络与深度学习的崛起 2
3. Transformer的诞生与自注意力机制的崛起 2
4. 预训练模型的兴起:BERT、GPT和T5 2
5. 超大规模模型与多模态应用 3
二、开发环境配置基础 3
1. 硬件配置要求 3
2. 软件依赖与环境搭建 4
3. 常见问题与解决方案 5
第 1 章 Transformer模型基础 6
1.1 Seq2Seq模型 6
1.1.1 编码器-解码器工作原理 7
1.1.2 Seq2Seq结构实现 7
1.2 分词与嵌入层 11
1.2.1 分词器:将文本转换为嵌入向量 11
1.2.2 PyTorch实现嵌入层(将分词后的结果输入模型) 11
1.3 自注意力与多头注意力机制 15
1.3.1 自注意力机制计算过程(QKV矩阵生成和点积运算) 15
1.3.2 多头注意力机制与Transformer 18
1.4 残差连接与层归一化 22
1.4.1 残差连接层的实现 22
1.4.2 层归一化与训练稳定性 25
1.5 位置编码器 28
1.5.1 位置编码的计算与实现 28
1.5.2 位置编码在无序文本数据中的作用 30
1.6 本章小结 35
1.7 思考题 35
第 2 章 GPT模型文本生成核心原理与实现 37
2.1 GPT-2核心模块 37
2.1.1 层堆叠 37
2.1.2 GPT-2中的注意力机制 41
2.2 GPT模型的文本生成过程 44
2.2.1 详解GPT-2文本生成过程 44
2.2.2 Greedy Search和Beam Search算法的实现与对比 47
2.3 模型效果评估与调优 51
2.3.1 模型常见评估方法 51
2.3.2 基于困惑度的评估过程 56
2.4 本章小结 60
2.5 思考题 60
第 3 章 BERT模型核心实现与预训练 62
3.1 BERT模型的核心实现 62
3.1.1 编码器堆叠 62
3.1.2 BERT的自注意力机制与掩码任务 67
3.2 预训练任务:掩码语言模型(MLM) 71
3.2.1 MLM任务实现过程 71
3.2.2 如何对输入数据进行随机遮掩并预测 72
3.3 BERT模型的微调与分类任务应用 77
3.4 本章小结 81
3.5 思考题 81
第 4 章 ViT模型 83
4.1 图像分块与嵌入 83
4.2 ViT模型的核心架构实现 89
4.2.1 ViT模型的基础结构 89
4.2.2 自注意力和多头注意力在图像处理中的应用 91
4.3 训练与评估ViT模型 96
4.4 ViT模型与注意力严格量化分析 100
4.5 本章小结 105
4.6 思考题 105
第 5 章 高阶微调策略:Adapter Tuning与P-Tuning 107
5.1 Adapter Tuning的实现 107
5.2 LoRA Tuning实现 111
5.3 Prompt Tuning与P-Tuning的应用 114
5.3.1 Prompt Tuning 114
5.3.2 P-Tuning 117
5.3.3 Prompt Tuning和P-Tuning组合微调 120
5.3.4 长文本情感分类模型的微调与验证 122
5.4 本章小结 125
5.5 思考题 125
第 6 章 数据处理与数据增强 127
6.1 数据预处理与清洗 127
6.1.1 文本数据预处理 127
6.1.2 文本数据清洗 130
6.2 文本数据增强 133
6.2.1 同义词替换 133
6.2.2 随机插入 135
6.2.3 其他类型的文本数据增强方法 137
6.3 分词与嵌入层的应用 139
6.3.1 深度理解分词技术 140
6.3.2 嵌入向量的生成与优化 142
6.3.3 文本预处理与数据增强综合案例 144
6.4 本章小结 146
6.5 思考题 147
第 7 章 模型性能优化:混合精度训练与分布式训练 148
7.1 混合精度训练的实现 148
7.2 多GPU并行与分布式训练的实现 150
7.2.1 分布式训练流程与常规配置方案 150
7.2.2 Data Parallel方案 152
7.2.3 Model Parallel方案 154
7.3 梯度累积的实现 157
7.3.1 梯度累积初步实现 157
7.3.2 小批量训练中的梯度累积 159
7.3.3 梯度累积处理文本分类任务 161
7.4 本章小结 164
7.5 思考题 165
第 8 章 对比学习与对抗训练 166
8.1 对比学习 166
8.1.1 构建正负样本对及损失函数 166
8.1.2 SimCLR的实现与初步应用 171
8.2 基于对比学习的预训练与微调 174
8.2.1 通过对比学习进行自监督预训练 175
8.2.2 对比学习在分类、聚类等任务中的表现 180
8.3 生成式对抗网络的实现与优化 183
8.4 对抗训练在大模型中的应用 188
8.5 本章小结 192
8.6 思考题 192
第 9 章 自适应优化器与动态学习率调度 194
9.1 AdamW优化器与LAMB优化器的实现 194
9.1.1 AdamW优化器 194
9.1.2 LAMB优化器 197
9.2 基于梯度累积的优化技巧 200
9.2.1 大批量内存受限环境 200
9.2.2 梯度累积的应用场景和参数调整对训练效果的影响 203
9.3 动态学习率调度 205
9.3.1 线性衰减 205
9.3.2 余弦退火 207
9.4 Warmup与循环学习率调度 209
9.4.1 Warmup策略实现 209
9.4.2 循环学习率调度 211
9.4.3 其他几种常见的动态学习调度器 214
9.5 本章小结 217
9.6 思考题 218
第 10 章 模型蒸馏与剪枝 219
10.1 知识蒸馏:教师-学生模型 219
10.1.1 知识蒸馏核心过程 219
10.1.2 教师-学生模型 221
10.1.3 蒸馏损失 224
10.2 知识蒸馏在文本模型中的应用 226
10.2.1 知识蒸馏在文本分类模型中的应用 226
10.2.2 模型蒸馏效率分析 229
10.2.3 文本情感分析任务中的知识蒸馏效率对比 231
10.3 模型剪枝技术 234
10.3.1 权重剪枝 234
10.3.2 结构化剪枝 237
10.3.3 在嵌入式设备上部署手写数字识别模型 240
10.3.4 BERT模型的多头注意力剪枝 243
10.4 本章小结 247
10.5 思考题 248
第 11 章 模型训练实战 249
11.1 数据预处理与Tokenization细节 249
11.1.1 大规模文本数据清洗 249
11.1.2 常用分词器的使用 252
11.2 大规模预训练模型的设置与启动 255
11.3 预训练过程中的监控与中间结果保存 258
11.4 训练中断与恢复机制 262
11.5 综合案例:IMDB文本分类训练全流程 265
11.5.1 数据预处理与Tokenization 265
11.5.2 多GPU与分布式训练设置 266
11.5.3 训练过程中的监控与中间结果保存 266
11.5.4 训练中断与恢复 267
11.5.5 测试模型性能 268
11.6 本章小结 269
11.7 思考题 270
第 12 章 模型微调实战 271
12.1 微调数据集的选择与准备 271
12.1.1 数据集准备与清洗 271
12.1.2 数据集分割 272
12.1.3 数据增强 272
12.2 层级冻结与部分解冻策略 274
12.3 模型参数调整与优化技巧 276
12.4 微调后的模型评估与推理优化 278
12.5 综合微调应用案例 280
12.6 本章小结 283
12.7 思考题 283