目 录
第Ⅰ篇 Transformer基础
第1章 Transformer简介 / 002
1.1 基础模型 / 003
1.2 Transformer简史 / 008
1.3 AI从业者的职能转型 / 012
1.3.1 AI从业者的前景 / 013
1.3.2 资源选用 / 013
1.4 Transformer API的崛起 / 014
1.4.1 选择即用型API驱动库 / 016
1.4.2 选择合适的云平台和Transformer模型 / 017
1.5 小结 / 017
1.6 问题 / 018
1.7 参考文献 / 018
1.8 拓展阅读 / 019
第2章 Transformer模型架构入门 / 020
2.1 开启新纪元的Transformer:注意力就是一切 / 021
2.1.1 编码器堆叠 / 022
2.1.2 解码器堆叠 / 039
2.2 训练和性能 / 041
2.3 Hugging Face的Transformer模型 / 042
2.4 小结 / 042
2.5 问题 / 043
2.6 参考文献 / 043
2.7 拓展阅读 / 044
第3章 智能涌现与下游任务 / 045
3.1 范式迁移:NLP任务简介 / 046
3.1.1 解析Transformer子层注意力头 / 046
3.1.2 使用ChatGPT探究涌现现象 / 049
3.2 探究下游任务 / 051
3.2.1 使用指标评估模型 / 052
3.2.2 人工评估 / 053
3.3 执行下游任务 / 060
3.3.1 CoLA / 061
3.3.2 SST-2 / 061
3.3.3 MRPC / 062
3.3.4 WSC / 063
3.4 小结 / 063
3.5 问题 / 064
3.6 参考文献 / 064
3.7 拓展阅读 / 065
第4章 机器翻译 / 066
4.1 机器翻译的定义 / 067
4.1.1 人工转换和翻译 / 067
4.1.2 机器转换和翻译 / 068
4.2 评估机器翻译 / 068
4.2.1 预处理WMT数据集 / 068
4.2.2 使用BLEU评估翻译 / 073
4.3 使用Google Trax进行翻译 / 076
4.3.1 安装Trax / 077
4.3.2 创建原始Transformer模型 / 077
4.3.3 使用预训练参数初始化模型 / 078
4.3.4 句子的分词 / 078
4.3.5 Transformer的解码过程 / 079
4.3.6 分词还原与译文展示 / 079
4.4 使用Google Translate进行翻译 / 079
4.5 使用Gemini进行翻译 / 082
4.6 小结 / 083
4.7 问题 / 084
4.8 参考文献 / 084
4.9 拓展阅读 / 084
第5章 利用BERT进行微调 / 085
5.1 BERT架构 / 086
5.2 微调BERT / 091
5.2.1 定义目标 / 091
5.2.2 硬件限制 / 092
5.2.3 安装Hugging Face Transformer / 092
5.2.4 导入模块 / 093
5.2.5 配置CUDA / 093
5.2.6 加载CoLA数据集 / 094
5.2.7 构建句子列表、标签列表及添加BERT token / 095
5.2.8 激活BERT分词器 / 095
5.2.9 处理数据 / 096
5.2.10 创建注意力掩码 / 096
5.2.11 划分训练集与验证集 / 096
5.2.12 将数据转换为张量形式 / 096
5.2.13 选择批次尺寸并构建迭代器 / 097
5.2.14 配置BERT模型 / 097
5.2.15 加载Hugging Face BERT uncased模型 / 098
5.2.16 优化器的分组参数 / 100
5.2.17 训练循环的超参数配置 / 101
5.2.18 训练循环 / 101
5.2.19 训练评估 / 102
5.2.20 使用保留数据集进行预测评估 / 103
5.2.21 使用马修斯相关系数进行评估 / 105
5.2.22 对完整数据集进行MCC评估 / 106
5.3 构建与模型交互的Python接口 / 106
5.3.1 保存模型 / 106
5.3.2 为模型创建接口 / 107
5.4 小结 / 109
5.5 问题 / 109
5.6 参考文献 / 110
5.7 拓展阅读 / 110
第6章 使用RoBERTa对Transformer进行预训练 / 111
6.1 训练分词器与预训练Transformer / 112
6.2 从零开始构建KantaiBERT / 113
6.2.1 步骤1:加载数据集 / 113
6.2.2 步骤2:安装Hugging Face Transformer / 114
6.2.3 步骤3:训练分词器 / 115
6.2.4 步骤4:保存文件到磁盘 / 117
6.2.5 步骤5:加载训练后的分词器文件 / 117
6.2.6 步骤6:检查算力资源:GPU与CUDA配置 / 118
6.2.7 步骤7:定义模型配置 / 119
6.2.8 步骤8:在Transformer中重新载入分词器 / 119
6.2.9 步骤9:从头初始化模型 / 120
6.2.10 步骤10:创建数据集 / 124
6.2.11 步骤11:定义数据整理器 / 125
6.2.12 步骤12:初始化训练器 / 125
6.2.13 步骤13:预训练模型 / 126
6.2.14 步骤14:保存最终模型(含分词器、配置文件)至磁盘 / 126
6.2.15 步骤15:使用FillMaskPipeline进行语言建模 / 127
6.3 利用X数据预训练生成式AI客户支持模型 / 128
6.3.1 步骤1:下载数据集 / 128
6.3.2 步骤2:安装Hugging Face transformers / 129
6.3.3 步骤3:加载和过滤数据 / 129
6.3.4 步骤4:检查硬件 / 130
6.3.5 步骤5:定义模型配置 / 130
6.3.6 步骤6:创建并处理数据集 / 131
6.3.7 步骤7:初始化训练器 / 132
6.3.8 步骤8:预训练模型 / 132
6.3.9 步骤9:保存模型 / 133
6.3.10 步骤10:与生成式AI智能体对话的用户界面 / 133
6.3.11 持续预训练 / 134
6.3.12 局限 / 134
6.4 下一步 / 135
6.5 小结 / 135
6.6 问题 / 136
6.7 参考文献 / 136
6.8 拓展阅读 / 136
第Ⅱ篇 超级NLP的崛起
第7章 ChatGPT生成式AI革命 / 138
7.1 GPT的演进 / 139
7.1.1 技术创新 / 139
7.1.2 技术扩散 / 140
7.1.3 普及性 / 141
7.2 OpenAI GPT Transformer的模型架构 / 142
7.2.1 十亿参数级Transformer模型的崛起 / 142
7.2.2 Transformer模型不断变大 / 142
7.2.3 上下文长度与最大路径长度 / 144
7.2.4 从微调到零样本模型的演进 / 144
7.2.5 解码器堆叠 / 146
7.2.6 GPT模型 / 147
7.3 ChatGPT智能助手 / 148
7.3.1 ChatGPT的代码生成能力 / 149
7.3.2 GitHub Copilot代码助手 / 150
7.3.3 通用型提示词示例 / 151
7.3.4 GPT-4助手 / 152
7.4 GPT-4 API入门 / 155
7.4.1 运行首个GPT-4 NLP任务 / 156
7.4.2 运行多项NLP任务 / 157
7.5 基于GPT-4的RAG / 158
7.5.1 安装 / 158
7.5.2 文档检索 / 159
7.5.3 增强检索生成 / 160
7.6 小结 / 162
7.7 问题 / 162
7.8 参考文献 / 163
7.9 拓展阅读 / 163
第8章 微调OpenAI GPT模型 / 164
8.1 风险管理 / 165
8.2 文本生成任务的GPT微调实践 / 166
8.3 准备数据集 / 167
8.3.1 构建JSON格式数据集 / 167
8.3.2 将数据转换为JSONL / 169
8.4 微调原始模型 / 170
8.5 运行微调后的GPT模型 / 172
8.6 管理微调任务和模型 / 174
8.7 最后的思考 / 175
8.8 小结 / 177
8.9 问题 / 177
8.10 参考文献 / 177
8.11 拓展阅读 / 177
第9章 模型可解释性 / 178
9.1 使用BertViz实现Transformer可视化 / 179
9.2 使用SHAP解释Hugging Face Transformer / 188
9.2.1 SHAP理论基础 / 188
9.2.2 利用SHAP解释Hugging Face输出 / 191
9.3 基于字典学习的Transformer可视化 / 192
9.3.1 Transformer因子 / 192
9.3.2 LIME入门 / 193
9.3.3 可视化界面 / 194
9.4 其他可解释性AI工具 / 196
9.4.1 LIT / 196
9.4.2 解析OpenAI的LLM神经元 / 198
9.4.3 局限性与人工控制 / 200
9.5 小结 / 200
9.6 问题 / 201
9.7 参考文献 / 201
9.8 拓展阅读 / 202
第10章 分词器在Transformer中的作用 / 203
10.1 合理选择数据集与分词器 / 204
10.1.1 最佳实践 / 204
10.1.2 Word2Vec分词 / 207
10.2 探索句子与WordPiece分词器 / 213
10.2.1 词句分词器 / 214
10.2.2 子词分词器 / 217
10.2.3 代码实践 / 220
10.3 小结 / 224
10.4 问题 / 225
10.5 参考文献 / 225
10.6 拓展阅读 / 225
第11章 利用大模型嵌入进行微调 / 226
11.1 使用嵌入替代微调 / 227
11.2 NLTK和Gensim文本嵌入基础 / 228
11.2.1 安装相关依赖库 / 228
11.2.2 读取文本文件 / 228
11.2.3 使用Punkt进行文本分词 / 228
11.2.4 使用Gensim和Word2Vec实现嵌入 / 230
11.2.5 模型描述 / 231
11.2.6 访问单词与向量 / 232
11.2.7 探索Gensim的向量空间 / 233
11.2.8 TensorFlow Projector / 235
11.3 基于嵌入搜索技术实现问答系统 / 238
11.3.1 安装库并选择模型 / 239
11.3.2 实现嵌入模型与GPT模型 / 240
11.3.3 准备搜索数据 / 242
11.3.4 搜索 / 243
11.3.5 提问 / 245
11.4 基于Ada嵌入的迁移学习 / 247
11.4.1 Amazon Fine Food Reviews数据集 / 247
11.4.2 运行Ada嵌入并保存 / 249
11.4.3 聚类处理 / 250
11.4.4 簇中的文本样本分析与命名 / 252
11.5 小结 / 253
11.6 问题 / 253
11.7 参考文献 / 254
11.8 拓展阅读 / 254
第12章 使用ChatGPT与GPT-4进行标注 / 255
12.1 SRL前沿探索 / 256
12.2 无语法约束的AI世界 / 257
12.3 定义SRL / 257
12.4 基于GPT-4架构的ChatGPT SRL试验 / 258
12.4.1 基础示例 / 259
12.4.2 有难度的示例 / 262
12.5 SRL的适用范围 / 263
12.6 重新定义SRL / 265
12.7 从特定任务SRL到ChatGPT的涌现现象 / 266
12.7.1 安装环境准备 / 267
12.7.2 GPT-4交互函数 / 267
12.7.3 SRL / 268
12.8 小结 / 272
12.9 问题 / 273
12.10 参考文献 / 273
12.11 拓展阅读 / 273
第13章 使用T5和ChatGPT生成摘要 / 274
13.1 设计通用的文本到文本模型 / 275
13.2 文本到文本Transformer模型的崛起 / 276
13.3 利用前缀统一格式 / 277
13.4 T5模型架构 / 278
13.5 基于T5的文本摘要 / 279
13.5.1 Hugging Face / 279
13.5.2 初始化T5-large Transformer模型 / 281
13.5.3 使用T5-large模型进行文本摘要 / 285
13.6 从文本到文本到使用OpenAI ChatGPT预测新词 / 290
13.6.1 对比T5与ChatGPT的摘要生成方法 / 290
13.6.2 使用ChatGPT进行文本摘要 / 290
13.7 小结 / 294
13.8 问题 / 294
13.9 参考文献 / 295
13.10 拓展阅读 / 295
第14章 使用Vertex AI与PaLM 2探索前沿大模型 / 296
14.1 架构 / 297
14.1.1 Pathways / 297
14.1.2 PaLM / 299
14.1.3 PaLM 2 / 300
14.2 智能助手 / 302
14.2.1 Gemini / 303
14.2.2 Google Workspace / 304
14.2.3 Google Colab Copilot / 306
14.2.4 Vertex AI PaLM 2界面 / 308
14.3 Vertex AI PaLM 2 API / 313
14.3.1 问答系统 / 313
14.3.2 问答任务 / 314
14.3.3 对话摘要 / 315
14.3.4 情感分析 / 316
14.3.5 多选题解析 / 318
14.3.6 生成代码 / 319
14.4 微调 / 322
14.4.1 创建存储桶 / 323
14.4.2 微调模型 / 324
14.5 小结 / 325
14.6 问题 / 326
14.7 参考文献 / 326
14.8 拓展阅读 / 326
第15章 大模型风险 / 327
15.1 功能性AGI的出现 / 328
15.2 平台安装限制 / 329
15.3 Auto-BIG-bench / 332
15.4 WandB / 337
15.5 使用AI智能体进行复制 / 338
15.6 风险管理 / 341
15.6.1 幻觉与记忆 / 342
15.6.2 风险性涌现行为 / 347
15.6.3 虚假信息 / 348
15.6.4 影响力操作 / 348
15.6.5 有害内容 / 351
15.6.6 隐私 / 353
15.6.7 网络安全 / 354
15.7 基于RLHF和RAG的风险应对工具 / 354
15.7.1 使用Transformer和规则库进行输入输出审核 / 355
15.7.2 为ChatGPT和GPT-4创建知识库 / 358
15.7.3 解析用户请求并访问知识库 / 359
15.7.4 利用对话函数生成ChatGPT内容 / 361
15.8 小结 / 362
15.9 问题 / 363
15.10 参考文献 / 363
15.11 拓展阅读 / 363
第Ⅲ篇 生成式计算机视觉
第16章 视觉Transformer / 366
16.1 从任务无关型模型到多模态视觉Transformer / 367
16.2 ViT — 视觉Transformer / 368
16.2.1 ViT的基本架构 / 368
16.2.2 ViT代码实现 / 370
16.3 CLIP / 377
16.3.1 CLIP基本架构 / 377
16.3.2 CLIP代码实现 / 378
16.4 DALL-E 2和DALL-E 3 / 381
16.4.1 DALL-E的基本架构 / 381
16.4.2 DALL-E 2和DALL-E 3 API入门 / 382
16.5 GPT-4V、DALL-E 3与发散语义关联 / 385
16.5.1 定义发散语义关联 / 386
16.5.2 使用集成DALL-E的ChatGPT Plus创建图像 / 387
16.5.3 GPT-4V API的实现与DAT试验 / 389
16.6 小结 / 392
16.7 问题 / 393
16.8 参考文献 / 393
16.9 拓展阅读 / 394
第17章 Stable Diffusion / 395
17.1 扩散模型原理 / 396
17.2 第一部分:使用Stable Diffusion实现文生图 / 397
17.2.1 使用Transformer编码器进行文本嵌入 / 398
17.2.2 利用噪声随机生成图像 / 398
17.2.3 Stable Diffusion模型降采样 / 399
17.2.4 解码器上采样 / 400
17.2.5 输出图像 / 401
17.2.6 运行Keras Stable Diffusion模型 / 401
17.3 第二部分:使用Stable Diffusion进行文生图 / 403
17.4 第三部分:视频 / 405
17.4.1 基于Stability AI的文生视频 / 405
17.4.2 使用OpenAI CLIP变体进行文生视频 / 407
17.4.3 基于TimeSformer的视频到文本模型 / 408
17.4.4 准备视频帧 / 408
17.4.5 使用TimeSformer对视频帧进行预测 / 410
17.5 小结 / 411
17.6 问题 / 411
17.7 参考文献 / 412
17.8 拓展阅读 / 412
第18章 使用Hugging Face AutoTrain训练视觉模型 / 413
18.1 本章目标与范围 / 414
18.2 入门 / 415
18.3 上传数据集 / 416
18.4 使用AutoTrain训练模型 / 419
18.5 部署模型 / 420
18.6 运行模型进行推理 / 421
18.6.1 获取验证图像 / 421
18.6.2 推理阶段:图像分类 / 422
18.6.3 对训练好的模型进行试验 / 424
18.6.4 使用测试集评估最佳ViT模型 / 436
18.7 小结 / 437
18.8 问题 / 438
18.9 参考文献 / 438
18.10 拓展阅读 / 439
第19章 借助HuggingGPT及同类模型迈向AGI / 440
19.1 定义F-AGI / 441
19.2 安装和导入 / 443
19.3 验证集 / 444
19.3.1 级别1:简单 / 444
19.3.2 级别2:困难 / 444
19.3.3 级别3:非常困难 / 445
19.4 HuggingGPT / 445
19.4.1 级别1:简单 / 447
19.4.2 级别2:困难 / 448
19.4.3 级别3:非常困难 / 450
19.5 CustomGPT / 453
19.5.1 Google Cloud Vision / 454
19.5.2 模型链:将Google Cloud Vision链接至ChatGPT / 458
19.6 使用Runway Gen-2 进行模型链式调用 / 461
19.6.1 Midjourney:想象一艘在银河系中游弋的飞船 / 461
19.6.2 Gen-2:让这艘船在海上航行 / 462
19.7 小结 / 462
19.8 问题 / 463
19.9 参考文献 / 463
19.10 拓展阅读 / 464
第20章 使用生成式创意设计提示词 / 465
20.1 第一部分:定义生成式创意 / 466
20.1.1 自动化创意架构 / 466
20.1.2 范围和局限性 / 467
20.2 第二部分:自动设计提示词以用于图像生成 / 468
20.2.1 基于ChatGPT/GPT-4的HTML演示 / 468
20.2.2 Llama 2 / 472
20.2.3 使用Hugging Face实现Llama 2 / 473
20.2.4 Midjourney / 477
20.2.5 Microsoft Designer / 481
20.3 第三部分:基于Stable Diffusion的自动化创意生成 / 484
20.3.1 无需人工提示词:GPT-4自动化指令 / 484
20.3.2 使用ChatGPT实现生成式AI(生成提示词) / 486
20.3.3 使用Stable Diffusion生成图像并显示 / 488
20.4 未来,尽在您的探索之中! / 489
20.5 小结 / 493
20.6 问题 / 493
20.7 参考文献 / 494
20.8 拓展阅读 / 494
附录A Transformer模型的时间复杂度 / 495
附录B 练习题参考答案 / 506
