生成式AI入门与AWS实战
上QQ阅读APP看书,第一时间看更新

1.3 生成式AI项目生命周期

虽然目前还没有权威的生成式AI项目生命周期的定义,但图1-3所示的框架可以帮助你了解生成式AI应用程序之旅中最重要的几个环节。通过本书,你将直观地感受该过程中的每个步骤,并在每个步骤中避免潜在的难题,改进决策。

接下来我们深入介绍一下图1-3所示的生命周期中的每个步骤。

确定用例

与任何项目一样,我们首先需要定义项目范围,包括计划通过生成式AI应用程序解决的特定生成式用例和任务。我们建议从一个单一的、成熟的用例开始。这将帮助你熟悉环境,并了解这些模型的能力和局限性,而不必同时优化模型以适配不同的任务。虽然这些模型能够执行多项任务,但从一开始就在多项任务上评估和优化模型会比较困难。

图1-3 生成式AI项目生命周期框架

实验和选择

生成式AI模型能够成功地执行许多不同类型的任务。但是,你需要决定现有的基础模型是否适合你的应用程序需求。在第2章中,我们将学习如何使用提示工程(Prompt Engineering)和上下文学习(In-Context Learning),以直接使用已有的基础模型。

我们将从已有的基础模型开始(参见第3章),这会大幅缩短由开发到投入使用的时间,因为这样可以省去预训练的步骤。预训练是一个资源密集型的过程,通常需要数万亿个单词、图像、视频或音频片段才能开始。运维和管理这种规模的任务需要大量时间、耐心和计算能力——从头开始预训练通常需要数百万GPU计算小时。

你还需要考虑使用的基础模型的规模,这将影响模型训练和推理所需的硬件与成本。虽然较大的模型往往能更好地支持更多的任务,但情况并非总是如此,这取决于训练和调优期间使用的数据集。

我们建议你针对生成式用例和任务尝试不同的模型。从已有的、有成熟文档的、规模相对较小(如70亿个参数)的基础模型开始,用较少数量的硬件(与175亿个参数以上的较大模型相比)快速迭代,学习与这些生成式AI模型交互的独特方式。

在开发过程中,我们通常会从Amazon SageMaker JumpStart或Amazon Bedrock中的playground开始。这可以让你快速尝试不同的提示和模型(参见第2章)。接下来,我们可能会使用Jupyter Notebook、Visual Studio Code(VS Code)或Amazon SageMaker Studio这样的集成开发环境(Integrated Development Environment,IDE)编写Python脚本,准备试验这些生成式模型时使用的自定义数据集。一旦准备好将工作扩展到更大的分布式集群,你就可以迁移到SageMaker分布式训练模块。在该模块中,你可以将任务扩展到更大的计算集群,使用诸如NVIDIA GPU或AWS Trainium这样的加速器(参见第4章)。

虽然一开始可以避免使用加速器,但你可能需要它们以进行更长期的开发和部署更复杂的模型。越早学习NVIDIA GPU或AWS Trainium芯片等加速器的独特(有时有些晦涩)的开发方法越好。好在硬件提供商通过NVIDIA CUDA库和AWS Neuron SDK对大部分复杂性进行了抽象。

适配、对齐和增强

将生成式模型适配到特定的领域、用例和任务非常重要。第5章~第7章和第11章专门介绍如何使用定制的数据集对多模态生成式AI模型进行微调,以满足你的业务目标。

此外,随着这些生成式模型变得越来越像人类(重要的是它们要与人类的价值观和偏好对齐,并且总体上表现良好),第7章和第11章探讨了一种称为基于人类反馈的强化学习(Reinforcement Learning From Human Feedback,RLHF)的技术,以使你的多模态生成式AI模型有用、诚实、无害(Helpful, Honest, and Harmless,HHH)。RLHF是更广泛的研究领域——负责任的AI的一个关键组成部分。

虽然生成式模型包含大量的信息和知识,但它们通常需要使用最新的信息或业务的专有数据进行增强。在第9章中,我们将探索使用外部数据源或API进一步增强生成式模型的方法。

评估

为了正确地构建生成式AI应用程序,你需要对模型进行大量迭代。所以,建立明确的评估指标和基准非常重要,这有助于衡量微调的有效性。我们将在第5章中了解如何评估模型。虽然不像传统机器学习那么直接,但模型评估有助于在适配和对齐阶段衡量模型的改进情况,特别是模型与业务目标和人类偏好的契合程度。

部署和集成

当最终拥有一个经过良好调整和对齐的生成式模型时,你就可以部署该模型以进行推理,并将其集成到你的应用程序中。在第8章中,我们将了解如何优化模型以进行推理,更好地利用计算资源,减少推理延迟,并更好地服务用户。

我们还将了解如何使用Amazon SageMaker endpoint(端点)部署模型,这些端点对基于AWS Inferentia计算实例的生成式模型的推理任务进行了专门优化。SageMaker endpoint是服务生成式模型的绝佳选择,因为它们具有高度可扩展性、容错性和可定制性。它们提供了灵活的部署和扩展选项,如A/B测试、影子部署和自动伸缩(参见第8章)。

监控

与任何生产系统一样,你应该为生成式AI应用程序的所有组件设置适当的指标收集和监控系统。在第8章和第12章中,我们将学习如何利用Amazon CloudWatch和Amazon CloudTrail监控在AWS上运行的生成式AI应用程序。这些服务高度可定制,可以从AWS控制台或AWS软件开发工具包(Software Development Kit,SDK)中访问并与每个AWS服务集成,包括Amazon Bedrock,这是一项用于生成式AI的托管服务,我们将在第12章中介绍。