

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 生成式 AI 中的数据生命周期
<a name="lifecycle"></a>

在企业中实施生成式人工智能涉及与传统生命周期相似的数据 AI/ML 生命周期。但是，每个阶段都有独特的考虑因素。关键阶段包括数据准备、集成到模型工作流程中（例如检索或微调）、反馈收集和持续更新。本节探讨了这些相互关联的数据生命周期阶段，并详细介绍了组织在开发和部署生成式人工智能解决方案时必须考虑的基本流程、挑战和最佳实践。

**Topics**
+ [为预训练准备和清理数据](#lifecycle-preparation)
+ [检索增强生成](#lifecycle-rag)
+ [微调和专业培训](#lifecycle-fine-tuning)
+ [评估数据集](#lifecycle-evaluation)
+ [用户生成的数据和反馈回路](#lifecycle-feedback-loops)

## 为预训练准备和清理数据
<a name="lifecycle-preparation"></a>

*垃圾进来，垃圾流出*是这样的概念，即低质量的输入会导致同样低质量的输出。就像在任何 AI 项目中一样，数据质量是一个 make-or-break因素。生成式 AI 通常从海量数据集开始，但光靠数据量是不够的。仔细清洁、过滤和预处理至关重要。

在此阶段，数据团队会汇总原始数据，例如大量文本或图像集。然后，它们会消除噪音、错误和偏见。例如，为法学硕士学位准备文本可能涉及删除重复内容、清除敏感的个人信息以及过滤掉有毒或无关的内容。目标是创建一个高质量的数据集，真正代表模型应捕获的知识或风格。也可以将数据标准化或格式化为适合模型摄取的结构。例如，您可以标记文本、删除 HTML 标签或标准化图像分辨率。

在生成式人工智能中，由于规模，这种准备工作可能特别密集。诸如Anthropic Claude之类的模型是在数千亿个[代币](https://en.wikipedia.org/wiki/Lexical_analysis#Token)（维基百科）上训练的，这些代币来自各种公开和许可的数据源。即使是很小比例的不良数据也可能对产出产生巨大影响，包括令人反感的内容或事实错误。例如，各种法学硕士提供者报告说，他们将Reddit社区的内容排除在训练数据集之外，因为这些帖子主要由字母 *M* 的长序列组成，目的是模仿微波炉的噪音。这些帖子干扰了模型训练和表现。

在这个阶段，一些企业采用数据增强来扩大对某些场景的覆盖范围。*数据增强*是合成其他训练数据的过程。有关更多信息，请参阅本指南中的[数据合成](differences.md#differences-synthesizing)。

在根据准备和预处理的数据训练模型时，您可以使用缓解技术来显著解决偏差。技术包括在模型的架构中嵌入伦理原则，即*宪法人工智能*。另一种技术是*对抗性去偏差*，它在训练期间挑战模型，要求不同群体获得更公平的结果。最后，训练结束后，您可以进行*后期处理调整*，通过微调来完善模型。这可以帮助纠正任何剩余的偏见并提高整体公平性。

## 检索增强生成
<a name="lifecycle-rag"></a>

静态机器学习模型纯粹根据固定的训练集进行预测。但是，许多企业生成式人工智能解决方案使用检索增强生成 (RAG) 来保持模型知识的最新性和相关性。RAG 涉及将 LLM 连接到可能包含企业文档、数据库或其他数据源的外部知识库。

实际上，RAG 需要实施额外的数据管道。这会带来一定程度的复杂性，并涉及以下顺序步骤：

1. **摄取和筛选**-从不同来源收集高质量、相关的数据。实施筛选机制以排除冗余或不相关的信息，并确保数据集与应用程序的域相关。请注意，定期更新和维护数据存储库对于保持信息的准确性和相关性至关重要。

1. **解析和提取**-数据摄取后，应解析数据以提取有意义的内容。使用可以处理各种数据格式（例如 HTML、JSON 或纯文本）的解析器。解析器将原始数据转换为结构化表单。此过程便于在后续阶段更轻松地进行数据操作和分析。

1. 分@@ **块策略** — 将数据分成可管理的部分或*块*。此步骤对于高效检索和处理至关重要。分块策略包括但不限于以下内容：
   + **基于令牌的标准分块** — 根据特定数量的令牌将文本拆分为固定大小的片段。这是最基本的分块策略，但它有助于保持统一的区块长度。
   + **分层分块**-将内容组织成层次结构（例如章节、章节或段落），以保持上下文关系。这种策略增强了模型对数据结构的理解。
   + **语义分块** — 根据语义连贯性对文本进行分段。确保每个区块都代表一个完整的想法或主题。这种策略可以提高检索到的信息的相关性。

1. **嵌入模型选择** — 矢量数据库存储*嵌*入，嵌入是保留其含义和上下文的大块文本的数字表示形式。嵌入是机器学习模型可以理解和比较以执行语义搜索的一种格式。选择合适的嵌入模型对于捕捉数据块的语义本质至关重要。选择符合您特定领域需求的模型，这些模型可以生成准确反映内容含义的嵌入内容。为您的用例选择最佳的嵌入模型可以提高相关性和上下文准确性。

1. **索引和搜索算法**-在针对相似性搜索进行了优化的矢量数据库中对嵌入进行索引。采用可有效处理高维数据并支持快速检索相关信息的搜索算法。诸如近似最近邻 (ANN) 搜索之类的技术可以在不影响准确性的前提下显著提高检索速度。

RAG 管道本质上很复杂。它们需要多个阶段、不同的集成水平和高度的专业知识才能进行有效的设计。如果实施得当，它们可以显著提高生成式 AI 解决方案的性能和准确性。但是，维护这些系统需要大量资源，需要持续监控、优化和扩展。这种复杂性催生了一种专门的*RAGOps*方法来有效运营和管理 RAG 管道，以提高长期可靠性和有效性。

有关 RAG 的更多信息 AWS，请参阅以下资源：
+ [检索增强生成选项和架构 AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/retrieval-augmented-generation-options/introduction.html)（AWS 规范性指导）
+ 为 [RAG 用例选择 AWS 矢量数据库](https://docs.aws.amazon.com/prescriptive-guidance/latest/choosing-an-aws-vector-database-for-rag-use-cases/introduction.html)（AWS 规范性指导）
+ [使用 Terraform 和 Amazon AWS Bedrock（规范性指南）部署 RAG 用例](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-rag-use-case-on-aws.html)AWS 

## 微调和专业培训
<a name="lifecycle-fine-tuning"></a>

微调可以采取两种不同的形式：*域微调和*任务*微调*。在调整预训练模型时，每种方法都有不同的用途。无监督的领域微调涉及在特定领域文本上对模型进行进一步训练，以帮助其更好地理解特定领域或行业所特有的语言、术语和上下文。例如，你可以根据一系列内部文章和行话对特定媒体的法学硕士进行微调，以反映公司的语气和专业词汇。

相比之下，监督式任务微调侧重于教导模型执行特定功能或输出格式。例如，你可以教它回答客户的疑问、总结法律文件或提取结构化数据。这通常需要准备一个带有标签的数据集，其中包含目标任务的输入和所需输出的示例。

这两种方法都需要仔细收集和整理微调数据。为了进行任务微调，数据集会被明确标记。对于域名微调，您可以使用未加标签的文本来改善相关上下文中的一般语言理解。无论采用哪种方法，数据质量都至关重要。干净、具有代表性且大小合适的数据集对于维护和增强模型的性能至关重要。通常，微调数据集比用于初始预训练的数据集小得多，但必须经过深思熟虑的选择，以确保有效的模型适应。

微调的另一种方法是*模型蒸馏*，这种技术涉及训练一个更小、更专业的模型，以复制更大、更通用的模型的性能。*模型蒸馏不是对现有的法学硕士进行微调，而是通过在原始的、更复杂的模型（教师）生成的输出上训练轻量级模型（*学生*）来传授知识。*当计算效率是优先考虑时，这种方法特别有用，因为提炼后的模型需要更少的资源，同时还能保持特定任务的性能。

模型提炼不需要大量的特定领域的训练数据，而是依赖于合成数据集或教师生成的数据集。复杂模型生成了高质量的示例，供轻量级模型学习。这减轻了整理专有数据的负担，但仍需要仔细选择多样且公正的培训示例，以保持概括能力。此外，蒸馏可以帮助降低与数据隐私相关的风险，因为您可以根据受保护的数据训练轻量级模型，而无需直接暴露敏感记录。

也就是说，大多数组织不太可能进行微调或提炼，因为对于他们的用例来说，这通常是不必要的，并且会带来额外的运营和技术复杂性。使用预先训练的基础模型可以有效地满足许多业务需求，有时还需要通过及时的工程设计或诸如RAG之类的工具进行轻度定制。微调需要在技术能力、数据管理和模型治理方面进行大量投资。这使得它更适合高度专业化或大规模的企业应用程序，只要这样做是合理的。

## 评估数据集
<a name="lifecycle-evaluation"></a>

在为生成式 AI 解决方案构建*评估数据集*时，制定稳健的数据策略至关重要。这些评估数据集可作为评估模型性能的基准。它们应该以可靠*的地面实况数据*为基础，这些数据已知是准确、经过验证且能代表现实世界结果的数据。例如，地面实况数据可能是您从训练或微调数据集中隐瞒的真实数据。地面实况数据可能来自多个来源，每个来源都有其自身的挑战。

合成数据生成提供了一种可扩展的方法来创建受控数据集，以便在不暴露敏感信息的情况下测试特定的模型功能。但是，其有效性取决于它在多大程度上复制真实的地面真相分布。

或者，手动策划的数据集（通常称为*黄金数据集*）包含经过严格验证的问答对或带有标签的示例。这些数据集可以作为高质量的地面实况数据，用于稳健的模型评估。但是，编译这些数据集既耗时又耗费资源。将实际的客户互动纳入评估数据可以进一步增强实况数据的相关性和覆盖范围，尽管这需要严格的隐私保护和监管合规（例如GDPR和CCPA）。

全面的数据策略应平衡这些方法。为了有效地评估生成式人工智能模型，请考虑数据质量、代表性、道德考虑因素以及与业务目标的一致性等因素。有关更多信息，请参阅 [Amazon 基岩评估](https://aws.amazon.com/bedrock/evaluations/)。

## 用户生成的数据和反馈回路
<a name="lifecycle-feedback-loops"></a>

生成式 AI 系统部署后，它就会开始产生输出并与用户互动。这些互动本身就成为了宝贵的数据来源。用户生成的数据包括用户问题和提示、模型的回答以及用户提供的任何明确反馈（例如评分）。企业应将其视为生成式人工智能数据生命周期的一部分，并将其反馈到监控和改进流程中。重要的是，用户生成的数据可以整合到您的实况数据集中。随着时间的推移，这有助于进一步优化提示并提高应用程序的整体性能。另一个关键原因是要随着时间的推移管理模型漂移和性能。实际使用后，模型可能会开始偏离其训练域。这方面的例子包括查询中出现的新俚语，或者用户询问有关训练数据中没有的新兴话题的问题。监视这些实时数据可以揭示*数据偏移*，即输入分布发生偏移，这可能会降低模型的准确性。

为了解决这个问题，组织通过捕获用户互动并定期根据最近的样本重新训练或微调模型来建立反馈循环。有时，您只需使用反馈来调整提示和检索数据。例如，如果内部聊天机器人助手持续对新发布的产品的答案产生幻觉，则团队可能会收集那些失败的问答对，并将正确的信息作为额外的训练或检索数据包括在内。

在某些情况下，通过*人工反馈进行强化学习（RLHF）*用于在训练后或微调阶段进一步调整法学硕士。它可以帮助模型产生更好地反映人类偏好和价值观的响应。强化学习 (RL) 技术训练软件做出能够最大限度地提高奖励的决策，从而使结果更加准确。RLHF 在奖励功能中加入了人工反馈，因此 ML 模型可以执行更符合人类目标、愿望和需求的任务。有关在 Amazon AI 中使用 RLHF 的更多信息，请参阅 A SageMaker I 博客上的 AI 博客上的 “[在 SageMaker亚马逊上 AWS 使用 RLHF 改善您的 LLMs ](https://aws.amazon.com/blogs/machine-learning/improving-your-llms-with-rlhf-on-amazon-sagemaker/)体验”。

即使没有正式的RLHF，一种更简单的方法是持续手动审查一小部分模型输出，类似于质量保证。关键在于，持续监控、可观察性和学习都内置在流程中。有关如何收集和存储来自生成式 AI 应用程序的人工反馈的更多信息 AWS，请参阅 AWS 解决方案库 AWS中的 [Chatbot 用户反馈和分析指南](https://aws.amazon.com/solutions/guidance/chatbot-user-feedback-and-analytics-on-aws/)。

为了抢占先机或解决漂移问题，企业需要规划持续的模型更新，这种更新可以采取多种形式。一种方法是安排定期微调或持续的预训练。例如，您可以每月使用最新的内部数据、支持案例或新闻文章更新模型。在持续的预训练过程中，会根据其他数据对预训练的语言模型进行进一步训练，以提高其性能，尤其是在特定领域或任务中。此过程包括将模型暴露给新的、未加标签的文本数据，使其无需从头开始即可完善理解并适应新信息。为了帮助完成这个可能很复杂的过程，Amazon Bedrock 允许您在完全安全的托管环境中进行微调和持续的预训练。有关更多信息，请参阅新闻博客上的 “[使用微调和持续的预训练”，使用您自己的数据在 Amazon Bedrock 中自定义 Amazon Bedrock 中的 AWS 模型](https://aws.amazon.com/blogs/aws/customize-models-in-amazon-bedrock-with-your-own-data-using-fine-tuning-and-continued-pre-training/)。

在将 off-the-shelf模型与 RAG 配合使用的场景中，您可以依赖云 AI 服务，例如 Amazon Bedrock。这些服务在发布时会定期提供型号升级，并将它们添加到可用目录中。这可以帮助您更新解决方案以使用这些基础模型的最新版本。