您的位置  油气能源  非常规气

华为诺亚开源首个大规模中文多模态数据「悟空」,一亿图文对,包含基础大模型

  • 来源:互联网
  • |
  • 2022-02-20
  • |
  • 0 条评论
  • |
  • |
  • T小字 T大字

华为诺亚开源首个大规模中文多模态数据「悟空」,一亿图文对,包含基础大模型

近日,华为诺亚实验室开源了一个亿级中文跨模态数据集——「悟空」。

多模态大模型(如 OpenAI 的 CLIP ,谷歌的 ALIGN 等)在近年来掀起了新一轮大规模多模态学习的浪潮,这些模型在各种下游任务体现了出色的开放域零样本能力,是下一代通用人工智能的可能之路。

这些大模型的成功很大程度上依赖于预训练数据集的支持,但是中文开源数据规模大的基本没有,阻碍了中文多模态大模型的发展与应用。

针对这一空白,华为诺亚决定开源「悟空」!据说,这个新的数据集包含一亿个来自网络的中文图文对,并经过了筛选和过滤。

图注:悟空数据集文本词云

此外,由于训练大模型非常昂贵和费时费力,为了方便中文社区未来的使用和发展,诺亚团队还同时开源了一系列的多模态基础大模型。

这些模型使用了不同的图像编码器(ResNet/ViT/SwinT)以及不同的预训练方法(CLIP/FILIP/LIT)供大家灵活选择。

他们进行了一系列不同任务的基准测试,实验表明,悟空可以作为一个优秀的跨模态的中文预训练数据集和基准学习方法,在各种下游任务都有出色的表现。

更多信息可以参考:

  • https://arxiv.org/abs/2202.06767
  • https://wukong-dataset.github.io/wukong-dataset/

以下是项目详情:

1 数据集构建

图注:当前业界知名的图文预训练数据集,悟空是首个大规模中文数据集

视觉-语言多模态大模型预训练强烈依赖大规模的图文数据集。

虽然目前开源的英文大规模图文数据集较为丰富,如 CC12M、YFCC100M、LAION-400M,但是中文却始终缺少这样的大规模数据集可供自由下载研究。悟空作为首个中文领域开源的大规模图文数据集,填补了这样的空缺,能够加快中文跨模态预训练大模型的研究工作。

Wukong100m 数据集包含了来自于互联网的约1亿图文对。为了囊括尽量丰富的视觉概念,原始数据的采集围绕20万个基础关键词进行,针对每一个基础关键词,通过输入搜索引擎,用返回的图片及对应的文本来构建数据集。此外,为了平衡关键词对应样本的数量,每一个基础关键词所采集的样本最多保留1000个。

在此之后,数据集又经过一系列的过滤策略来得到最终的版本,具体的过滤策略分为基于图片的过滤和基于文本的过滤。其中,图片过滤的原则是过滤掉长或宽不超过200像素的以及长宽比大于3的图片,以此来保证图片能够较为清晰地呈现视觉概念。

至于基于文本或者说图片描述的策略,首先,只有至少包含一个中文字符的文本会被保留,比如“000.jpg”这种描述文本就会连同其对应的图片一起被过滤掉,因为它表示的意义非常弱。

其次,如果有太多的图片对应到了同一个描述,比如“查看源网页”、“”、“摄影部落”,那么这类描述往往也是缺乏太多意义的,在构建数据集时也会被排除掉。

此外,为了保护隐私,数据集中涉及的人名均会被替换为特殊的符号“<人名>”,还有包含了敏感词的数据也会被去除。

2 模型预训练方法

2.1 模型结构

我们采用了主流的基于 Transformer 的双塔结构的预训练模型,来对图像和文本分别进行编码到同一个维度空间。

我们利用对比学习的损失函数来对齐文本和视觉模态,让匹配的图文对在编码后的表征上相似度更加接近,同时不匹配的图文表征相似度更低。因此通过训练这样的图像编码器和文本编码器,我们可以将文本模态和视觉模态在同一个表征空间上进行有效的对齐。

图注:悟空基础大模型主要采用双塔结构。

图像编码器:我们的预训练采用了常用图像编码器结构:ResNet,ViT和Swin Transformer,其中ResNet结构我们实验了Res50和Res101;ViT模型分别使用了ViT-B/16, ViT-B/32和ViT-L/14;SwinT模型使用了Swin-L模型。ViT模型的第一个token也就是[CLS] token的特征被用来描述整个图像,ResNet和SwinT模型我们将所有patch token的特征均值用来描述整个图像。

