跨模态神经搜索实践VCED CLIP简介

1. CLIP简介

1.1 CLIP是什么

CLIP(Contrastive Language-Image Pretraining)模型将原有的图像标签替换为图像的文本描述信息,来监督视觉任务的训练,在下游任务中得到了较好的zero-shot结果。

该模型将图像分类问题转换为图文匹配问题,首先针对图片构造text prompt,并使用CLIP模的text encoder获得文本编码向量,之后将图片通过image encoder获得图像编码向量。

对于图片,计算它与所有text prompt之间的距离(图像编码向量与文本编码向量的余弦相似度/点积),选择距离最近的text prompt标签作为图片的标签。

除此之外,CLIP模型可广泛应用到图像检索、视频理解、图像生成等其它领域。

1.2 CLIP原理

CLIP将语言信息和图像信息联合训练,实现了在下游任务上zero-shot(Zero-shot learning指没有当前类别的训练样本的情况下,让模型学习到一个映射关系可以将样本映射到原有的向量空间,再通过距离判断当前样本可能属于哪一个类别)的能力。

  • 训练过程

具体而言,即收集N个图像和文本对,将其按照编码次序排列,可以得到一个N*N矩阵T,训练需要使得对角线上的元素值尽可能大,其余部分值尽可能小,矩阵中的T(i, j)表示第i个文本与第j个文本图像之间的语义相似度。

  • zero-shot过程

根据上下文语义建立prompt模板,将分类标签映射到prompt模板得到文本集合,再通过CLIP的text encoder得到文本编码向量。

之后,对于要分类的图片,只需要比较图片的向量和文本特征间的语义距离,选择距离最近的即可得到图片的分类结果。

1.3 其它多模态模型

在图文生成领域,除了VAE、GAN等模型,还有扩散模型(diffusion model)。

2. 多模态和跨模态的应用

2.1 介绍

  • 多模态应用

允许通过利用多种方式的优势来结合不同的模态。例如,可以在对话中同时使用口语和书面语言,以确保我们相互理解。我们还可以使用图片或视频等作为视觉辅助工具,来帮助解释仅用文字难以描述的事物。

  • 跨模态应用

输入某一个模态,可以输出另一个模态。它通过使用一种感官的信息来增强另一种感官,使用户体验比传统应用更上一层楼。比如说,我们可以通过触摸的方式来帮助我们理解在触觉地图或盲文文本中看到的内容。我们还可以使用声音来帮助我们定位环境中的事物,一般通过声纳或雷达来完成。

2.2 与传统交互方式的不同

  • 支持输入和输出模态以任意方式进行排列组合,包括但不限于语音、视频和文本;
  • 使用多种模态输入和输出信息,从而提高了准确性、精确度和可用性;
  • 能够同时使用多种模态,提高了效率;
  • 能够以任意组合使用多种模态,提高了灵活性。

2.3 开发多模态和跨模态应用存在的挑战

  • 缺乏此类系统的设计模式。包括如何存储、计算、传输不同模态的数据、以及不同工具的切换;
  • 缺乏用于开发多模态和跨模态应用的工具和框架,没有一个可以包含多种模态的标准数据结构;
  • 缺乏如何在应用中组合不同的模态的工具;
  • 缺乏有效的测试手段,需要确保模态正常运转且用户体验良好。

3. Jina

针对以上挑战,可以利用Jina生态系统中的产品作为应用的构建模块:

  • 一个适用于所有模态的标准数据结构,即DocArray;
  • 可复用的代码片段,即Executor;
  • 运行工具,即Jina;
  • 部署托管工具,即JCloud。

References

  1. CLIP
  2. 多模态和跨模态应用

你可能感兴趣的:(深度学习实战,深度学习,深度学习)