基于人类反馈的强化学习 (RLHF) 使用收集的人类反馈来调整模型。如果模型的输出较为复杂且难以描述,则建议使用 RLHF。人类反馈采用在不同输出选项之间进行选择的形式。这些选项提供比带标签的提示(由监督式微调使用)更好的数据来对生成难以描述的输出的模型进行调优。如果模型的输出难以定义,请考虑使用监督式微调来调优文本模型。
本页面详细介绍如何使用 RLHF 调整来调整文本模型。您可以了解哪些文本模型支持 RLHF 调整、如何创建数据集,以及如何使用 RLHF 调整来调整文本模型。此外,您还将了解如何查看和加载使用 RLHF 调优方法进行调优的模型。
如需详细了解 Vertex AI 中的 RLHF 调优,请参阅以下博文:使用 Vertex AI 进行 RLHF 调优。
RLHF 模型调优工作流
Vertex AI 上的 RLHF 模型调整工作流包括以下步骤:
- 准备人类偏好数据集。
- 准备提示数据集。
- 将数据集上传到 Cloud Storage 存储桶。它们无需位于同一 Cloud Storage 存储桶。
- 创建 RLHF 模型调优作业。
模型调整完成后,调整后的模型会部署到 Vertex AI 端点。端点的名称与调整后模型的名称相同。如果您想要创建新提示,则可以在 Vertex AI Studio 中选择调优后的模型。
支持的模型
以下文本模型支持使用 Vertex AI 上基于人类反馈的强化学习进行调优:
- 文本生成基础模型
text-bison@002
。如需了解详情,请参阅文本生成模型。 t5-small
、t5-large
、t5-xl
和t5-xxl
Flan 文本到文本迁移 Transformer (Flan-T5) 模型。Flan-T5 模型可以进行微调,以执行文本分类、语言翻译和问答等任务。如需了解详情,请参阅 Flan-T5 检查点。
以下文本模型支持将 RLHF 调优作为自行管理的 Vertex AI Pipelines 作业。
- Llama 2,可通过 Vertex AI Model Garden 获取。如需了解详情,请参阅示例笔记本。 由于此方法较为复杂,因此我们建议您先试用 Vertex AI 上的 RLHF。
代码模型不支持 RLHF 调优。
准备 RLHF 调整数据集
RLHF 调整要求您准备两个数据集和一个可选数据集。所有数据集均采用 JSON 行 (JSONL) 格式,且需要上传到 Cloud Storage 存储桶。用于调整文本生成模型的数据集格式与用于调整文本聊天模型的数据集格式不同。
提示数据集
包含未加标签的提示的数据集。提示可以是来自偏好数据集的提示,也可以是不同的提示。提示数据集中的每一行都包含以下字段:
text-bison 数据集
文本生成数据集包含一个字段:
input_text
- 包含提示的必填字段。
示例
{
"input_text": "Create a description for Plantation Palms."
}
chat-bison 数据集
聊天生成数据集包含两个字段:
messages
- 一组作者-内容对。author
字段指消息的作者,并交替设置为user
和assistant
。content
字段是消息的内容。content
不能为空,并且第一个和最后一个author
必须设置为user
。context
-(可选)模型在响应提示时使用的其他上下文。
示例
{
"context": "You are a pirate dog named Captain Barktholomew.",
"messages": [
{
"author": "user",
"content": "Hi"
},
{
"author": "assistant",
"content": "Argh! What brings ye to my ship?"
},
{
"author": "user",
"content": "What's your name?"
},
]
}
如需了解详情,您可以下载并查看此示例提示数据集。
人类偏好数据集
人类偏好数据集包含人类的偏好。人类偏好数据集中的每一行都记录了呈现给人类的两个选项之间的偏好。我们建议人类偏好数据集包含 5,000 到 10,000 个样本。人类偏好数据集中的每一行都包含一个示例偏好,其中包含要调整的模型的提示数据集字段以及以下字段:
candidate_0
和candidate_1
- 每个字段都包含两个响应。人类通过选择他们偏好的两个响应中的一个来帮助调优模型。choice
- 包含一个整数,即0
或1
,用于表示人类偏好哪个候选回复。0
表示人类选择candidate_0
,1
表示人类选择candidate_1
。
人类偏好数据集中的行示例如下:
{"input_text": "Create a description for Plantation Palms.", "candidate_0":
"Enjoy some fun in the sun at Gulf Shores.", "candidate_1": "A Tranquil Oasis of
Natural Beauty.", "choice": 0}
如需了解详情,您可以下载并查看此示例人类偏好数据集。
评估数据集(可选)
该数据集包含模型调整后用于预测的未加标签的提示。如果提供了评估数据集,则系统会在调整作业完成后对其执行推理。评估数据集的格式与提示数据集的格式相同。但是,评估数据集中的提示必须不同于提示数据集中的提示。
如需了解详情,您可以下载并查看此示例评估数据集。
奖励模型
人类偏好数据集用于训练奖励模型。Vertex AI 会在 RLHF 调整期间创建并使用奖励模型。奖励模型是在客户租户项目的专用 Cloud Storage 存储桶中创建的。客户租户项目是客户独有的内部项目。您无法访问奖励模型,调整作业完成后,该模型会被删除。如需了解详情,请参阅租户项目。
与生产数据保持一致
数据集中的样本应与您的预期生产流量相匹配。如果您的数据集包含特定的格式、关键字、说明或信息,则生产数据应以相同方式设置格式并包含相同的说明。
例如,如果数据集中的样本包含 "question:"
和 "context:"
,则生产流量的格式也应设置为包含 "question:"
和 "context:"
,其顺序与在数据集样本中的显示顺序相同。如果排除了语境,则模型将无法识别该模式,即使确切的问题包含在数据集内的样本中也是如此。
将调优数据集上传到 Cloud Storage
若要运行调优作业,您需要将一个或多个数据集上传到 Cloud Storage 存储桶。您可以创建新的 Cloud Storage 存储桶,也可以使用现有的存储桶来存储数据集文件。存储桶的区域无关紧要,但我们建议您使用您计划用于对模型调优的同一 Google Cloud 项目中的存储桶。
存储桶准备就绪后,将数据集文件上传到存储桶。
创建 RLHF 调整作业
您可以使用 Google Cloud 控制台或 Python 版 Vertex AI SDK 执行 RLHF 调优。
Python 版 Vertex AI SDK
如需了解如何使用 Python 版 Vertex AI SDK 通过 RLHF 对模型进行调优,请使用 Colab、GitHub 或 Vertex AI Workbench 打开并运行以下笔记本:
Google Cloud 控制台
如需使用 RLHF 调整在 Google Cloud 控制台中调整文本模型,请执行以下步骤:
- 在 Google Cloud 控制台的“Vertex AI”部分,进入 Vertex AI Studio 页面。
- 点击调整并提炼标签页。
- 点击 创建经调整的模型。
- 选择基于人类反馈的强化学习 (RLHF)。
- 配置模型详情:
- 调整模型名称:输入调整后模型的名称。
- 基本模型:选择要调整的基础模型。
- 区域:输入用于调优模型的区域。支持的区域为:
us-central1
:使用 8 个 Nvidia A100 80GB GPU。europe-west4
:使用 64 个 TPU v3 Pod 核心。
- 输出目录:输入对模型调优时用于存储工件的 Cloud Storage 位置。
- 展开高级选项以配置高级设置。
- 点击继续
- 在人类偏好数据集中,上传或选择用于创建奖励模型的人类偏好数据集。如果要上传数据集文件,请选择 将 JSONL 文件上传到 Cloud Storage。如果您的数据集文件已在 Cloud Storage 存储桶中,请选择 Cloud Storage 上的现有 JSONL 文件。
上传 JSONL 文件
- 在选择 JSONL 文件中,点击浏览并选择数据集文件。
- 在数据集位置中,点击浏览并选择要存储数据集文件的 Cloud Storage 存储桶。
使用现有的 JSONL 文件
在 Cloud Storage 文件路径中,点击浏览,然后选择数据集文件所在的 Cloud Storage 存储桶。
- 在提示数据集中,如果要上传数据集文件,请选择
上传 JSONL 文件
- 在选择 JSONL 文件中,点击浏览并选择数据集文件。
- 在数据集位置中,点击浏览并选择要存储数据集文件的 Cloud Storage 存储桶。
使用现有的 JSONL 文件
在 Cloud Storage 文件路径中,点击浏览,然后选择数据集文件所在的 Cloud Storage 存储桶。
将 JSONL 文件上传到 Cloud Storage。否则,如果您的提示数据集文件已在 Cloud Storage 存储桶中,请选择 Cloud Storage 上的现有 JSONL 文件。
- (可选)如需评估调整后的模型,请执行以下操作:
- 点击启用模型评估。
- 在评估数据集中,点击浏览。
- 导航到包含评估数据集的 Cloud Storage 存储桶,然后选择评估数据集。
- 点击开始调整。
检查调整操作状态
如需查看模型调整作业的状态,请在 Google Cloud 控制台中转到 Vertex AI Pipelines 页面。本页面介绍了文本和代码模型调整作业的状态。
或者,您可以为 Vertex AI Pipelines 配置电子邮件通知,以便在模型调整作业完成或失败时收到电子邮件通知。
后续步骤
- 了解如何使用 Vertex AI Pipelines 为 Llama 2 运行自行管理的 RLHF 调优作业。
- 了解 Responsible AI 最佳实践和 Vertex AI 的安全过滤条件。
- 了解如何为端点启用数据访问审核日志。
- 了解如何评估调整后的模型。
- 如需详细了解 Vertex AI 中的 RLHF 调优,请参阅以下博文:使用 Vertex AI 进行 RLHF 调优。