MetaCLIP:语言图像预训练的新方法

在现代的图像识别系统和生成模型中,CLIP因其在比较文本与图像相似度、图像间相似度以及图像聚类等方面的应用而广受欢迎。这些应用范围从构建审核系统到创建智能的图像数据收集解决方案。然而,CLIP的成功主要归功于其数据,而不是模型架构或预训练目标。本文将讨论Metadata-Curated Language-Image Pre-training (MetaCLIP),这是一种新模型,它通过改进训练数据的整理来增强CLIP的优势。

MetaCLIP是由Meta AI开发的,它是一种新的语言图像预训练方法,专注于数据整理。它采用原始数据池和从CLIP概念中派生的元数据,基于元数据分布生成平衡的数据子集。MetaCLIP在“Demystifying CLIP Data”论文中被介绍。通过仅关注数据方面,MetaCLIP隔离了模型和训练设置,允许进行更严格的实验研究。

可以使用MetaCLIP执行与CLIP相同的任务,包括:比较文本和图像的相似度(例如,用于媒体索引、内容审核);比较两幅图像的相似度(例如,构建图像搜索引擎,检查是否在数据集中出现与指定图像相似的图像);聚类(例如,更好地了解数据集的内容)。

当应用于CommonCrawl的4亿图像-文本数据对时,MetaCLIP在多个标准基准测试中超越了CLIP的数据。在零样本ImageNet分类中,MetaCLIP实现了70.8%的准确率,超过了CLIP在ViT-B模型上的68.3%。此外,当扩展到10亿数据对时,同时保持相同的训练预算,MetaCLIP达到了72.4%的准确率。这些令人印象深刻的结果在各种模型大小中都得到了体现,例如ViT-H达到了80.5%,没有任何额外的技巧。

要使用MetaCLIP,需要遵循以下步骤:

步骤 #1: 安装 MetaCLIP

Roboflow团队开发了Autodistill MetaCLIP,这是一个围绕Meta AI的MetaCLIP模型的包装器。Autodistill MetaCLIP包装器允许使用MetaCLIP。该包装器还与Autodistill集成,这是一个生态系统,让可以使用像MetaCLIP这样的基础模型自动标记数据,以用于训练模型。

pip install autodistill_metaclip

现在已经在系统上安装了MetaCLIP,可以开始尝试这个模型了。

步骤 #2: 测试模型

在这个演示中,将使用MetaCLIP来识别三座著名的纽约市建筑之一:帝国大厦、克莱斯勒大厦和世界贸易中心一号楼。

使用MetaCLIP和Autodistill进行推理有两种方式。可以直接使用本体(想识别的类别列表)检索预测。或者,可以手动计算图像和文本嵌入并进行比较。两种方法等效,但使用本体抽象了进行手动比较的需要。将讨论这两种方法。

本体是包含要发送到模型(在这种情况下是MetaCLIP)的提示和如果要标记整个数据集将使用的标签的文本对。

from autodistill_metaclip import MetaCLIP from autodistill.detection import CaptionOntology classes = ["empire state building", "chrysler building", "one world trade center building"] base_model = MetaCLIP( #{caption:class} ontology=CaptionOntology( { "The Empire State Building": "empire state building", "The Chrysler Building": "chrysler building", "The One World Trade Center Building":"one world trade center building" } ) ) results = base_model.predict(file_path, confidence=0.5) print(results) top_result = classes[results.class_id[0]] print(top_result)

在上面的代码片段中,构建了一个本体,将类名与相应的提示关联起来。MetaCLIP基础模型将接收提示"The Empire State Building"、"The Chrysler Building"和"The One World Trade Center Building"。代码随后将识别任何出现的"The Empire State Building"为"empire state building"、"The Chrysler Building"为"chrysler building"、"The One World Trade Center Building"为"one world trade center building"。

然后,代码将返回一个预测,显示超过0.5(50%)的置信度的分类。可以根据需要调整代码片段中的置信度水平。将取顶部结果,检索其类名,并将其打印到控制台。

例如,将使用克莱斯勒大厦的图片:

让运行代码。代码返回:

Classifications(class_id=array([1]), confidence=array([0.96553457])) chrystler building

此输出表明,图像被分类为1类ID,对应于class_id数组中的第二个元素(因为数组索引从0开始)。这是“chrystler building”类。MetaCLIP模型能够以大约97%的置信度将文本"The Chrysler Building"与图像关联起来。

嵌入是图像和文本的数值表示。嵌入编码了关于图像或文本的语义信息。这些信息使能够使用像余弦相似度这样的距离度量来比较两个嵌入的相似度。

使用Autodistill MetaCLIP模块,可以计算文本和图像嵌入。还可以使用compare()函数使用余弦相似度比较它们。

from autodistill_metaclip import MetaCLIP base_model = MetaCLIP(None) chrysler_text = base_model.embed_text("the chrysler building") image_embedding = base_model.embed_image(“image.png”) print(base_model.compare(chrysler_text, image_embedding))

在此代码中,初始化MetaCLIP,为术语“the chrysler building”创建文本嵌入,为文件创建图像嵌入,然后比较嵌入。

可以将图像嵌入保存在向量数据库中,以用于构建图像搜索引擎。

脚本返回:

0.3144019544124603

此值反映了嵌入图像与相应文本之间的相似度。请注意,此值与置信度不同。置信度告诉模型对标签与图像匹配的置信程度;相似度告诉两个嵌入的相似程度。相似度越高,两个嵌入越相似。

接下来,将运行多个.compare()操作,以确定克莱斯勒大厦的图像是否与文本"the chrysler building"相比,与文本"the empire state building"和"the one world trade center building"有更大的相似度。

base_model = MetaCLIP(None) empire_state_text = base_model.embed_text("the empire state building") chrysler_text= base_model.embed_text("the chrysler building") one_world_trade_text= base_model.embed_text("the one world trade center building") image = base_model.embed_image(file_path) print("Empire State Building Similarity :", base_model.compare(empire_state_text, image)) print("Chrysler Building Similarity :", base_model.compare(chrysler_text, image)) print("One World Trade Center Similarity :", base_model.compare(one_world_trade_text, image))

上述代码返回:

Empire State Building Similarity : 0.2762314975261688  Chrysler Building Similarity : 0.3144019544124603  One World Trade Center Similarity : 0.2696280777454376

克莱斯勒大厦的相似度得分最高,这表明MetaCLIP成功地测量了克莱斯勒大厦的图像与"the chrysler building"相比,与"the empire state building"和"the one world trade center"的相似度更高。

MetaCLIP代表了语言图像预训练领域的激动人心的进步,强调了数据整理在获得更好性能中的重要性。在"Demystifying CLIP Data"中概述的研究证明了MetaCLIP,当应用于4亿图像-文本对的数据集时,在多个标准基准测试中超越了CLIP。通过优先考虑数据组件并改进整理过程,MetaCLIP利用了CLIP的优势,并扩展了计算机视觉领域的可能性。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485