OpenAI 视觉微调
视觉微调把图像输入用于监督微调(SFT),改善模型对图像的理解。本页介绍SFT的这一分支及其重要注意事项。
微调平台生命周期
OpenAI正在逐步收缩微调平台,平台已不向新用户开放;已有微调平台用户在后续数月仍可创建训练任务。已微调模型可以继续推理,直到其基础模型弃用。完整时间安排以官方公告为准,不将“后续数月”理解为固定期限。
| 工作方式 | 适用任务 | 对应模型 |
|---|---|---|
| 在监督微调中提供图像输入,改善图像理解 | 图像分类;纠正复杂提示中的指令遵循失败 | gpt-4o-2024-08-06 |
数据格式
和向模型发送一张或多张图像并生成响应一样,可以在JSONL训练文件中包含同样的消息类型。图像既可以使用HTTP URL,也可以使用包含Base64图像数据的data URL。
下面是一条JSONL记录中的图像消息。为便于阅读,这里展开显示JSON;在实际数据文件中,一条记录通常占一行。
来源示例1(json):以下保留协议载荷、配置、返回示意或语法定义;省略号及片段不代表完整可运行程序。
程序中的自然语言译释38:
你是一名识别并描述艺术作品的助手。
程序中的自然语言译释39:
描述这件艺术作品。
程序中的自然语言译释40:
这似乎是一幅以中央人物为主体的传统绘画作品。
{
"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."
}
]
}
训练数据上传沿用监督微调的流程。
图像数据要求
大小
- 训练文件最多包含50000条带图像的样本,不计纯文本样本。
- 每条样本最多10张图像。
- 每张图像最大10MB。
格式
- 图像必须为JPEG、PNG或WEBP。
- 颜色模式必须为RGB或RGBA。
- 不能在
assistant角色消息中把图像作为输出。
内容审核政策
训练前会扫描图像,确认符合使用政策。这可能增加微调开始前文件验证的等待时间。
包含以下内容的图像会从数据集中排除,不用于训练:
- 人物。
- 人脸。
- 儿童。
- 验证码。
图像被跳过时如何处理
| 跳过原因 | 处理方法 |
|---|---|
| contains CAPTCHAs / people / faces / children:包含验证码、人物、人脸或儿童 | 移除图像;当前不能使用含这些实体的图像进行微调 |
| inaccessible URL:无法访问URL | 确认图像URL可公开访问 |
| image too large:图像过大 | 按大小限制调整 |
| invalid image format:格式无效 | 确认符合格式要求 |
最佳实践
降低训练成本
把图像detail设为low时,此视觉微调模型会把图像缩放到512×512像素,并以85个词元表示,不随原图尺寸变化,因而可减少训练成本。该说明针对本页微调模型,不套用到所有新视觉模型的low规则。更多说明见图像细节级别。
来源示例2(json):以下保留协议载荷、配置、返回示意或语法定义;省略号及片段不代表完整可运行程序。
{
"type": "image_url",
"image_url": {
"url": "https://api.nga.gov/iiif/a2e6da57-3cd1-4235-b20e-95dcaefed6c8/full/!800,800/0/default.jpg",
"detail": "low"
}
}
控制图像质量
为每张图像的image_url设置detail: low、high或auto,控制图像理解的保真度。这也影响训练时模型看到的图像词元数量和训练费用。相关说明。
安全检查
投入生产前,请阅读并遵循下面的安全信息。
如何评估安全性
微调任务完成后,OpenAI会评估模型在13个安全类别中的行为。这些类别代表输出可能造成伤害的不同领域。
| 类别标识 | 中文说明 |
|---|---|
| advice | 违反政策的建议或指导 |
| harassment/threatening | 既有骚扰,又涉及针对目标的暴力或严重伤害 |
| hate | 基于种族、性别、族裔、宗教、国籍、性取向、残障或种姓表达、煽动或宣扬仇恨;针对非受保护群体(例如棋手)的攻击归入骚扰 |
| hate/threatening | 仇恨内容同时涉及针对上述受保护群体的暴力或严重伤害 |
| highly-sensitive | 违反政策的高度敏感数据 |
| illicit | 提供实施违法行为的建议或指导,例如询问如何入店行窃 |
| propaganda | 对违反政策的意识形态予以赞扬或提供协助 |
| self-harm/instructions | 鼓励自杀、自残、进食障碍等自我伤害行为,或提供相关方法与建议 |
| self-harm/intent | 表达正在实施或打算实施自我伤害,例如自杀、自残或进食障碍 |
| sensitive | 违反政策的敏感数据 |
| sexual/minors | 涉及未满18岁者的性内容 |
| sexual | 旨在引起性兴奋的内容,例如性活动描写或性服务推广;不包括性教育和健康内容 |
| violence | 描绘死亡、暴力或身体伤害的内容 |
各类别有预设通过阈值。某类别中不通过的评估样本过多时,OpenAI会阻止该微调模型部署。未通过时,微调任务消息会说明哪些类别不满足阈值;可在任务的审核检查区域查看结果。
如何通过安全检查
除检查微调任务对象中失败的安全检查外,也可查询微调任务事件端点,查找moderation_checks类型事件,了解类别结果和执行情况,以确定需要补充训练数据、重新训练或改善的方向。Model Spec中的规则与示例也可帮助识别需补数据的领域。
这些评估覆盖多种安全类别,但仍应自行评估微调模型是否适用于自己的场景。
后续方向
- 监督微调:为输入样本提供正确输出来微调模型。
- 直接偏好优化(DPO):通过偏好数据微调模型。
- 强化微调:对输出评分以微调推理模型。

TRAE-AI编程


更多建议: