Transformer 架构详解与大模型应用实战指南
Transformer 模型介绍
Transformer 是工业化、同质化的后深度学习模型,其设计目标是能够在高性能计算机(超级计算机)上以并行方式进行计算。通过同质化,一个 Transformer 模型可以执行各种任务,而不需要微调。Transformer 使用数十亿参数在数十亿条原始未标注数据上进行自监督学习。
这些后深度学习架构称为基础模型。基础模型 Transformer 是始于 2015 年的第四次工业革命的一部分(通过机器 - 机器自动化将万物互联)。工业 4.0 (I4.0) 的 AI,特别是自然语言处理 (NLP) 已经远远超越了过往时代,颠覆了以往的开发范式。
Transformer 架构具有革命性和颠覆性,它打破了过往 RNN 和 CNN 的主导地位。BERT 和 GPT 模型放弃了循环网络层,使用自注意力机制取而代之。Transformer 模型优于 RNN 和 CNN,这是 AI 历史上划时代的重大变化,Transformer 模型标示着 AI 新时代的开始。
推荐书籍:《基于 GPT-3、ChatGPT、GPT-4 等 Transformer 架构的自然语言处理》
出版信息
- 出版社:清华大学出版社
- 出版时间:2024 年 1 月
内容简介
Transformer 正在颠覆 AI 领域。市面上有众多平台和 Transformer 模型,哪些最符合你的需求?本书将引领你进入 Transformer 的世界,讲述不同模型和平台的优势,指出如何消除模型的缺点和问题。
本书分步展示如何微调 GPT-3 等预训练模型。研究机器翻译、语音转文本、文本转语音、问答等 NLP 任务,并介绍解决 NLP 难题的技术,甚至帮助你应对假新闻焦虑。
从书中可了解到,诸如 OpenAI 的高级平台将 Transformer 扩展到语言领域、计算机视觉领域,并允许使用 DALL-E 2、ChatGPT 和 GPT-4 生成代码。通过本书,你将了解到 Transformer 的工作原理以及如何实施 Transformer 来解决 NLP 问题。
主要内容概览
- 了解用于解决复杂语言问题的新技术。
- 将 GPT-3 与 T5、GPT-2 和基于 BERT 的 Transformer 的结果进行对比。
- 使用 TensorFlow、PyTorch 和 GPT-3 执行情感分析、文本摘要、非正式语言分析、机器翻译等任务。
- 了解 ViT 和 CLIP 如何标注图像(包括模糊化),并使用 DALL-E 从文本生成图像。
- 学习 ChatGPT 和 GPT-4 的高级提示工程机制。
详细目录结构
第 1 章 Transformer 模型介绍
1.1 Transformer 的生态系统
1.1.1 工业 4.0
1.1.2 基础模型
1.2 使用 Transformer 优化 NLP 模型
1.3 我们应该使用哪些资源
1.3.1 Transformer 4.0 无缝 API 的崛起
1.3.2 选择即用型 API 驱动库
1.3.3 选择 Transformer 模型
1.3.4 工业 4.0 AI 专家的技能要求
1.4 本章小结
1.5 练习题
第 2 章 Transformer 模型架构入门
2.1 Transformer 的崛起:注意力就是一切
2.1.1 编码器堆叠
2.1.2 解码器堆叠
2.2 训练和性能
2.3 Hugging Face 的 Transformer 模型
2.4 本章小结
2.5 练习题
第 3 章 微调 BERT 模型
3.1 BERT 的架构
3.2 微调 BERT
3.2.1 选择硬件
3.2.2 安装使用 BERT 模型必需的 Hugging Face PyTorch 接口
3.2.3 导入模块
3.2.4 指定 Torch 使用 CUDA
3.2.5 加载数据集
3.2.6 创建句子、标注列表以及添加 [CLS] 和 [SEP] 词元
3.2.7 激活 BERT 词元分析器
3.2.8 处理数据
3.2.9 防止模型对填充词元进行注意力计算
3.2.10 将数据拆分为训练集和验证集
3.2.11 将所有数据转换为 torch 张量
3.2.12 选择批量大小并创建迭代器
3.2.13 BERT 模型配置
3.2.14 加载 Hugging Face BERT uncased base 模型
3.2.15 优化器分组参数
3.2.16 训练循环的超参数
3.2.17 训练循环
3.2.18 对训练进行评估
3.2.19 使用测试数据集进行预测和评估
3.2.20 使用马修斯相关系数进行评估
3.2.21 各批量的分数
3.2.22 整个数据集的马修斯评估
3.3 本章小结
3.4 练习题
第 4 章 从头开始预训练 RoBERTa 模型
4.1 训练词元分析器和预训练 Transformer
4.2 从头开始构建 Kantai BERT
4.2.1 步骤 1:加载数据集
4.2.2 步骤 2:安装 HuggingFace transformers 库
4.2.3 步骤 3:训练词元分析器
4.2.4 步骤 4:将词元化结果保存到磁盘上
4.2.5 步骤 5:加载预训练词元分析器文件
4.2.6 步骤 6:检查训练用机器的配置:GPU 和 CUDA
4.2.7 步骤 7:定义模型的配置
4.2.8 步骤 8:为 Transformer 模型加载词元分析器
4.2.9 步骤 9:从头开始初始化模型
4.2.10 步骤 10:构建数据集
4.2.11 步骤 11:定义数据整理器
4.2.12 步骤 12:初始化训练器
4.2.13 步骤 13:预训练模型
4.2.14 步骤 14:将最终模型 (+ 词元分析器 + 配置) 保存到磁盘
4.2.15 步骤 15:使用 FillMask-Pipeline 进行语言建模
4.3 后续步骤
4.4 本章小结
4.5 练习题
第 5 章 使用 Transformer 处理下游 NLP 任务
5.1 Transformer 的转导与感知
5.1.1 人类智能栈
5.1.2 机器智能栈
5.2 Transformer 性能与人类基准
5.2.1 评估模型性能的度量指标
5.2.2 基准任务和数据集
5.2.3 定义 SuperGLUE 基准任务
5.3 执行下游任务
5.3.1 语言学可接受性语料库 (CoLA)
5.3.2 斯坦福情绪树库 (SST-2)
5.3.3 Microsoft 研究释义语料库 (MRPC)
5.3.4 Winograd 模式
5.4 本章小结
5.5 练习题
第 6 章 机器翻译
6.1 什么是机器翻译
6.1.1 人类转导和翻译
6.1.2 机器转导和翻译
6.2 对 WMT 数据集进行预处理
6.2.1 对原始数据进行预处理
6.2.2 完成剩余的预处理工作
6.3 用 BLEU 评估机器翻译
6.3.1 几何评估
6.3.2 平滑技术
6.4 Google 翻译
6.5 使用 Trax 进行翻译
6.5.1 安装 Trax
6.5.2 创建原始 Transformer 模型
6.5.3 使用预训练权重初始化模型
6.5.4 对句子词元化
6.5.5 从 Transformer 解码
6.5.6 对翻译结果去词元化并展示
6.6 本章小结
6.7 练习题
第 7 章 GPT-3
7.1 具有 GPT-3 Transformer 模型的超人类 NLP
7.2 OpenAI GPT Transformer 模型的架构
7.2.1 10 亿参数 Transformer 模型的兴起
7.2.2 Transformer 模型扩大的历史
7.2.3 从微调到零样本
7.2.4 解码器堆叠
7.2.5 GPT 引擎
7.3 使用 GPT-2 进行文本补全
7.4 训练自定义 GPT-2 语言模型
7.5 使用 OpenAI GPT-3
7.5.1 在线运行 NLP 任务
7.5.2 GPT-3 引擎入门
7.6 比较 GPT-2 和 GPT-3 的输出
7.7 微调 GPT-3
7.7.1 准备数据
7.7.2 微调 GPT-3
7.8 工业 4.0 AI 专家所需的技能
7.9 本章小结
7.10 练习题
第 8 章 文本摘要 (以法律和财务文档为例)
8.1 文本到文本模型
8.1.1 文本到文本 Transformer 模型的兴起
8.1.2 使用前缀而不是任务格式
8.1.3 T5 模型
8.2 使用 T5 进行文本摘要
8.2.1 Hugging Face
8.2.2 初始化 T5-large 模型
8.2.3 使用 T5-large 进行文本摘要
8.3 使用 GPT-3 进行文本摘要
8.4 本章小结
8.5 练习题
第 9 章 数据集预处理和词元分析器
9.1 对数据集进行预处理和词元分析器
9.1.1 最佳实践
9.1.2 Word2Vec 词元化
9.2 深入探讨场景 4 和场景 5
9.2.1 使用 GPT-2 生成无条件样本
9.2.2 生成条件样本
9.2.3 控制词元化数据
9.3 GPT-3 的 NLU 能力
9.4 本章小结
9.5 练习题
第 10 章 基于 BERT 的语义角色标注
10.1 SRL 入门
10.1.1 语义角色标注的定义
10.1.2 使用基于 BERT 的预训练模型进行 SRL
10.2 基于 BERT 模型的 SRL 实验
10.3 基本示例
10.3.1 示例 1
10.3.2 示例 2
10.3.3 示例 3
10.4 复杂示例
10.4.1 示例 4
10.4.2 示例 5
10.4.3 示例 6
10.5 SRL 的能力范围
10.5.1 谓语分析的局限性
10.5.2 SRL 局限性的根本原因
10.6 本章小结
10.7 练习题
第 11 章 使用 Transformer 进行问答
11.1 方法论
11.2 方法 0:试错法
11.3 方法 1:NER
11.4 方法 2:SRL
11.4.1 使用 ELECTRA 进行问答
11.4.2 项目管理约束
11.4.3 通过 SRL 查找问题
11.5 后续步骤
11.5.1 使用 RoBERTa 模型探索 Haystack
11.5.2 使用 GTP-3 引擎探索问答
11.6 本章小结
11.7 练习题
第 12 章 情绪分析
12.1 入门:使用 Transformer 进行情绪分析
12.2 斯坦福情绪树库 (SST)
12.3 通过情绪分析预测客户行为
12.3.1 使用 DistilBERT 进行情绪分析
12.3.2 使用 Hugging Face 的其他模型进行情绪分析
12.4 使用 GPT-3 进行情绪分析
12.5 工业 4.0 依然需要人类
12.5.1 使用 SRL 进行调查
12.5.2 使用 Hugging Face 进行调查
12.5.3 使用 GPT-3 playground 进行调查
12.6 本章小结
12.7 练习题
第 13 章 使用 Transformer 分析假新闻
13.1 对假新闻的情绪反应
13.2 理性处理假新闻的方法
13.2.1 定义假新闻解决路线图
13.2.2 枪支管控辩论
13.2.3 美国前总统特朗普的推文
13.3 在我们继续之前
13.4 本章小结
13.5 练习题
第 14 章 可解释 AI
14.1 使用 BertViz 可视化 Transformer
14.2 LIT
14.2.1 PCA
14.2.2 运行 LIT
14.3 使用字典学习可视化 Transformer
14.3.1 Transformer 因子
14.3.2 LIME
14.3.3 可视化界面
14.4 探索我们无法访问的模型
14.5 本章小结
14.6 练习题
第 15 章 从 NLP 到计算机视觉
15.1 选择模型和生态系统
15.2 Reformer
15.3 DeBERTa
15.4 Transformer 视觉模型
15.4.1 ViT – Vision Transformer
15.4.2 CLIP
15.4.3 DALL-E
15.5 不断扩大的模型宇宙
15.6 本章小结
15.7 练习题
第 16 章 AI 助理
16.1 提示工程
16.1.1 具有有意义上下文的非正式英语
16.1.2 转喻和多义
16.1.3 省略
16.1.4 模糊上下文
16.1.5 引入传感器
16.1.6 有传感器但没有可见上下文
16.1.7 没有上下文的正式英语会话
16.1.8 提示工程训练
16.2 Copilot
16.3 可以执行领域特定任务的 GPT-3 引擎
16.3.1 为 ML 算法提供嵌入
16.3.2 生成一系列操作指示
16.3.3 内容过滤器
16.4 基于 Transformer 的推荐系统
16.4.1 通用序列
16.4.2 使用 MDP 和 RL 生成的数据集模拟消费者行为
16.5 计算机视觉
16.6 数字人和元宇宙
16.7 本章小结
16.8 练习题
第 17 章 ChatGPT 和 GPT-4
17.1 超越人类 NLP 水平的 Transformer 模型:ChatGPT 和 GPT-4
17.1.1 如何充分理解本章
17.1.2 谁拥有 AI 生成内容的版权
17.2 ChatGPT API
17.3 使用 ChatGPT Plus 编写程序并添加注释
17.3.1 设计提示
17.3.2 使用 ChatGPT Plus 编写代码
17.3.3 ChatGPT Plus 绘制输出结果
17.4 GPT-4 API
17.4.1 示例 1:使用 GPT-4 帮助解释如何编写代码
17.4.2 示例 2:GPT-4 创建一个函数来展示 Greg Brockman 于 2023 年 3 月 14 日的 GPT-4 的 YouTube 演示
17.4.3 示例 3:GPT-4 创建一个用于展示 WikiArt 图像的应用程序
17.4.4 示例 4:GPT-4 创建一个用于展示 IMDb 评论的应用程序
17.4.5 示例 5:GPT-4 创建一个用于展示新闻源的应用程序
17.4.6 示例 6:GPT-4 创建一个 k-means 聚类 (kmc) 算法
17.4.7 示例 7:GPT-4 关于 GPT-4 和 GPT 模型架构的对话
17.5 高级示例
17.5.1 步骤 1:为 ChatGPT 和 GPT-4 构建知识库
17.5.2 步骤 2:添加关键词和解析用户请求
17.5.3 步骤 3:构建引导 ChatGPT 的提示
17.5.4 步骤 4:内容审核和质量控制
17.6 可解释 AI(XAI) 和 Whisper 语音模型
17.7 使用 DALL-E 2 API 入门
17.7.1 创建新图像
17.7.2 创建图像的变体
17.8 将所有内容整合在一起
17.9 本章小结
17.10 练习题
附录与参考资料
- 附录 A Transformer 模型术语
- 附录 B Transformer 模型的硬件约束
- 附录 C 使用 GPT-2 进行文本补全
- 附录 D 使用自定义数据集训练 GPT-2 模型
- 附录 E 练习题答案
- 参考资料
学习价值总结
本书旨在为读者提供在这个颠覆性的 AI 时代中,有效开发语言理解关键方面所需的 Python 深度学习知识和工具,呈现成为工业 4.0 AI 专家所需要的新技能。每一章都会使用 Python、PyTorch 和 TensorFlow 从头开始讲授语言理解的关键方面。整本书将使用 Python、PyTorch 和 TensorFlow 进行实战。
你将首先学习 AI 语言理解神经网络模型的要素,然后学习如何探索和实现 Transformer。通过掌握大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),能够利用大模型解决相关实际项目需求。学会 Fine-tuning 垂直训练大模型(数据准备、数据蒸馏、大模型部署),一站式掌握大模型理论、GPU 算力、硬件及 LangChain 开发框架和项目实战技能。
掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求。大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。