“足够先进的技术与魔法没有什么区别。”
——亚瑟·C·克拉克(《2001:太空漫游》作者)
使用 PyTorch 学习生成式 AI 旨在指导您从头开始创建各种内容(形状、数字、图像、文本和音乐)。它从简单的模型开始,帮助读者在应对更复杂的挑战之前建立基础的深度学习技能。本书中的所有生成模型都是深度神经网络。本书从 PyTorch 中的综合深度学习项目开始,非常适合该领域的新手。每一章的结构都经过精心设计,以前一章为基础。您将首先使用具有简单架构的生成对抗网络 (GAN) 创建基本内容,例如形状、数字和图像。随着您的进步,复杂性会增加,最终会构建出最先进的模型,例如变形金刚和扩散模型。
使用 PyTorch 学习生成式 AI 专为拥有中级 Python 编程技能的各个业务领域的机器学习爱好者和数据科学家而设计。本书旨在教授生成式人工智能技术,用于创建新颖和创新的内容,例如图像、文本、图案、数字、形状和音频,以增强雇主的业务和自己的职业生涯。虽然网上有许多涵盖各个主题的免费学习材料,但本书将所有内容整合为清晰、易于理解和最新的格式,使其成为任何渴望成为生成人工智能专家的宝贵资源。
本书共有16章,分为四个部分。
第一部分向您介绍 PyTorch 的生成式 AI 和深度学习。
• 第 1 章解释了什么是生成式 AI,以及在本书中选择 PyTorch 而不是 TensorFlow 等其他 AI 框架来构建生成模型的理由。
• 第2 章使用PyTorch 创建深度神经网络来执行二元和多类别分类,以便您精通深度学习和分类任务。目的是让您为接下来的章节做好准备,在这些章节中您将使用 PyTorch 中的深度神经网络来创建各种生成模型。
• 第3 章向您介绍生成对抗网络(GAN)。您将学习使用 GAN 生成具有特定模式的形状和数字序列。
第二部分介绍图像生成。
• 第 4 章讨论如何构建和训练 GAN 以生成高分辨率彩色图像。特别是,您将学习使用卷积神经网络 (CNN) 捕获图像中的空间特征。您还将学习使用转置卷积层来上采样并生成图像中的高分辨率特征图。
• 第5 章详细介绍了在生成的图像中选择特征的两种方法。第一种方法涉及在潜在空间中选择特定向量。第二种方法使用条件 GAN,您可以使用标记数据构建和训练 GAN。
• 第6 章教您如何使用CycleGAN 在两个域之间转换图像,例如黑发图像和金发图像,或者马图像和斑马图像。
• 第7 章解释了如何使用另一种生成模型生成高分辨率图像:自动编码器(AE) 及其变体,变分自动编码器(VAE)。
第三部分深入探讨自然语言处理 (NLP) 和文本生成。
• 第8 章讨论使用循环神经网络(RNN) 生成文本。在此过程中,您将了解标记化和词嵌入的工作原理。您还将学习使用经过训练的模型自回归生成文本,以及如何使用温度和 top-K 采样来控制生成文本的创造力。
• 第 9 章根据论文《Attention Is All You Need》从头开始构建一个 Transformer,用于在任意两种语言之间进行翻译。您将逐行实现多头注意力机制和编码器-解码器 Transformer。
• 第10 章使用超过47,000 对英法翻译来训练您在第9 章中构建的Transformer。您将学习使用经过训练的模型将常见的英语短语翻译成法语。
• 第11 章从头开始构建GPT-2XL,即GPT-2 的最大版本。之后,您将学习如何从 Hugging Face 中提取预训练的权重并将其加载到您自己的 GPT-2 模型中以生成文本。
• 第12 章构建了一个具有大约500 万个参数的缩小版本的GPT 模型,以便您可以在普通计算机上对其进行训练。您将使用欧内斯特·海明威的三本小说作为训练数据。经过训练的模型可以生成海明威风格的文本。
第四部分讨论了书中生成模型的一些实际应用以及生成人工智能领域的最新发展。
• 第13 章构建并训练MuseGAN 来生成音乐。 MuseGAN 将一段音乐视为类似于图像的多维对象。生成器产生一段完整的音乐并将其提交给评论家进行评估。然后,生成器根据评论家的反馈修改音乐,直到它与训练数据集中的真实音乐非常相似。聆听生成的音乐示例:https://gattonweb.uky.edu/faculty/lium/ml/MuseGAN_song.mp3
• 第14 章采用不同的方法进行人工智能音乐创作。您不是将一段音乐视为多维对象,而是将其视为一系列音乐事件。然后,您将应用文本生成技术来预测序列中的下一个元素。聆听生成的音乐示例:https://gattonweb.uky.edu/faculty/lium/ml/musicTrans.mp3
• 第15 章向您介绍扩散模型,它构成了所有领先的文本到图像转换器(例如DALL-E 或Imagen)的基础。您将构建并训练扩散模型以生成高分辨率的花卉图像。
• 第16 章以一个项目结束本书,在该项目中,您使用LangChain 库将预训练的大型语言模型(LLM) 与Wolfram Alpha 和Wikipedia API 结合起来,创建一个零样本万事通的个人助理。
附录讨论了如何在计算机上安装 PyTorch,无论是否具有支持计算统一设备架构 (CUDA) 的 GPU。
本书中的所有Python程序都可以从本书的GitHub存储库https://github.com/markhliu/DGAI下载。这些程序按章节组织,每个章节都在一个 Jupyter Notebook 文件中。请参阅本书的附录,了解如何在计算机上安装 Python、PyTorch 和 Jupyter Notebook。