实验|Aircloud 算力支持|幻方萤火二号
CLIP(Contrastive Language-Image Pre-Training,以下简称 CLIP) 模型是 OpenAI 在 2021 年初发布的用于匹配图像和文本的预训练神经网络模型,可以说是近年来在多模态研究领域的经典之作。该模型直接使用大量的互联网数据进行预训练,在很多任务表现上达到了目前最佳表现(SOTA)💯。
本次我们尝试使用 Google 开源的 Conceptual Captions 数据集来训练 CLIP 模型,并对其效果进行一定的验证。
本次体验接入的是幻方萤火二号。
CLIP模型介绍
在目前图像分类领域中,我们训练的模型通常会遇到以下问题:
-
模型需要用到大量的格式化标注数据,这些标注数据获取通常成本高昂。
-
模型在当前数据集的效果比较好,但是可能模型的泛化能力较差,同时迁移到新的训练任务也比较困难。
与此同时,互联网上面已经存在了大量的图像文本对(在网页中,开发者一般都会为图片添加一段文字备注),实际上这些素材可以作为已经标注好的数据集,利用这些数据集进行训练,既能解决获取标注数据成本高昂的问题,同时也因为互联网上的数据量比较大和数据本身差异较大,更容易让我们获得泛化能力较强的模型。
CLIP 模型就是基于上述概念,使用 OpenAI 收集到的 4 亿对图像文本对,分别将文本和图像进行编码,之后使用 metric learning 进行训练,其目标是将图像与文本的相似性提高,核心流程比较简洁,可以直接参考下述伪代码:
在预测阶段,也是通过一系列生成的文本对和目标图像,计算余弦相似度从而获取预测值:
CLIP 通过以上过程,取得的效果还是比较惊艳的。OpenAI 官方开源了 CLIP 模型部分的代码,不过如果想完整的的复现训练,还需要写不少训练相关的代码,这里我们基于 github 上的另外一个开源实现,通过一定的修改,来完成在萤火平台上训练的整个过程。
数据预处理下载和清洗
模型训练用到的Conceptual Captions 数据集是 Google 从数十亿互联网网页提取的图像文本信息数据,并进行了若干种类型的过滤,使得数据集具有较高的质量和准确度,总共约 300 万个测试数据和