准备数据集 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

准备数据集

在开始模型自定义任务之前,您需要最低限度地准备训练数据集。是否支持验证数据集以及您的训练和验证数据集的格式取决于以下因素。

  • 自定义任务的类型(微调或持续的预训练)。

  • 数据的输入和输出模式。

模型支持微调和持续的预训练数据格式

下表详细显示了每个相应模型支持的微调和持续预训练数据格式:

模型名称 微调:t ext-to-text 微调:T ext-to-image & I mage-to-embeddings 继续预训练:t ext-to-text 微调:单圈消息 微调:多回合消息传递
Amazon Titan Text G1 - Express
Amazon Titan Text G1 - Lite
亚马逊 Titan Titan Text P
Amazon Titan Image Generator G1 V1
Amazon Titan Multimodal Embeddings G1 G1
Anthropic Claude 3 Haiku
Cohere Command
Cohere Command Light
Meta Llama 2 13B
Meta Llama 2 70B

要查看适用于用于自定义不同模型的训练和验证数据集的默认配额,请参阅模型自定义配额

为您的自定义模型准备训练和验证数据集

选择与您的用例相关的选项卡

Fine-tuning: Text-to-text

要对 text-to-text 模型进行微调,请通过创建包含多JSON行的JSONL文件来准备训练和可选的验证数据集。每JSON行都是一个同时包含promptcompletion字段的样本。针对每个令牌使用 6 个字符,作为令牌数量的近似值。格式如下所示。

{"prompt": "<prompt1>", "completion": "<expected generated text>"} {"prompt": "<prompt2>", "completion": "<expected generated text>"} {"prompt": "<prompt3>", "completion": "<expected generated text>"}

以下是问答任务的示例项目:

{"prompt": "what is AWS", "completion": "it's Amazon Web Services"}
Fine-tuning: Text-to-image & Image-to-embeddings

要微调 text-to-image 或 image-to-embedding 模型,请通过创建一个包含多JSON行的JSONL文件来准备训练数据集。不支持验证数据集。每JSON行都是一个示例image-ref,其中包含 Amazon S3 URI caption 表示图像,以及可能作为图像提示的示例。

图像必须PNG采用JPEG或格式。

{"image-ref": "s3://bucket/path/to/image001.png", "caption": "<prompt text>"} {"image-ref": "s3://bucket/path/to/image002.png", "caption": "<prompt text>"} {"image-ref": "s3://bucket/path/to/image003.png", "caption": "<prompt text>"}

以下是示例项目:

{"image-ref": "s3://amzn-s3-demo-bucket/my-pets/cat.png", "caption": "an orange cat with white spots"}

要允许 Amazon Bedrock 访问图像文件,请添加与您在控制台中访问训练和验证文件以及在 S3 中写入输出文件的权限设置或自动设置的 Amazon Bedrock 模型自定义服务角色中的IAM策略相似的策略。您在训练数据集内提供的 Amazon S3 路径必须位于您在策略中指定的文件夹中。

Continued Pre-training: Text-to-text

要对 text-to-text 模型进行持续的预训练,请通过创建包含多JSON行的JSONL文件来准备训练和可选的验证数据集。由于持续预训练涉及未标记的数据,因此每JSON行都是仅包含一个字段的样本。input针对每个令牌使用 6 个字符,作为令牌数量的近似值。格式如下所示。

{"input": "<input text>"} {"input": "<input text>"} {"input": "<input text>"}

以下是训练数据中可能存在的示例项目。

{"input": "AWS stands for Amazon Web Services"}
Fine-tuning: Single-turn messaging

要使用单圈消息格式微调 text-to-text 模型,请通过创建包含多JSON行的JSON文件来准备训练和可选的验证数据集。两个数据文件都必须采用以下JSONL格式。每行以 json 格式指定完整的数据样本;每个数据样本必须格式化为 1 行(删除每个样本中的所有 '\ n')。一行包含多个数据样本或将数据样本拆分为多行是行不通的。

字段

  • system(可选):一个包含系统消息的字符串,用于设置对话的上下文。

  • messages: 一个由消息对象组成的数组,每个对象都包含:

    • role: 要user么是 assistant

    • content: 消息的文字内容

规则

  • messages组必须包含 2 条消息

  • 第一条消息必须role是用户的

  • 最后一条留言中role必须有助手的信息

{"system": "<system message>","messages":[{"role": "user", "content": "<user query>"},{"role": "assistant", "content": "<expected generated text>"}]}

示例

{"system": "You are an helpful assistant.","messages":[{"role": "user", "content": "what is AWS"},{"role": "assistant", "content": "it's Amazon Web Services."}]}
Fine-tuning: Multi-turn messaging

要使用多回合消息格式微调 text-to-text 模型,请通过创建包含多JSON行的JSONL文件来准备训练和可选的验证数据集。两个数据文件都必须采用以下JSONL格式。每行以 json 格式指定完整的数据样本;每个数据样本必须格式化为 1 行(删除每个样本中的所有 '\ n')。一行包含多个数据样本或将数据样本拆分为多行是行不通的。

字段

  • system(可选):一个包含系统消息的字符串,用于设置对话的上下文。

  • messages: 一个由消息对象组成的数组,每个对象都包含:

    • role: 要user么是 assistant

    • content: 消息的文字内容

规则

  • messages组必须包含 2 条消息

  • 第一条消息必须role是用户的

  • 最后一条留言中role必须有助手的信息

  • 消息必须在userassistant角色之间交替出现。

{"system": "<system message>","messages":[{"role": "user", "content": "<user query 1>"},{"role": "assistant", "content": "<expected generated text 1>"}, {"role": "user", "content": "<user query 2>"},{"role": "assistant", "content": "<expected generated text 2>"}]}

示例

{"system": "system message","messages":[{"role": "user", "content": "Hello there."},{"role": "assistant", "content": "Hi, how can I help you?"},{"role": "user", "content": "what are LLMs?"},{"role": "assistant", "content": "LLM means large language model."},]}