分享
多模态RAG应用
输入“/”快速插入内容
多模态RAG应用
2024年8月20日修改
作者:向量检索实验室 | AI 搜索引擎
原文:
https://mp.weixin.qq.com/s/bmATRGjb...
原文链接:
https://vipul-maheshwari.github.io/2024/03/03/multimodal-rag-application
📍
人工智能(AI)已经与文本打交道相当一段时间了,但世界并不仅仅围绕着文字。如果你花点时间环顾四周,你会发现文本、图像、视频、音频及它们的组合。
今天我们要研究多模态,这个概念本质上赋予AI模型除了文本之外,同时感知、聆听和理解多种格式数据的能力。就像我们人类所做的那样!
在理想情况下,我们应该能够将不同类型的数据混合在一起,同时展示给一个生成式AI模型,并对其进行迭代。它可以像告诉AI模型这样简单,"嘿,几天前,我给你发了一张棕色小狗的照片。你能帮我找到那张照片吗?"然后模型应该给我们那张照片的细节。基本上,我们希望AI能更像人类那样理解事物,变得非常擅长处理和响应各种信息。
但这里的挑战是,让计算机理解一种数据格式及其相关参考,可能是文本、音频、热成像和视频的混合。为了实现这一点,我们使用了一种叫做嵌入(Embedding)的东西。它实际上是一个数值向量,包含了一堆对我们来说可能没有多大意义但机器很容易理解的数字。
猫等于猫
让我们先考虑文本部分,所以我们目前的目标是让我们的模型学会"狗"和"猫"这样的词与"宠物"这个词密切相关。使用嵌入模型很容易实现这种理解,该模型首先将这些文本词转换为各自的嵌入,然后训练模型遵循一个简单的逻辑:如果词语相关,它们在向量空间中彼此接近,如果不相关,它们将被适当的距离分开。
但为了帮助模型识别出"猫"的图像和"猫"这个词是相似的,我们依赖于多模态嵌入。为了简化一下,想象有一个魔盒,能够处理各种输入——图像、音频、文本等。
现在,当我们用一张"猫"的图像和文本"猫"来喂养这个盒子时,它施展魔法,生成两个数值向量。当这两个向量被输入机器时,机器会想:"根据这些数值,看起来它们都与'猫'有关。"这正是我们的目标!我们的目标是帮助机器识别"猫"的图像和文本"猫"之间的密切联系。然而,为了验证这个概念,当我们在向量空间中绘制这两个数值向量时,结果发现它们非常接近。这个结果与我们之前观察到的两个文本词"猫"和"狗"在向量空间中的接近度完全一致。
女士们先生们,这就是多模态的本质。 👏
所以我们让模型理解了"猫"的图像和"猫"这个词之间的联系。好吧,就是这样,我的意思是如果你能做到这一点,你就已经接收了音频、图像、视频以及"猫"这个词,模型就会理解猫在所有文件格式中是如何被描绘的。
RAG来了..
如果你不知道RAG是什么意思,我强烈建议你阅读
我前几天写的这篇文章
[1],很多人都喜欢,我不夸张,但是这篇文章很好地让事情启动了...
有一些令人印象深刻的模型,如DALLE-2,提供文本到图像的功能。本质上,你输入文本,模型就会为你生成相关的图像。但是,我们能否创建一个类似于多模态RAG的系统,使模型根据我们自己的数据生成输出图像?好吧,今天的目标是创建一个AI模型,当被问到类似"我的派对上有多少女孩?" 💀 这样的问题时,不仅提供文本信息,还包括与之相关的图像。可以把它看作是一个简单RAG系统的扩展,但现在加入了图像。
在我们深入之前,请记住,多模态并不局限于文本到图像或图像到文本,因为它包含了输入和输出任何类型数据的自由。然而,目前,让我们专注于仅从图像到文本的交互。
对比学习
现在的问题是,那个盒子到底在做什么?它施展的魔法被称为对比学习。虽然这个术语听起来很复杂,但并不那么棘手。简单来说,考虑一个包含图像的数据集,以及描述图像内容的标题。
好了,现在发生的是:我们给文本-图像模型这些正样本和负样本,其中每个样本由一个图像和描述性文本组成。正样本是图像和文本正确对齐的样本——例如,一张猫的图片与文本"这是一张猫的图像"相匹配。相反,负样本涉及不匹配,如将狗的图像与文本"这是一张猫的图像"一起呈现。
现在我们训练文本-图像模型识别出正样本提供了准确的解释,而负样本具有误导性,应该在训练过程中被忽略。正式来说,这种技术被OpenAI引入的
CLIP
[2] (对比语言-图像预训练)所称,作者在大约4亿对从互联网上获取的图像标题对上训练了一个图像-文本模型,每当模型犯错误时,对比损失函数就会增加并惩罚它,以确保模型训练良好。同样的原则也适用于其他模态组合,例如猫的声音与猫这个词是语音-文本模型的正样本,一段猫的视频与描述性文本"这是一只猫"是视频-文本模型的正样本。