文本编码器:我们采用Transformer结构,共有12层,12个注意力机制头以及768的隐变量维度。对于中文的tokenizer,我们使用了中文BERT模型的WordPiece方法,中文词表大小为21128,文本的第一个token也是使用了常见的[CLS],其经过文本编码器编码后会用来描述整个文本的特征。

线性映射层:图像和文本在经过编码器编码后,我们使用可学习的线性映射层将图像和文本的特征通过线性变化投影到多模态公共空间。

LiT-Tuning: 为了提高训练效率和节省计算资源,我们在双塔模型结构中加载了预先训练好的图像编码器并且在对比学习中锁住它的参数。我们只需要训练文本编码器和两个线性映射层。其中,图像编码器可以是在英文标签的图片数据上预训练得到的。

2.2 对比学习训练

我们采用了in-batch对比学习方式:在每一次的训练迭代中,每张图片的正例是和它对应的文本,同一个batch中的其他文本作为它的负例,反之亦然。那么第k张图片和文本的对比学习损失可以分别表示成:

其中

代表第k张图片对第j个文本的相似度,

代表第j个文本对第k张图片的相似度,上述两个学习损失的均值作为最终计算的损失函数。在具体计算相似度值的时候,我们采用了两种方式:CLIP的全局相似度计算,和FILIP的Token-wise相似度计算。

顾名思义,全局相似度计算就是用图像的全局表征和文本的全局表征的点积结果;而Token-wise相似度计算使用了更加细粒度的对比学习目标来捕捉图片与文字的token级别的细粒度匹配和定位,我们先对每个图片patch计算出与它最相似的文本token并记录下这个相似度,然后用所有patch的平均相似度作为最终图片对文本的相似度,类似的计算方式也适用于文本对图片的相似度。

3 实验评估

3.1 Zero-shot零样本图片分类、图文检索任务

我们分别在Zero-shot零样本图片分类、和图文检索的下游任务上进行验证,本实验中除了

-500M以外,其他的悟空模型变体都是在这个一亿的数据库上训练的,在十七个不同数据集上的零样本图片分类实验结果如下图:

同时,图文检索的任务也分为微调和Zero-shot零样本两个实验设定,具体在图像检索文本和文本检索图像这两个任务上,在五个不同的数据集上进行验证,并且与业内的中文多模大模型进行了实验结果的对比。经过微调的图文检索实验结果如下:

另外,零样本的图文检索实验结果如下:

上述实验结果表明了我们构建的中文多模数据集,以及开源的基线多模态预训练模型的有效性。它表明了将在英文数据集上预训练的图像编码器适配于中文多模态预训练也能训练出效果优异的模型。同时可以看到,在同样的模型配置下,使用Token-wise相似度计算的实验效果要好于使用全局相似度计算。在图文检索的任务上,我们的基线预训练模型可以获得近似SOTA模型甚至更高的结果。

3.2 细粒度对齐的可视化

我们认为,使用Token-wise相似度计算的中文多模模型也可以具备像FILIP一样的细粒度对齐和定位能力。因此,我们利用ImageNet的图片和中文标签进行了token-wise对齐的可视化实验。

可以看到

都表现出了一定程度的细粒度对齐的能力。

以“豆娘”那张图为例,在文本序列“[CLS] 豆 娘 [SEP]”中,该类别的标签“豆娘”的位置索引是1和2,在图像上我们能找到相应的豆娘对应的1号和2号的图片patch token,这部分patch token可以勾勒出该类别的物体。

由于

划分patch的粒度(16*16)相比于

(7*7)更加细碎,因此图片patch token在勾勒物体的形状上更加细腻和完整。

4 总结

华为诺亚方舟实验室开源了一个亿级中文跨模态数据集——「悟空」,并且将开源一系列的多模态基础大模型,从而进一步推动中文社区未来的使用和发展。

团队还在零样本图片分类、图文检索等一系列任务上进行数据集和模型的基准测试。实验表明,悟空可以作为一个优秀的中文图文多模预训练数据集和基准学习方法,在各种下游任务上均有出色的表现。

同时,悟空模型在token级别细粒度对齐上的能力具备一定使用潜力,服务于目标定位等更多的视觉任务。

目前悟空数据集在官网即可下载,感兴趣的小伙伴可以立刻使用起来!

网页快照在哪 http://www.cityruyi.com/lm-4/lm-1/18835.html
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186