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

本文档介绍了如何为 Gemini 模型定义监督式微调数据集。您可以对文本图片音频文档数据类型进行调优。

监督式微调数据集简介

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

训练数据集

如需对模型调优,您需要提供训练数据集。为获得最佳结果,我们建议您先提供 100 个示例。您可以根据需要扩展到数千个示例。数据集的质量远比数量重要。

限制:

  • 每个示例的输入和输出词元数上限:32,000
  • 训练数据集的文件大小上限:对于 JSONL 不超过 1 GB。

验证数据集

我们强烈建议您提供验证数据集。验证数据集可帮助您衡量调优作业的效果。

限制:

  • 每个示例的输入和输出词元数上限:32,000
  • 验证数据集中的示例数上限:256
  • 训练数据集的文件大小上限:对于 JSONL 不超过 1 GB。

数据集格式

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

gemini-1.5-progemini-1.5-flash 的数据集示例

{
  "systemInstruction": {
    "role": string,
    "parts": [
      {
        "text": string
      }
    ]
  },
  "contents": [
    {
      "role": string,
      "parts": [
        {
          // Union field data can be only one of the following:
          "text": string,
          "fileData": {
            "mimeType": string,
            "fileUri": string
          }
        }
      ]
    }
  ]
}

参数

该示例包含具有以下参数的数据:

参数

contents

必需:Content

与模型的当前对话内容。

对于单轮询问,这是一个实例。对于多轮询问,此字段是重复字段,包含对话记录和最新请求。

systemInstruction

可选:Content

适用于 gemini-1.5-flashgemini-1.5-pro

有关引导模型获得更好性能的说明。例如,“回答尽可能简明扼要”或“请勿在回答中使用技术词汇”。

text 字符串会计入 token 限制。

systemInstructionrole 字段会被忽略,不会影响模型的性能。

目录

包含消息多部分内容的基本结构化数据类型。

此类包含两个主要属性:rolepartsrole 属性表示生成内容的个人,而 parts 属性包含多个元素,每个元素表示消息中的一段数据。

参数

role

可选:string

创建消息的实体的身份。支持以下值:

  • user:表示消息是由真人发送的,通常是用户生成的消息。
  • model:表示消息是由模型生成的。

model 值用于在多轮对话期间将来自模型的消息插入到对话中。

对于非多轮对话,此字段可以留空或未设置。

parts

part

构成单条消息的有序部分的列表。不同的部分可能具有不同的 IANA MIME 类型

如需了解输入限制(例如 token 或图片数量上限),请参阅 Google 模型页面上的模型规范部分。

如需计算请求中的 token 数量,请参阅获取 token 数

部件

包含属于多部分 Content 消息一部分的媒体的数据类型。

参数

text

可选:string

文本提示或代码段。

fileData

可选:fileData

存储在文件中的数据。

Gemini 1.0 Pro 的数据集示例

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

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

content 字段是消息的 content

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

{
  "messages": [
    {
      "role": string,
      "content": string
    }
  ]
}

与生产数据保持一致

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

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

将调优数据集上传到 Cloud Storage

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

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

遵循提示设计最佳实践

获得训练数据集并训练完模型后,接下来便是设计问题。请务必在训练数据集中遵循提示设计最佳实践,详细说明要执行的任务以及输出应有的样子。

后续步骤