只会对文档进行RAG?10分钟了解如何进行多模态RAG
很多RAG是建立在文本的基础上的,但是现实的情况下,我们有很多图片甚至视频数据,我们有时候也会想搭建图片/视频的多模态RAG,让我们可以基于图片/视频进行问答。
视频可以看作很多帧图片的集合,所以我们可以从图片开始。
注意到上图,紫色的是构建Vector DB的过程,天蓝色的是inference的过程。整个多模态的架构如下
可以看到这个架构和传统的RAG架构几乎一致,只是每一步的输入输出不一样
我们需要将数据处理为 图片-文字 对,以方便输入到后续的Embedding model里。
对于视频,我们可能遇见3种情况:
对于图片,我们可能遇见两种情况:
视频处理的方法:
图片处理的方法:
我们可以将上述的图片-文字对,输入到一个特殊的embedding模型,如Bridge tower 模型,这样可以得到这个pair的embedding,便于后续retrieval. 更多Bridge tower 模型的信息,参见这篇论文: bridge tower
将用户的query进行retrieval后,我们会得到image-text pair, 我们将query,text,image处理好,输入上文提到的LVLM中,得到response。
LLaVA是常用的LVLM,参见https://arxiv.org/pdf/2304.08485.
可以看到:多模态的RAG是想办法往传统的RAG上靠,只是embedding和生成回答的LM用了多模态的而已。
[1] bridge tower
[2] LlaVA
仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork!