使用偏好调优对 Gemini 模型进行调优

本文档介绍如何对 Gemini 模型执行偏好调优。

准备工作

在开始之前,您必须按照为 Gemini 模型准备偏好调优数据中的说明准备数据集。

创建调优作业

控制台

如需使用 Google Cloud 控制台配置偏好设置调优,请执行以下步骤:

  1. 在 Google Cloud 控制台的 Vertex AI 部分中,进入 Vertex AI Studio 页面。

    进入 Vertex AI Studio

  2. 点击创建经调整的模型

  3. 选择偏好设置调优

  4. 模型详情下,配置以下内容:

    1. 已调优模型的名称字段中,输入新的调优后模型的名称,最多 128 个字符。
    2. 基本模型字段中,选择要调优的基础模型。
    3. 区域下拉字段中,选择运行流水线调优作业以及部署调优后模型的区域。
  5. 调优设置下,配置以下内容:

    1. 周期数字段中,输入要为模型调优运行的步数。
    2. 适配器大小字段中,输入要用于模型调优的适配器大小。
    3. 可选:在 Beta 字段中,输入所需的 Beta 值。Beta 是一个系数,用于控制调优后的模型与基准的贴合程度。
    4. 学习速率调节系数字段中,输入每次迭代时的步长。默认值为 1。 .
  6. 可选:如需停用中间检查点并仅使用最新的检查点,请点击仅导出最后一个检查点切换开关。

  7. 点击继续

    调优数据集页面随即会打开。

  8. 如需上传数据集文件,请选择以下选项之一:

    1. 如果您尚未上传数据集,请选中将文件上传到 Cloud Storage 单选按钮。
    2. 选择 JSONL 文件字段中,点击浏览,然后选择数据集文件。
    3. 数据集位置字段中,点击浏览并选择要存储数据集文件的 Cloud Storage 存储桶。
    4. 如果您的数据集文件已在 Cloud Storage 存储桶中,请选择 Cloud Storage 上的现有文件单选按钮。
    5. Cloud Storage 文件路径字段中,点击浏览,然后选��数据集文件所在的 Cloud Storage 存储桶。
  9. (可选)如需在训练期间获取验证指标,请点击启用模型验证切换开关。

    1. 验证数据集文件中,输入验证数据集的 Cloud Storage 路径。
  10. 点击开始调优

    您的新模型会显示在“调优和蒸馏”页面上的托管式调优部分下。模型调优完成后,状态会显示成功

REST

如需创建模型调优作业,请使用 tuningJobs.create 方法发送 POST 请求。某些参数只受部分模型支持。确保仅包含您要调优的模型的适用参数。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的项目 ID。
  • TUNING_JOB_REGION:运行调优作业的区域。这也是上传调优后模型的默认区域。
  • BASE_MODEL:要调整的基础模型的名称。
  • TRAINING_DATASET_URI:训练数据集的 Cloud Storage URI。数据集必须采用 JSONL 文件格式。为获得最佳效果,请提供至少 100 到 500 个样本。如需了解详情,请参阅监督式调优数据集简介
  • VALIDATION_DATASET_URI可选:验证数据集文件的 Cloud Storage URI。
  • EPOCH_COUNT可选:在训练期间,模型完整通过整个训练数据集的次数。如果不设置,则使用预填充的建议值
  • BETA可选:用于控制调优后模型与基准模型的一致程度的系数。
  • ADAPTER_SIZE可选:用于调优作业的适配器大小。 适配器大小会影响调优作业的可训练参数数量。适配器越大,意味着模型可以学习更复杂的任务,但需要更大的训练数据集和更长的训练时间。
  • LEARNING_RATE_MULTIPLIER:可选:要应用于建议的学习速率的调节系数。如果不设置,则使用建议的值
  • EXPORT_LAST_CHECKPOINT_ONLY(可选):设置为 true 可仅使用最新的检查点。
  • TUNED_MODEL_DISPLAYNAME可选:调优后模型的显示名称。如果未设置,则会生成随机名称。
  • KMS_KEY_NAME(可选):用于保护资源的客户管理的加密密钥的 Cloud KMS 资源标识符。密钥的格式为 projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key。密钥需要与计算资源创建位置处于同一区域。如需了解详情,请参阅客户管理的加密密钥 (CMEK)
  • SERVICE_ACCOUNT(可选):运行 tuningJob 工作负载所用的服务账号。如果未指定,则使用项目中的 Vertex AI Secure Fine-Tuning Service Agent。请参阅 Tuning Service Agent。如果您计划使用客户管理的服务账号,则必须向该服务账号授予 roles/aiplatform.tuningServiceAgent 角色。此外,还要向客户管理的服务账号授予 Tuning Service Agent roles/iam.serviceAccountTokenCreator 角色。

