Gemini 模型的强化学习微调作业由三个主要构建块配置:调优数据集、控制训练过程的超参数,以及为每个模型回答评分的一个或多个奖励函数。该服务还会公开指标和作业状态以供监控。
如需查看创建调优作业、检索调优模型和运行推理的端到端示例,请参阅Google Cloud 控制台快速入门或 API 快速入门。
准备调优数据集
强化学习微调作业由训练数据集和可选验证数据集驱动。每个数据集都是存储在 Cloud Storage 中的 JSONL 文件。每一行都是一个调优样本,其中包含 systemInstruction、contents(模型在调优期间响应的提示)以及一个 references 映射,该映射包含奖励函数为模型响应评分所需的任何元数据(例如,标准答案、评分标准或单元测试输入)。
强化学习微调支持多模态提示词(文本、图片、音频和视频),但受每个文件和每个提示词的限制。
如需查看完整的数据集架构、特定于模态的数据集限制,以及如何填充 references 以进行奖励计算的示例,请参阅调优数据集页面。
配置超参数
超参数控制在强化学习微调期间如何更新模型,包括生成期间使用的思考级别、批次大小、每个提示的样本数、学习速率乘数、周期数、评估和检查点间隔、最大输出长度以及 LoRA 适配器大小。默认值适用于大多数工作负载,但您可以在创建调优作业时替换其中任何一个。
如需了解默认值、允许的范围、依赖于数据集大小的规则和推荐的组合,请参阅超参数页面。
定义奖励函数
奖励函数会在调优期间为每个模型回答进行数值评分。奖励信号是强化学习的优化目标,因此其质量直接决定了调优质量。所有奖励都会被限制在 [-1, 1] 范围内。
强化学习微调支持以下奖励类型:
- 字符串匹配奖励:将模型回答(或其解析后的子字符串)与
references中提供的标准答案值进行比较。 - 基于 Gemini 的自动评分器奖励:使用 LLM-as-a-Judge 为每个回答评分,可选择是否解析回答。
- 代码执行奖励:在代管式沙盒环境中运行自定义 Python 评估代码,以返回标量奖励。
- Cloud Run 奖励:调用用户管理的 Cloud Run 服务,该服务会返回标量奖励,以实现完全可自定义的评分逻辑。
- 复合奖励:最多可将上述 16 种奖励类型与每个评分器的权重相结合。
在启动调优作业之前,请在 Google Cloud 控制台中或使用 ValidateReinforcementTuningReward API 方法验证奖励配置。
如需详细了解配置架构、代码示例、IAM 设置和奖励设计最佳实践,请参阅奖励函数页面。
监控作业状态和指标
调优作业启动后,您可以跟踪其生命周期状态(例如 JOB_STATE_PENDING、JOB_STATE_RUNNING、JOB_STATE_SUCCEEDED、JOB_STATE_FAILED、JOB_STATE_CANCELLING、JOB_STATE_CANCELLED),并通过以下两种方式检查调优进度:
- 以编程方式:发出
GetTuningJob请求,以检索作业的状态、tunedModel、错误详细信息和元数据。如需查看curl命令示例,请参阅 API 快速入门。 - 直观:在 Google Cloud 控制台中的模型 > 调优下打开作业的监控页面,其中会显示底层调优实验,并附有每个步骤发出的训练和评估指标(奖励、生成长度、奖励延迟时间、复合奖励的每项奖励细分等)的图表。
强化学习微调还会按照 checkpointInterval 设置的频率生成中间检查点,您可以在作业完成之前独立部署和评估这些检查点。
如需查看发出的指标、每种奖励类型的指标、如何解读这些指标以及如何访问检查点的完整列表,请参阅指标和监控页面。