生成式人工智能(基于PyTorch实现)

978-7-115-66615-4
作者: 刘焕良(Mark Liu)
译者: 刘晖
编辑: 吴晋瑜

图书目录:

第 一部分 生成式人工智能简介

第 1章 生成式人工智能和PyTorch 2

1.1 生成式人工智能和PyTorch简介 3

1.1.1 生成式人工智能 3

1.1.2 Python编程语言 5

1.1.3 使用PyTorch作为人工智能框架 5

1.2 生成对抗网络(GAN) 6

1.2.1 GAN概述 6

1.2.2 示例:生成动漫人脸 7

1.2.3 为什么要关注GAN 9

1.3 Transformer 9

1.3.1 注意力机制简介 10

1.3.2 Transformer架构简介 10

1.3.3 多模态Transformer和预训练LLM 11

1.4 为什么要从零开始构建生成模型 13

1.5 小结 14

第 2章 使用PyTorch进行深度学习 15

2.1 PyTorch中的数据类型 16

2.1.1 创建PyTorch张量 16

2.1.2 对PyTorch张量进行索引和切片 18

2.1.3 PyTorch张量的形状 19

2.1.4 PyTorch张量的数学运算 20

2.2 使用PyTorch完成端到端深度学习

项目 21

2.2.1 PyTorch深度学习:高层次概述 21

2.2.2 数据预处理 22

2.3 二分类 25

2.3.1 创建批次 25

2.3.2 构建并训练二分类模型 25

2.3.3 测试二分类模型 27

2.4 多类别分类 28

2.4.1 验证集和早停止 28

2.4.2 构建并训练多类别分类模型 29

2.5 小结 32

第3章 生成对抗网络:生成形状和数字 33

3.1 训练GAN的步骤 34

3.2 准备训练数据 35

3.2.1 形成指数增长曲线的训练数据集 36

3.2.2 准备训练数据集 37

3.3 构建GAN 37

3.3.1 判别器网络 37

3.3.2 生成器网络 38

3.3.3 损失函数、优化器和早停止 39

3.4 训练GAN并使用GAN生成形状 40

3.4.1 GAN的训练 40

3.4.2 保存并使用训练好的生成器 44

3.5 用模式生成数字 45

3.5.1 独热变量 45

3.5.2 使用GAN生成具备模式的数字 47

3.5.3 训练GAN生成具备模式的数字 48

3.5.4 保存并使用训练好的模型 49

3.6 小结 50

第二部分 图像生成

第4章 使用GAN生成图像 52

4.1 使用GAN生成服装灰度图像 53

4.1.1 训练样本和判别器 53

4.1.2 生成灰度图像的生成器 54

4.1.3 训练GAN生成服装图像 55

4.2 卷积层 58

4.2.1 卷积运算的工作原理 59

4.2.2 步幅和填充对卷积运算的影响 61

4.3 转置卷积和批量归一化 62

4.3.1 转置卷积层的工作原理 62

4.3.2 批量归一化 64

4.4 彩色动漫人脸图像 65

4.4.1 下载动漫人脸图像 65

4.4.2 PyTorch中的通道前置彩色图像 66

4.5 深度卷积GAN(DCGAN) 67

4.5.1 构建DCGAN 68

4.5.2 训练并使用DCGAN 70

4.6 小结 72

第5章 在生成图像中选择特征 73

5.1 眼镜数据集 74

5.1.1 下载眼镜数据集 74

5.1.2 可视化眼镜数据集中的图像 75

5.2 cGAN和沃瑟斯坦距离 76

5.2.1 带有梯度惩罚的WGAN 76

5.2.2 cGAN 77

5.3 构建cGAN 78

5.3.1 cGAN中的批评者 78

5.3.2 cGAN中的生成器 79

5.3.3 权重初始化和梯度惩罚函数 80

5.4 训练cGAN 82

5.4.1 为输入添加标签 82

5.4.2 训练模型 83

5.5 在生成图像中选择特征的方法 85

5.5.1 选择生成戴眼镜或不戴眼镜的人脸

图像 86

5.5.2 潜空间中的向量运算 88

5.5.3 同时选择两个特征 89

5.6 小结 92

第6章 CycleGAN:将金发转换为

黑发 93

6.1 CycleGAN和循环一致性损失 94

6.1.1 CycleGAN 94

6.1.2 循环一致性损失 95

6.2 名人人脸数据集 96

6.2.1 下载名人人脸数据集 96

6.2.2 处理黑发图像和金发图像的数据 97

6.3 构建CycleGAN模型 99

6.3.1 创建两个判别器 99

6.3.2 创建两个生成器 100

6.4 用CycleGAN在黑发和金发之间

转换 103

6.4.1 训练CycleGAN在黑发和金发之间

转换 103

6.4.2 黑发图像和金发图像的往返转换 105

6.5 小结 107

