新闻
模型
产品
keyboard_arrow_down
深度搜索
搜索、读取并推理直到找到最佳答案。
读取器
读取URL或搜索为大模型提供更好的依据。
向量模型
世界一流的多模态多语言向量模型。
重排器
世界一流的重排器,最大限度地提高搜索相关性。
更多的
keyboard_arrow_down
分类器
图片和文本的零样本和少样本分类。
切分器
将长文本切分成块或词元。

API 文档
为您的AI 编程助手 IDE 或大模型自动生成代码
open_in_new


公司
keyboard_arrow_down
关于我们
联系销售
实习生计划
加入我们
open_in_new
下载Logo
open_in_new
条款及条件


登录
login
多模态 AI 的 CLIP 架构
介绍 Jina CLIP v1
多模态嵌入的最新突破
Embeddings API 入门
Hugging Face 上的开源 Jina CLIP v1
总结
star
甄选
新闻稿
六月 05, 2024

Jina CLIP v1:真正用于文本和图像的多模态 Embeddings 模型

Jina AI 新推出的多模态嵌入模型不仅在文本-图像检索方面超越了 OpenAI CLIP,同时还是一个优秀的图像嵌入模型和领先的文本嵌入模型。您不再需要为不同的模态使用不同的模型了。
Abstract 3D render of a neon blue and green grid pattern on a black background, creating a sense of depth.
Sofia Vasileva
Scott Martens
Susana Guzmán
Sofia Vasileva, Scott Martens, Susana Guzmán • 8 分钟的读取量

Jina CLIP v1(jina-clip-v1)是一个新的多模态嵌入模型,它扩展了 OpenAI 的原始 CLIP 模型的功能。通过这个新模型,用户可以使用一个嵌入模型,在纯文本和文本-图像跨模态检索中都能获得最先进的性能。与 OpenAI CLIP 相比,Jina AI 在纯文本检索方面提升了 165%,在图像到图像检索方面提升了 12%,在文本到图像和图像到文本任务中保持相同或略有提升的性能。这种增强的性能使得 Jina CLIP v1 在处理多模态输入时成为不可或缺的工具。

💡
jina-clip-v1 在所有检索类别中都优于 OpenAI CLIP。

在本文中,我们将首先讨论原始 CLIP 模型的缺点,以及我们如何使用独特的协同训练方法来解决这些问题。然后,我们将在各种检索基准测试上展示我们模型的有效性。最后,我们将提供详细说明,指导用户如何通过我们的 Embeddings API 和 Hugging Face 开始使用 Jina CLIP v1。

tag多模态 AI 的 CLIP 架构

2021 年 1 月,OpenAI 发布了 CLIP(对比语言-图像预训练)模型。CLIP 具有简单而巧妙的架构:它将两个嵌入模型——一个用于文本,一个用于图像——组合成一个具有单一输出嵌入空间的模型。它的文本和图像嵌入可以直接相互比较,使得文本嵌入和图像嵌入之间的距离与该文本对图像的描述程度成正比,反之亦然。

这在多模态信息检索和零样本图像分类中被证明非常有用。无需进一步的特殊训练,CLIP 就能很好地将图像分类到自然语言标签中。

Diagram illustrating image to text translation using an astronaut on Mars with a red moon as an example.

原始 CLIP 中的文本嵌入模型是一个只有 6300 万参数的定制神经网络。在图像方面,OpenAI 发布的 CLIP 包含了一系列 ResNet 和 ViT 模型。每个模型都针对其各自的模态进行预训练,然后通过带标注的图像训练,为准备好的图像-文本对生成相似的嵌入。

Flowchart with text "Embedding Space", linked to "Image Encoder" and "Text Encoder", with a "Distracted boyfriend" label.

这种方法取得了令人印象深刻的结果。尤其值得注意的是它的零样本分类性能。例如,即使训练数据中没有包含宇航员的标记图像,CLIP 也能根据其对文本和图像中相关概念的理解,正确识别宇航员的图片。

然而,OpenAI 的 CLIP 有两个重要的缺点:

  • 首先是文本输入容量非常有限。它最多可以接受 77 个标记的输入,但实验分析表明,在实践中它实际使用不超过 20 个标记来生成嵌入。这是因为 CLIP 是从带有标题的图像中训练的,而标题往往很短。这与当前支持数千个标记的文本嵌入模型形成对比。
  • 其次,它的文本嵌入在纯文本检索场景中的性能非常差。图像标题是一种非常有限的文本类型,不能反映文本嵌入模型预期支持的广泛用例。

在大多数实际用例中,纯文本和图像-文本检索是结合使用的,或者至少两者都可用于任务。为纯文本任务维护第二个嵌入模型实际上使 AI 框架的规模和复杂性增加了一倍。

