关于本书

本书旨在指导读者从零开始创建各种内容(形状、数字、图像、文本和音乐)。它从简单的模型入手,帮助读者建立基础的深度学习技能,然后再向更复杂的挑战进发。书中所有的生成模型都是深度神经网络。

本书从PyTorch中一个综合的深度学习项目开始,非常适合该领域的新手。每一章都是在前一章的基础上精心编排的。首先,读者将学习使用架构简单的生成对抗网络创建形状、数字和图像等基本内容。随着学习的深入,复杂性会逐渐提高,最终我们将建立更先进的模型,如Transformer和扩散模型。

目标读者

本书旨在介绍生成式人工智能技术,以及如何借此创建新颖、创新的内容,如图像、文本、图案、数字、形状和音频,从而提升企业的业务能力并促进从业者的职业生涯发展。虽然网上有许多涵盖了各个主题的免费学习材料,但这一本将所有内容整合成清晰且易于学做的新式格式,使其足以为任何有志成为生成式人工智能专家的人带来价值。

本书适合各种商业领域中的机器学习爱好者和数据科学家阅读。在阅读前,读者应对Python有扎实的掌握,具备一定的Python编程技能,要熟悉变量类型、函数和类,以及第三方Python库和包的安装。对于上述知识的学习,读者可以参考W3Schools提供的免费在线Python教程。

读者还应对机器学习,尤其是神经网络和深度学习有基本了解。如果需要,可参考《PyTorch深度学习实战》(Deep Learning with PyTorch)一书。附录B简要介绍了损失函数、激活函数和优化器等关键概念,这些概念对开发和训练深度神经网络至关重要,不过附录内容并非这些话题的完整教程。

组织结构:路线图

本书共16章,分四部分。第一部分主要介绍基于PyTorch的生成式人工智能和深度学习。

第1章解释什么是生成式人工智能,以及本书选择用PyTorch而非TensorFlow等其他人工智能框架来构建生成模型的理由。

第2章使用PyTorch创建能执行二分类和多类别分类的深度神经网络,从而帮读者掌握深度学习和分类任务。这一章是为后续章节做准备,在后续章节中,我们将使用PyTorch中的深度神经网络创建各种生成模型。

第3章介绍生成对抗网络(GAN)。读者将学习使用GAN生成具有特定模式的形状和数字序列。

第二部分主要介绍图像生成。

第4章讨论如何构建并训练能生成高分辨率彩色图像的GAN。特别是,读者将学习使用卷积神经网络捕捉图像中的空间特征,此外,读者还将学习使用转置卷积层对图像进行上采样并生成高分辨率特征图。

第5章详细介绍在生成图像中选择特征的两种方法。第一种方法是在潜空间中选择特定向量,第二种方法使用条件GAN,即使用带标签的数据构建和训练GAN。

第6章介绍如何使用CycleGAN在两个域(如黑发图像和金发图像、马的图像和斑马图像)之间转换图像。

第7章介绍如何使用自编码器及其变体——变分自编码器生成高分辨率图像。

第三部分深入介绍自然语言处理和文本生成。

第8章讨论使用循环神经网络生成文本。在学习过程中,读者将了解词元化和词嵌入的工作原理,还将学习使用训练好的模型以自回归方式生成文本,以及如何使用温度和top-K采样控制所生成文本的创造性。

第9章根据论文“Attention Is All You Need”,从零开始构建一个用于在任意两种语言之间进行翻译的Transformer。读者将逐行实现多头注意力机制和编码器-解码器Transformer。

第10章使用47000多对英译法译文训练第9章构建的Transformer。读者将学会用训练好的模型将常用英语句子翻译成法语。

第11章从零开始构建GPT-2的最大版本GPT-2XL。之后,读者将学习如何从Hugging Face中提取预训练的模型权重,并将其加载到自己的GPT-2模型中进而生成文本。

第12章构建一个缩减版的GPT模型,其中包含约500万个参数,这样就可以在普通计算机上进行训练。读者将使用海明威的3部小说作为训练数据。训练好的模型可以生成海明威写作风格的文本。

第四部分讨论本书中介绍的生成模型的一些实际应用及生成式人工智能领域的最新进展。

第13章建立并训练能生成音乐的MuseGAN。MuseGAN将一段音乐视为一个类似于图像的多维对象。生成器生成一首完整音乐,并提交给批评者进行评估。然后,生成器会根据批评者的反馈修改音乐,直到它与训练数据集中的真实音乐非常相似。

第14章采用一种与MuseGAN不同的人工智能音乐创作方法。我们不再将一段音乐视为一个多维对象,而是将其视为一系列音乐事件。然后,应用文本生成技术来预测序列中的下一个元素。

第15章介绍扩散模型,它是所有流行的文生图Transformer(如DALL·E 2或Imagen)的基础。我们将建立并训练一个能生成高分辨率花朵图像的扩散模型。

第16章以一个项目结束本书。在这个项目中,我们会使用LangChain库将预训练的大语言模型与Wolfram Alpha API或Wikipedia API结合起来,创建一个“无所不知”的个人助理。

附录A介绍如何在具备或不具备计算统一设备体系结构(CUDA)GPU的计算机上安装PyTorch。附录B提供了与本书项目有关的一些背景信息,以及深度学习的一些基本概念,如损失函数、激活函数和优化器。