第7章 利用变分自编码器生成图像 108

7.1 自编码器概述 110

7.1.1 自编码器 110

7.1.2 构建并训练自编码器的步骤 110

7.2 构建并训练能生成数字的

自编码器 111

7.2.1 收集手写数字 111

7.2.2 构建和训练自编码器 112

7.2.3 保存并使用训练好的自编码器 114

7.3 变分自编码器 115

7.3.1 AE与VAE的区别 115

7.3.2 训练可生成人脸图像的VAE所需的蓝图 116

7.4 生成人脸图像的变分自编码器 117

7.4.1 构建变分自编码器 117

7.4.2 训练变分自编码器 119

7.4.3 使用训练好的VAE生成图像 120

7.4.4 使用训练好的VAE进行编码运算 122

7.5 小结 126

第三部分 自然语言处理和Transformer

第8章 利用循环神经网络生成文本 128

8.1 循环神经网络(RNN)简介 129

8.1.1 文本生成过程中的挑战 130

8.1.2 循环神经网络的工作原理 130

8.1.3 训练长短期记忆(LSTM)模型的步骤 131

8.2 自然语言处理(NLP)的基本原理 132

8.2.1 词元化方法 133

8.2.2 词嵌入方法 134

8.3 准备数据以训练LSTM模型 135

8.3.1 下载并清理文本 135

8.3.2 创建多批训练数据 137

8.4 构建并训练LSTM模型 137

8.4.1 构建LSTM模型 138

8.4.2 训练LSTM模型 139

8.5 使用训练好的LSTM模型生成文本 140

8.5.1 通过预测下一个词元来生成文本 140

8.5.2 文本生成中的温度和top-K采样 142

8.6 小结 146

第9章 实现注意力机制和Transformer 147

9.1 注意力机制和Transformer 148

9.1.1 注意力机制 148

9.1.2 Transformer架构 151

9.1.3 Transformer的类型 154

9.2 构建编码器 154

9.2.1 实现注意力机制 155

9.2.2 创建编码器层 157

9.3 构建编码器-解码器Transformer 158

9.3.1 创建解码器层 158

9.3.2 创建编码器-解码器Transformer 160

9.4 将所有部件组合在一起 161

9.4.1 定义生成器 161

9.4.2 创建能进行两种语言对译的模型 162

9.5 小结 163

第 10章 训练能将英语翻译成法语的Transformer 164

10.1 子词词元化 164

10.1.1 英语句子和法语句子的词元化

处理 165

10.1.2 序列填充和批次创建 169

10.2 词嵌入和位置编码 171

10.2.1 词嵌入 172

10.2.2 位置编码 172

10.3 训练Transformer将英语翻译成法语 174

10.3.1 损失函数和优化器 174

10.3.2 训练循环 177

10.4 用训练好的模型将英语翻译成法语 177

10.5 小结 179

第 11章 从零开始构建GPT 180

11.1 GPT-2的架构和因果自注意力 181

11.1.1 GPT-2的架构 181

11.1.2 GPT-2中的词嵌入和位置编码 182

11.1.3 GPT-2中的因果自注意力 183

11.2 从零开始构建GPT-2XL 187

11.2.1 字节对编码器(BPE)词元化 187

11.2.2 GELU激活函数 188

11.2.3 因果自注意力 190

11.2.4 构建GPT-2XL模型 191

11.3 载入预训练权重并生成文本 193

11.3.1 载入GPT-2XL的预训练参数 194

11.3.2 定义用于生成文本的generate()函数 195

11.3.3 用GPT-2XL生成文本 197

11.4 小结 199

第 12章 训练生成文本的Transformer 200

12.1 从零开始构建并训练GPT 201

12.1.1 文本生成GPT的架构 202

12.1.2 文本生成GPT模型的训练过程 203

12.2 海明威小说的文本词元化 204

12.2.1 对文本进行词元化 205

12.2.2 创建训练批次 208

12.3 构建用于生成文本的GPT 209

12.3.1 模型超参数 209

12.3.2 构建因果自注意力机制模型 210

12.3.3 构建GPT模型 210

12.4 训练GPT模型以生成文本 212

12.4.1 训练GPT模型 212

12.4.2 生成文本的函数 213

12.4.3 使用不同版本的训练好的模型生成文本 215

12.5 小结 218

第四部分 实际应用和新进展

第 13章 使用MuseGAN生成音乐 220

13.1 音乐的数字化表示 221

13.1.1 音符、八度音阶和音高 221

13.1.2 多轨音乐简介 222

13.1.3 音乐的数字化表示:钢琴卷谱 224

13.2 音乐生成所用的蓝图 226

13.2.1 用和弦、风格、旋律和节奏构建音乐 227

13.2.2 训练MuseGAN所用的蓝图 228

13.3 准备MuseGAN所需的训练数据 229

13.3.1 下载训练数据 230