Jina AI 的新模型直接解决了这些问题,jina-clip-v1 利用近几年的进展,在涉及文本和图像模态所有组合的任务中带来最先进的性能。

tag介绍 Jina CLIP v1

Jina CLIP v1 保留了 OpenAI 的原始 CLIP 架构:两个经过共同训练以在相同嵌入空间中产生输出的模型。

在文本编码方面,我们采用了 Jina BERT v2 架构,该架构用于 Jina Embeddings v2 模型。这种架构支持最先进的 8k 标记输入窗口,输出 768 维向量,可以从更长的文本中生成更准确的嵌入。这比原始 CLIP 模型支持的 77 个标记输入多了 100 多倍。

对于图像嵌入,我们使用的是北京人工智能研究院的最新模型:EVA-02 模型。我们已经通过实验比较了多个图像 AI 模型,在类似预训练的跨模态场景中测试它们,EVA-02 明显优于其他模型。它的模型大小也与 Jina BERT 架构相当,因此图像和文本处理任务的计算负载大致相同。

这些选择为用户带来了重要的好处:

  • 在所有基准测试和所有模态组合上都有更好的性能,尤其是在纯文本嵌入性能方面有很大提升。
  • EVA-02 在图像-文本和纯图像任务中都表现出经验上的优越性能,再加上 Jina AI 的额外训练,提高了纯图像性能。
  • 支持更长的文本输入。Jina Embeddings 的 8k 标记输入支持使其能够处理详细的文本信息并将其与图像关联。
  • 由于这个多模态模型在非多模态场景中也具有高性能,因此在空间、计算、代码维护和复杂性方面都能节省大量成本。

tag训练

我们高性能多模态 AI 的部分秘诀在于我们的训练数据和流程。我们注意到,图像标题中使用的文本长度很短是 CLIP 式模型在纯文本性能不佳的主要原因,我们的训练明确地设计来解决这个问题。

Flowchart illustrating optimization of text and caption-image similarity in three tasks, using a model and encoders, ending i

训练分为三个步骤:

  1. 使用带标题的图像数据来学习对齐图像和文本嵌入,同时穿插具有相似含义的文本对。这种协同训练共同优化这两种类型的任务。在这个阶段,模型的纯文本性能会下降,但不会像仅使用图像-文本对训练那样严重。
  2. 使用将图像与更大文本对齐的合成数据进行训练,这些文本由 AI 模型生成,用于描述图像。同时继续使用纯文本对进行训练。在这个阶段,模型学会结合图像关注更大的文本。
  3. 使用具有难负样本的文本三元组来进一步提高纯文本性能,通过学习做出更细致的语义区分。同时,继续使用图像和长文本的合成对进行训练。在这个阶段,纯文本性能显著提高,而模型不会失去任何图像-文本能力。

有关训练和模型架构的更多详细信息,请阅读我们最近的论文:

Jina CLIP:您的 CLIP 模型同时也是您的文本检索器
对比语言-图像预训练(CLIP)广泛用于通过将图像和文本映射到固定大小的向量中,在共同的嵌入空间中训练模型来对齐图像和文本。这些模型是多模态信息检索和相关任务的关键。然而,与专门的文本模型相比,CLIP 模型在纯文本任务中的表现通常较差。这导致信息检索系统需要为纯文本和多模态任务分别维护不同的嵌入和模型,造成效率低下。我们提出了一种新颖的多任务对比训练方法来解决这个问题,并用它来训练 jina-clip-v1 模型,在文本-图像和文本-文本检索任务上都达到了最先进的性能。
arXiv.orgAndreas Koukounas

tag多模态嵌入的最新突破

我们在纯文本、纯图像和涉及两种输入模态的跨模态任务中评估了 Jina CLIP v1 的性能。我们使用 MTEB 检索基准来评估纯文本性能。对于纯图像任务,我们使用 CIFAR-100 基准。对于跨模态任务,我们在 Flickr8k、Flickr30K 和 MSCOCO Captions 上进行评估,这些都包含在 CLIP Benchmark 中。

结果总结在下表中:

Model Text-Text Text-to-Image Image-to-Text Image-Image
jina-clip-v1 0.429 0.899 0.803 0.916
openai-clip-vit-b16 0.162 0.881 0.756 0.816
% increase
vs OpenAI CLIP
165% 2% 6% 12%

从这些结果可以看出,jina-clip-v1 在所有类别中都优于 OpenAI 的原始 CLIP,并在纯文本和纯图像检索方面表现显著更好。平均在所有类别中,性能提升了 46%。

你可以在我们最新的论文中找到更详细的评估。

tagEmbeddings API 入门

