概要
23年10月底,OpenAI发布了 DALL-E 3 的技术报告《 Improving Image Generation with Better Captions 》,这篇技术报告的重点放在了 DALL-E 3 通过高质量的、详细的、生成式图像 caption(文本描述)进行训练后,提升 prompt following 能力。
契合的是,在DALL-E 3技术报告发表前,通义数据团队在图文对生产领域有一些初步的探索,以此为基础,延续 DALL-E 3 的思路,最终形成了三方面的产出:
- 图文对系列标注工具:视觉对话,图生文,图文解释;
- 使用生成式图文对,配合标注数据, finetune qw-vl-7b 模型,提供高质量/高效率的图文对生成方案;
- 使用标注数据 finetune cn_clip,结合 SAM 分割,提供高质量的图文匹配数据生产链路;
省流
OpenAI结论: 通过使用高质量、详细的、生成式的图像 caption 进行训练,可以显着提高 text-to-image model 的 prompt following 能力。
通义数据团队实践结果:
- 通过 Chain-of-Thought (CoT) Prompting 调用 GPT4V 产生高质量结构化 caption 数据,finetune qw-vl-7b 模型,生成数据参与到文生图模型的训练,模型的语义理解精确度提升约10%;
- 对结构化 caption 中的细粒度 region caption 进行图文匹配,产生(caption, mask)pair 数据,进行 x-painting 任务训练,提升约5%
- 来自sa1b数据集的1000w中英文图文对数据、分割数据以及图文匹配数据魔搭开源!开源链接:https://modelscope.cn/datasets/Tongyi-DataEngine/SA1B-Dense-Caption
数据质量
大量的图文对数据从何而来?通常而言是分为两块:
- 互联网公开数据:
互联网公开图文对数据的文本描述质量显而易见,不够好,或者说很差。
- 开源数据集: a. 图像文本描述往往过于简单(如 COCO),缺失背景,物体的位置和数量,图像中的文字等信息; b. 类如 LAION 等数据集、描述的是图像的相关问题,比如广告,emoji等,而不是图像具体信息。
那么更进一步,海量的、高质量的图文数据对从何而来?常规而言,标注是提升数据质量的有效手段。不过,图像描述的标注任务难度很大:将图片内容总结成一段详细且准确的描述,也许只有具备良好文字基础的摄影师能高效的完成。
DALL-E 3: “标注人员专注于对图像主题的简单描述,而忽略图像中描绘的背景细节或常识关系。”
对此通义数据团队开发的标注平台开放了图生文等标注能力,标注人员只需动动手指,点击图像中的关键元素,核对修改细节信息就能生成图像的详细的整体描述。
ok,高质量数据生产基本可以保障,那么海量高质量数据怎么生产呢?OpenAI 给出的答案是:训练一个 image captioner 来生成图像的 caption。延续这一思路,我们评测了目前的开源的 captioner model 在图像描述任务上的效果,发现幻觉、丢失信息等问题还普遍存在。但,不出意外 GPT4V 在图像描述任务上有着不错的效果。
ft-qw-vl-v1: 使用GPT4V生成数据训练
ft-qw-vl-v2::使用人工校验后的GPT4V生成数据训练
海量数据生产
上文提到,GPT4V 在图像描述任务上效果不错。但 DALL-E 3 仍然选择了训练一个 image captioner 支持图像 caption 生产任务,DALL-E 3如此行为的真实原因不得而知,但我猜策,大概率和我们选择这一方向的原因一致:成本(性价比),亿级的 GPT4V 调用费用已经远远超出预算。
首先我们设计了图文对描述任务上的 Chain-of-Thought (CoT) Prompting,强调 GPT4V 关注细节、数量、姿态等信息,同时,引入图片的 origin caption 作为辅助信息。生产了十万量级结构化图像描述数据。这里的 origin caption 可以是 alt-text,也可以是简单的生成式/人工标注描述。
然后我们使用生成的十万量级数据,结合标注数据进行了 qw-vl-7b 的 finetune 工作,qw-vl-7b 的细粒度识别和理解能力和大量的中文训练预料,能很好的支持图文对理解任务。效果如表1,表2所示。
最后我们使用 finetune qw-vl-7b 进行了亿级的图文对数据标注。
图文匹配数据生产
得益于 iTAG 平台的图生文、图文解释等标注能力,产生十万量级的 golden data,包含详细的图像描述、细节描述列表、细节描述对应的图像 mask。我们使用这批数据 finetune cn_clip,结合 SAM 分割,进行了高质量的图文匹配数据生产。在测试集上,finetune_cn_clip 的表现如表4.1 - 4.3所示。其中 Flicker 为 Flicker-30k-zh 中抽取的5000条测试数据,文本平均长度为20;C0T GPT4V 为生成式数据中抽取的5000条测试数据,文本平均长度为136。
model |
avg_score |
recall |
cn_clip |
26.4 |
76.3% |
ft_cn_clip |
30.7 |
89.3% |
model |
Flicker |
CoT GPT4V |
||||
r1 |
r5 |
r10 |
r1 |
r5 |
r10 |
|
cn_clip |
70.94 |
91.38 |
95.5 |
75.38 |
92.06 |
95.52 |
ft_cn_clip |
72.78 |
91.9 |
95.4 |
91.48 |
98.86 |
99.64 |
model |
Flicker |
CoT GPT4V |
||||
r1 |
r5 |
r10 |
r1 |
r5 |
r10 |
|
cn_clip |
81.9 |
97.3 |
98.8 |
75.48 |
91.64 |
94.94 |
ft_cn_clip |
86.7 |
97.8 |
99.3 |
91.4 |
99.2 |
99.72 |
更多图文匹配效果预览: Caption-Region(https://test-bucket-duplicate.oss-cn-hangzhou.aliyuncs.com/sure/ata_caption_region.html?OSSAccessKeyId=LTAI5tHCNh6VgpmCEKFgdJUo&Expires=3600001710331578&Signature=YUcjP2oXIdMRlDX4AXHnKDSNc50%3D)
开源计划
5月初,开源DataEngine-sa1b数据集: 生成式数据集,包含来自sa1b数据集的860w中英文(移除敏感数据)图文对数据、分割数据以及图文匹配数据;开源链接:https://modelscope.cn/datasets/Tongyi-DataEngine/SA1B-Dense-Caption
后续,开源DataEngine-anno数据集:人工标注数据集,包含抽取自coco, laion等数据集的部分中英文图文对数据、分割数据以及图文匹配数据;
致谢
- 感谢通义千问多模态团队的模型能力支持;
- 感谢通义万相团队的业务细节支持;
- 感谢通义数据团队提供海量数据和高效处理链路等各项支持;