HTTP 方法和网址:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

请求 JSON 正文:

{
  "baseModel": "BASE_MODEL",
  "preferenceOptimizationSpec" : {
      "trainingDatasetUri": "TRAINING_DATASET_URI",
      "validationDatasetUri": "VALIDATION_DATASET_URI",
      "hyperParameters": {
          "epochCount": "EPOCH_COUNT",
          "beta": "BETA",
          "adapterSize": "ADAPTER_SIZE",
          "learningRateMultiplier": "LEARNING_RATE_MULTIPLIER"
      },
      "exportLastCheckpointOnly": EXPORT_LAST_CHECKPOINT_ONLY,
  },
  "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME",
  "encryptionSpec": {
    "kmsKeyName": "KMS_KEY_NAME"
  },
  "serviceAccount": "SERVICE_ACCOUNT"
}

如需发送您的请求,请展开以下选项之一:

示例 curl 命令

PROJECT_ID=myproject
LOCATION=global
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \
-d \
$'{
   "baseModel": "${BASE_MODEL}",
   "preferenceOptimizationSpec" : {
      "trainingDatasetUri": "gs://mybucket/preference_tuning/data/train_data.jsonl",
      "validationDatasetUri": "gs://mybucket/preference_tuning/data/validation_data.jsonl"
   },
   "tunedModelDisplayName": "tuned_gemini"
}'

调整超参数

建议您提交第一个调优作业,而无需更改超参数。默认值是基于基准测试结果的建议值,可实现最佳模型输出质量。

  • 周期数:在训练期间,模型完整通过整个训练数据集的次数。Vertex AI 会根据训练数据集大小自动调整默认值。此值基于基准测试结果,可优化模型输出质量。
  • Beta:用于控制调优后的模型与基准模型的一致程度的系数。较低的 Beta 值意味着在更新时会更积极地倾向于首选回答。建议的范围为 0.01 到 0.5(含边界值)。如果 Beta 值为 0,模型将停止学习。
  • 适配器大小:用于调优作业的适配器大小。适配器大小会影响调优作业的可训练参数数量。适配器越大,意味着模型可以学习更复杂的任务,但需要更大的训练数据集和更长的训练时间。
  • 学习速率调节系数:要应用于建议的学习速率的调节系数。您可以增加该值以加快收敛速度,也可以减小该值以避免过拟合。

查看或取消调优作业

如需列出调优作业、查看调优作业详情、取消调优作业或删除调优后的模型,请参阅监督式微调文档中的以下部分:

模型调优指标

模型调优作业会自动收集以下调优指标:

  • /preference_optimization_train_loss:一个训练步长中调优数据集的偏好损失。

模型验证指标

如果提供了验证数据,模型调优作业会自动收集以下验证指标:

  • /eval_total_loss:验证步骤中验证数据集的偏好损失。

调优作业开始运行后,指标可视化即可使用。 随着调优的进行,它们会实时更新。如果您在创建调优作业时未指定验证数据集,则系统只提供调优指标的可视化内容。

后续步骤