视觉微调使用图像输入,用于 监督微调 以提升模型对图像输入的理解能力。本指南将带您了解这类 SFT 的子集,并概述使用图像输入进行微调时的一些重要注意事项。
| 工作原理 | 适用场景 | 适用场景 |
|---|---|---|
提供用于监督微调的图像输入,以提升模型对图像输入的理解能力。 |
|
|
数据格式
正如您可以 发送一个或多个图像输入并基于它们创建模型响应,您可以在 JSONL 训练数据文件中包含这些相同的消息类型。图片可以通过 HTTP URL 或包含 Base64 编码图片的 data URL 提供。
以下是 JSONL 文件中某行图像消息的示例。下面展开显示了该 JSON 对象以便于阅读,但在实际的数据文件中,此 JSON 通常显示为单行:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
"messages": [
{
"role": "system",
"content": "You are an assistant that identifies and describes artworks."
},
{
"role": "user",
"content": "Describe this artwork."
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://api.nga.gov/iiif/a2e6da57-3cd1-4235-b20e-95dcaefed6c8/full/!800,800/0/default.jpg"
}
}
]
},
{
"role": "assistant",
"content": "This appears to be a traditional painted artwork with a central human subject."
}
]
}上传视觉微调的训练数据遵循 此处描述的相同流程.
图像数据要求
尺寸
- 您的训练文件最多可包含 50,000 个含有图像的示例(不包含纯文本示例)。
- 每个示例最多可包含 10 张图像。
- 每张图像最大不得超过 10 MB。
格式
- 图像必须为 JPEG、PNG 或 WEBP 格式。
- 您的图像必须处于 RGB 或 RGBA 图像模式。
- 您不能将图像作为包含以下内容的消息的输出:
assistantrole.
内容审核政策
我们会在训练前扫描您的图像,以确保其符合我们的使用政策。这可能会导致微调开始前的文件验证出现延迟。
包含以下内容的图像将从您的数据集中被排除,且不会用于训练:
- 人物
- 人脸
- 儿童
- 验证码
如果你的图片被跳过该怎么办
你的图片可能会因为以下原因在训练期间被跳过:
- 包含验证码, 包含人物, 包含人脸, 包含儿童
- 请移除该图片。目前,我们无法使用包含这些实体的图片来微调模型。
- 无法访问的 URL
- 请确保你的图片 URL 是可公开访问的。
- 图片过大
- 请确保你的图片符合我们的 数据集大小限制.
- 无效的图片格式
- 请确保你的图片符合我们的 数据集格式.
最佳实践
降低训练成本
如果你将一张图片的 detail 参数设置为 low,图片将被缩放至 512x512 像素,并且无论其原始尺寸多大,都仅表示为 85 个 token。这将降低训练成本。 点击此处了解更多信息。
1
2
3
4
5
6
7
{
"type": "image_url",
"image_url": {
"url": "https://api.nga.gov/iiif/a2e6da57-3cd1-4235-b20e-95dcaefed6c8/full/!800,800/0/default.jpg",
"detail": "low"
}
}控制图片质量
若要控制图像理解的精确度,请为每张图片设置 detail 的 image_url to low, high, or auto 参数。这也会影响模型在训练期间每张图片看到的 token 数量,并会影响训练成本。 点击此处了解更多信息.
安全检查
在生产环境中发布之前,请审查并遵循以下安全信息。
后续步骤
现在你已经了解了视觉微调的基础知识,不妨也探索一下这些其他方法。
通过为样本输入提供正确输出来微调模型。
使用直接偏好优化 (DPO) 微调模型。
通过对其输出进行评分来微调推理模型。