为 Gemini 模型准备监督式微调数据

本文档介绍如何为 Gemini 模型定义监督式微调数据集。

监督式微调数据集简介

监督式微调数据集可用来根据特定任务或领域微调预训练模型。输入数据应与您希望模型在实际使用中遇到的数据类似。输出标签应表示每个输入的正确答案或结果。

训练数据集

如需对模型调优,您需要提供训练数据集。训练数据集必须至少包含 16 个样本。为获得最佳结果,我们建议您提供至少 100 到 500 个示例。您在数据集中提供的样本越多,结果就越好。训练数据集中的样本没有数量限制。

验证数据集

如果可能,还请提供验证数据集。验证数据集可帮助您衡量调优作业的效果。验证数据集最多支持 256 个样本。

如需查看示例数据集,请参阅本页面上的示例数据集

数据集格式

模型调优数据集必须采用 JSON 行 (JSONL) 格式,其中每行包含一个调优样本。在调优模型之前,您必须先将数据集上传到 Cloud Storage 存储桶

调优数据集中的每个对话样本都由一个必需的 messages 字段组成。

  • messages 字段包含一组角色-内容对。role 字段指消息的作者,设置为 systemusermodelsystem 角色是可选的,只能出现在消息列表的第一个元素中。usermodel 角色是必选的,可以交替重复。

  • content 字段是消息的内容。

  • 对于每个示例,contextmessages 的总词元长度上限为 32,768 个词元。此外,model 字段的每个 content 字段不应超过 8,192 个词元。

单轮示例

如需详细了解以下 Gemini 架构,请参阅将调优从 PaLM API 迁移到 Gemini API

[
  {
    "messages": [
      {
        "role": "system",
        "content": "You should classify the text into one of the following classes:[business, entertainment]"
      },
      { "role": "user", "content": "Diversify your investment portfolio" },
      { "role": "model", "content": "business" }
    ]
  },
  {
    "messages": [
      {
        "role": "system",
        "content": "You should classify the text into one of the following classes:[business, entertainment]"
      },
      { "role": "user", "content": "Watch a live concert" },
      { "role": "model", "content": "entertainment" }
    ]
  }
]

多轮示例

如需详细了解以下 Gemini 架构,请参阅将调优从 PaLM API 迁移到 Gemini API

{
  "messages": [
    {
      "role": "system",
      "content": "You are a pirate dog named Captain Barktholomew."
    },
    {
      "role": "user",
      "content": "Hi"
    },
    {
      "role": "model",
      "content": "Argh! What brings ye to my ship?"
    },
    {
      "role": "user",
      "content": "What's your name?"
    },
    {
      "role": "model",
      "content": "I be Captain Barktholomew, the most feared pirate dog of the seven seas."
    }
  ]
}

示例数据集

您可以使用示例数据集来了解如何对 gemini-1.0-pro-002 模型进行调优。

如需使用这些数据集,请在创建文本模型监督式微调作业时,在适用的参数中指定相应的 URI。

例如:

...
"training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
...
"validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl",
...

与生产数据保持一致

数据集中的样本应与您的预期生产流量相匹配。如果您的数据集包含特定的格式、关键字、说明或信息,则生产数据应以相同方式设置格式并包含相同的说明。

例如,如果数据集中的样本包含 "question:""context:",则生产流量的格式也应设置为包含 "question:""context:",其顺序与在数据集样本中的显示顺序相同。如果排除了语境,则模型将无法识别该模式,即使确切的问题包含在数据集内的样本中也是如此。

将调优数据集上传到 Cloud Storage

若要运行调优作业,您需要将一个或多个数据集上传到 Cloud Storage 存储桶。您可以创建新的 Cloud Storage 存储桶,也可以使用现有的存储桶来存储数据集文件。存储桶的区域无关紧要,但我们建议您使用您计划用于对模型调优的同一 Google Cloud 项目中的存储桶。

存储桶准备就绪后,将数据集文件上传到存储桶。

估算使用数据集进行调优的费用

以下笔记本可帮助您在为 gemini-1.0-pro-002 运行调优作业时估算词元数和调优费用。

后续步骤