图书目录

目 录

第Ⅰ篇 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