13.3.2 将多维对象转换为音乐作品 230

13.4 构建MuseGAN 231

13.4.1 MuseGAN中的批评者 232

13.4.2 MuseGAN中的生成器 233

13.4.3 优化器和损失函数 235

13.5 训练MuseGAN以生成音乐 236

13.5.1 训练MuseGAN 237

13.5.2 使用训练好的MuseGAN生成音乐 238

13.6 小结 239

第 14章 构建并训练音乐Transformer 241

14.1 音乐Transformer简介 242

14.1.1 表示基于演奏的音乐 242

14.1.2 音乐Transformer的架构 245

14.1.3 训练音乐Transformer的过程 246

14.2 词元化音乐作品 248

14.2.1 下载训练数据 248

14.2.2 词元化MIDI文件 249

14.2.3 准备训练数据 251

14.3 构建用于生成音乐的GPT 253

14.3.1 音乐Transformer中的超参数 253

14.3.2 构建音乐Transformer 254

14.4 训练和使用音乐Transformer 255

14.4.1 训练音乐Transformer 255

14.4.2 使用训练好的Transformer生成音乐 256

14.5 小结 258

第 15章 扩散模型和文生图Transformer 259

15.1 去噪扩散模型简介 260

15.1.1 正向扩散过程 260

15.1.2 使用U-Net模型为图像去噪 261

15.1.3 去噪U-Net模型的训练蓝图 263

15.2 准备训练数据 264

15.2.1 作为训练数据的花朵图像 264

15.2.2 正向扩散过程的可视化 265

15.3 构建去噪U-Net模型 267

15.3.1 去噪U-Net模型中的注意力机制 267

15.3.2 去噪U-Net模型 268

15.4 训练和使用去噪U-Net模型 269

15.4.1 训练去噪U-Net模型 270

15.4.2 使用训练好的模型生成花朵图像 271

15.5 文生图Transformer 274

15.5.1 CLIP:一种多模态Transformer 274

15.5.2 用DALL·E 2进行文生图 276

15.6 小结 277

第 16章 预训练LLM和LangChain库 279

16.1 使用OpenAI API生成内容 280

16.1.1 使用OpenAI API运行文本生成

任务 280

16.1.2 使用OpenAI API生成代码 282

16.1.3 使用OpenAI DALL·E 2生成图像 283

16.1.4 使用OpenAI API进行语音生成 284

16.2 LangChain简介 285

16.2.1 LangChain库的必要性 285

16.2.2 在LangChain中使用

OpenAI API 286

16.2.3 零样本提示、单样本提示和少样本提示 286

16.3 用LangChain创建博学多才的零样本智能体 288

16.3.1 申请Wolfram Alpha API密钥 288

16.3.2 在LangChain中创建智能体 290

16.3.3 用OpenAI GPT添加工具 291

16.3.4 添加能生成代码和图像的工具 293

16.4 LLM的局限性和伦理问题 295

16.4.1 LLM的局限性 295

16.4.2 LLM的伦理问题 296

16.5 小结 297

附录A 安装Python、Jupyter Notebook和PyTorch 298

A.1 安装Python并设置虚拟环境 298

A.1.1 安装Anaconda 298

A.1.2 设置Python虚拟环境 299

A.1.3 安装Jupyter Notebook 299

A.2 安装PyTorch 300

A.2.1 安装不带CUDA的PyTorch 300

A.2.2 安装带CUDA的PyTorch 301

附录B 阅读本书需要掌握的基础知识 303

B.1 深度学习和深度神经网络 303

B.1.1 神经网络简介 303

B.1.2 神经网络中不同类型的层 304

B.1.3 激活函数 304

B.2 训练深度神经网络 305

B.2.1 训练过程 305

B.2.2 损失函数 306

B.2.3 优化器 306

详情

本书通过从零开始构建生成式人工智能模型来探讨生成式人工智能的底层机制,并使用PyTorch对生成式人工智能模型进行编程的实践指导,以期让读者在了解生成对抗网络(GAN)、变分自编码器(VAE)、循环神经网络(RNN)、Transformer、扩散模型、大语言模型(LLM)和LangChain等技术原理之后,能构建可生成形状、数字、图像、文本和音乐的生成式人工智能 模型。 本书适合各种商业领域中的人工智能技术工程师和数据科学家在实践生成式人工智能模型时随手查阅,也适合生成式人工智能的初学者作为入门指南。

图书摘要

相关图书

大模型应用开发 动手做AI Agent
大模型应用开发 动手做AI Agent
AI原生应用开发:提示工程原理与实战
AI原生应用开发:提示工程原理与实战
AI辅助编程实战
AI辅助编程实战
GPT图解 大模型是怎样构建的
GPT图解 大模型是怎样构建的
大语言模型:基础与前沿
大语言模型:基础与前沿
大模型导论
大模型导论

相关文章

相关课程