准备数据集 - Amazon Bedrock

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

准备数据集

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

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

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

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

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

模型名称 微调:t ext-to-text 微调:& Text-to-image Image-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

要查看适用于用于自定义不同模型的训练和验证数据集的默认配额,请参阅 Amazon Bedrock 终端节点中的训练和验证记录配额总和以及中的配额。 AWS 一般参考

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

要为自定义模型准备训练和验证数据集,需要创建.jsonl文件,文件中的每一行都是一个与记录对应的JSON对象。您创建的文件必须符合您选择的自定义方法和模型的格式,并且其中的记录必须符合大小要求。

格式取决于模型的自定义方法以及输入和输出模式。选择与您选择的方法相对应的选项卡,然后按照以下步骤操作:

Fine-tuning: Text-to-text

对于 text-to-text模型,请准备训练和可选的验证数据集。每个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对象都是一个示例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行都是仅包含一个字段的样本。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模型,请准备训练和可选的验证数据集。两个数据文件都必须采用以下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模型进行微调,请准备训练和可选的验证数据集。两个数据文件都必须采用以下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."},]}

选择一个选项卡以查看模型的训练和验证数据集的要求:

Amazon Titan Text Premier
描述 最大值(微调)
批次大小为 1 时输入和输出令牌数总和 4,096
批量大小为 2、3 或 4 时输入和输出令牌的总和 不适用
数据集中每个样本的字符配额 词元配额 x 6
训练数据集文件大小 1 GB
验证数据集文件大小 100 MB
Amazon Titan Text G1 - Express
描述 最大值(继续预训练) 最大值(微调)
批次大小为 1 时输入和输出令牌数总和 4,096 4,096
批量大小为 2、3 或 4 时输入和输出令牌的总和 2,048 2,048
数据集中每个样本的字符配额 词元配额 x 6 词元配额 x 6
训练数据集文件大小 10 GB 1 GB
验证数据集文件大小 100 MB 100 MB
Amazon Titan Text G1 - Lite
描述 最大值(继续预训练) 最大值(微调)
批量大小为 1 或 2 时输入和输出令牌的总和 4,096 4,096
批量大小为 3、4、5 或 6 时输入和输出令牌的总和 2,048 2,048
数据集中每个样本的字符配额 词元配额 x 6 词元配额 x 6
训练数据集文件大小 10 GB 1 GB
验证数据集文件大小 100 MB 100 MB
Amazon Titan Image Generator G1 V1
描述 最小值(微调) 最大值(微调)
训练样本中的文本提示长度,以字符为单位 3 1024
训练数据集中的记录 5 10000
输入图像大小 0 50 MB
输入图像高度(以像素为单位) 512 4,096
输入图像宽度(以像素为单位) 512 4,096
输入图像的总像素数 0 12,582,912
输入图像的纵横比 1:4 4:1
Amazon Titan Multimodal Embeddings G1
描述 最小值(微调) 最大值(微调)
训练样本中的文本提示长度,以字符为单位 0 2,560
训练数据集中的记录 1000 500,000
输入图像大小 0 5MB
输入图像高度(以像素为单位) 128 4096
输入图像宽度(以像素为单位) 128 4096
输入图像的总像素数 0 12,528,912
输入图像的纵横比 1:4 4:1
Cohere Command
描述 最大值(微调)
输入令牌 4,096
输出令牌 2,048
数据集中每个样本的字符配额 词元配额 x 6
训练数据集中的记录 10000
验证数据集中的记录 1000
Meta Llama 2
描述 最大值(微调)
输入令牌 4,096
输出令牌 2,048
数据集中每个样本的字符配额 词元配额 x 6