你可以使用 Jina Embeddings API 轻松地将 Jina CLIP v1 集成到你的应用程序中。

下面的代码展示了如何使用 Python 中的 requests 包调用 API 来获取文本和图像的嵌入。它将文本字符串和图像 URL 传递给 Jina AI 服务器,并返回两者的编码。

☝️
记得将 <YOUR_JINA_AI_API_KEY> 替换为已激活的 Jina API 密钥。你可以从 Jina Embeddings 网页获得一个包含一百万个免费令牌的试用密钥。
import requests
import numpy as np
from numpy.linalg import norm

cos_sim = lambda a,b: (a @ b.T) / (norm(a)*norm(b))

url = 'https://api.jina.ai/v1/embeddings'

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer <YOUR_JINA_AI_API_KEY>'
}

data = {
  'input': [
     {"text": "Bridge close-shot"},
     {"url": "https://fastly.picsum.photos/id/84/1280/848.jpg?hmac=YFRYDI4UsfbeTzI8ZakNOR98wVU7a-9a2tGF542539s"}],
  'model': 'jina-clip-v1',
  'encoding_type': 'float'
}

response = requests.post(url, headers=headers, json=data)
sim = cos_sim(np.array(response.json()['data'][0]['embedding']), np.array(response.json()['data'][1]['embedding']))
print(f"Cosine text<->image: {sim}")

tag与主要 LLM 框架的集成

Jina CLIP v1 已经可以在 LlamaIndex 和 LangChain 中使用:

  • LlamaIndex:使用 JinaEmbedding 与 MultimodalEmbedding 基类,并调用 get_image_embeddings 或 get_text_embeddings。
  • LangChain:使用 JinaEmbeddings,并调用 embed_images 或 embed_documents。

tag定价

文本和图像输入都按令牌消耗计费。

对于英文文本,我们经验性地计算出平均每个单词需要 1.1 个令牌。

对于图像,我们计算覆盖你的图像所需的 224x224 像素块的数量。这些图块可能部分为空白但计数相同。每个图块处理需要 1,000 个令牌。

示例

对于一个尺寸为 750x500 像素的图像:

  1. 图像被分割成 224x224 像素的图块。
    1. 要计算图块数量,将宽度像素除以 224,然后向上取整。
      750/224 ≈ 3.35 → 4
    2. 对高度像素重复相同操作:
      500/224 ≈ 2.23 → 3
  2. 此示例中所需的总图块数量为:
    4(水平)x 3(垂直)= 12 个图块
  3. 成本将是 12 x 1,000 = 12,000 个令牌

tag企业支持

我们为购买110 亿令牌生产部署计划的用户推出新的福利。这包括:

  • 与我们的产品和工程团队进行三小时的咨询,讨论你的具体用例和需求。
  • 为你的 RAG(检索增强生成)或向量搜索用例定制的 Python notebook,演示如何将 Jina AI 的模型集成到你的应用程序中。
  • 分配专门的客户经理和优先电子邮件支持,确保你的需求得到及时有效的满足。

tagHugging Face 上的开源 Jina CLIP v1

Jina AI 致力于开源搜索底座,为此,我们在 Hugging Face 上以 Apache 2.0 许可证免费提供这个模型。

你可以在 Hugging Face 上 jina-clip-v1 的模型页面找到下载和在自己系统或云安装上运行此模型的示例代码。

jinaai/jina-clip-v1 · Hugging Face
我们正在通过开源和开放科学推进和民主化人工智能。

tag总结

Jina AI 的最新模型 —— jina-clip-v1 —— 代表了多模态嵌入模型的重大进步,相比 OpenAI 的 CLIP 提供了显著的性能提升。在纯文本和纯图像检索任务中有显著改进,在文本到图像和图像到文本任务中也具有竞争力,它为复杂的嵌入用例提供了一个很有前景的解决方案。

由于资源限制,此模型目前仅支持英语文本。我们正在努力扩展其功能以支持更多语言。

类别:
star
甄选
新闻稿
rss_feed
办公室
location_on
加利福尼亚州桑尼维尔
710 Lakeway Dr, Ste 200, 桑尼维尔, CA 94085, 美国
location_on
德国柏林(总部)
Prinzessinnenstraße 19-20,10969 柏林,德国
location_on
中国北京
中国北京市海淀区西大街48号6号楼5层
location_on
中国深圳
中国深圳市赋安科技大厦4楼402
搜索底座
深度搜索
读取器
向量模型
重排器
分类器
切分器
API 文档
获取 Jina API 密钥
速率限制
API 状态
公司
关于我们
联系销售
新闻
实习生计划
加入我们
open_in_new
下载Logo
open_in_new
条款
安全
条款及条件
隐私
管理 Cookie
email
Jina AI © 2020-2025.