PaperAgent 2024年09月29日
一种支持4种多模态RAG技术的引擎:VARAG
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

VARAG是视觉优先的RAG引擎,集成视觉和文本数据,增强传统RAG系统。它支持多种检索技术,包括简单RAG、视觉RAG、ColPali RAG和混合ColPali RAG,每种技术都有其特点和适用场景。

🚀 VARAG通过视觉语言模型集成视觉和文本数据,强化了传统RAG系统。它支持多种检索技术,如简单RAG,能处理扫描文档,适合文本密集型文件,可与LLM配对生成上下文感知输出。

🎯 视觉RAG通过整合视觉信息检索扩展传统RAG技术,弥合文本和图像差距。使用跨模态嵌入模型,可进行不同模态的相似性搜索,适用于文档分析和相关任务。

💻 ColPali RAG将文档页面直接嵌入为图像,简化检索流程。利用VLM将页面编码为矢量嵌入,采用后期交互机制增强检索,对富含视觉效果的文档特别有益。

🤝 混合ColPali RAG结合图像嵌入和ColPali后期交互机制优势,先进行粗略检索,再重新排序,对包含复杂视觉效果和详细文本的文档检索效果显著。

2024-09-29 12:22 湖北

VARAG(视觉增强检索和生成):是一种视觉优先的RAG引擎,强调基于视觉的检索技术。它通过视觉语言模型集成视觉和文本数据,增强了传统的检索增强生成 (RAG) 系统。

支持的检索技术

VARAG支持多种检索技术,针对不同用例进行了优化,包括文本、图像和多模式文档检索。以下是支持的主要技术:

简单 RAG(检索增强生成)是一种高效而直接的方法,用于从文档中提取文本并将其输入到检索管道中。VARAG通过Docling 整合了光学字符识别 (OCR),从而可以处理和索引扫描的PDF或图像。

Docling在Markdown和JSON格式下的输出示例

VARAG提取和索引文本后,可以将查询与文档中的相关段落进行匹配,为生成基于提取信息的响应提供坚实的基础。此技术非常适合文本密集的文档,例如扫描的书籍、合同和研究论文,并且可以与大型语言模型 (LLM) 配对以生成上下文感知的输出。

Docling技术报告 https://arxiv.org/pdf/2408.09869https://github.com/DS4SD/docling

Vision RAG 通过整合视觉信息检索来扩展传统的 RAG 技术,从而弥合文本和图像之间的差距。使用强大的跨模态嵌入模型(如 JinaCLIP(由 Jina AI 开发的 CLIP 的变体)),文本和图像都被编码到共享向量空间中。

jina-clip-v1的训练范式,共同优化文本-图像和文本-文本匹配

这允许跨不同模态进行相似性搜索,这意味着可以同时查询图像和文本。Vision RAG 特别适用于文档分析任务,其中视觉组件(例如,图形、图表、图像)与文本内容同样重要。它对于图像字幕或生成产品描述等任务也很有效,在这些任务中,理解和关联文本与视觉元素至关重要。

ColPali RAG代表了一种尖端方法,它通过直接将文档页面嵌入为图像而不是将其转换为文本来简化传统的检索流程。

该方法利用了Google团队的视觉语言模型 (VLM) PaliGemma,它将整个文档页面编码为矢量嵌入,将页面布局和视觉元素视为检索过程的一部分。ColPali RAG使用受ColBERT(Column BERT)启发的后期交互机制,通过启用用户查询和文档patches之间的token-level匹配来增强检索。这种方法确保了高检索准确性,同时还保持了合理的索引和查询速度。它对于富含视觉效果的文档特别有益,例如信息图表、表格和复杂布局,而传统的基于文本的检索方法很难处理这些文档。

ColPali论文: https://arxiv.org/abs/2407.01449ColPali博客: https://huggingface.co/blog/manu/colpaliColPali实战: https://github.com/weaviate/recipes/blob/main/weaviate-features/named-vectors/NamedVectors-ColPali-POC.ipynb

混合ColPali RAG 结合了图像嵌入和ColPali的后期交互机制的优势,进一步提高了检索性能。

当文档包含复杂的视觉效果和详细的文本时,这种混合方法特别有用,允许系统利用这两种内容类型进行高度准确的文档检索。

? 开始使用VARAG

每种视觉RAG技术都被构建为一个类,抽象所有组件并提供以下方法:

from varag.rag import {{RAGTechnique}}
ragTechnique = RAGTechnique()
ragTechnique.index( "/path_to_data_source", other_relevant_data)
results = ragTechnique.search("query", top_k=5)
# These results can be passed into the LLM / VLM of your choice

为什么要抽象这么多?

VARAG最初打算快速测试和评估不同的基于视觉的 RAG(检索增强生成)系统,以确定哪一个最适合我的用例,最终演化成了一个框架或库。

这种抽象旨在简化尝试不同 RAG 范例的过程,而不会使组件之间的兼容性复杂化。为了使事情变得简单,选择 LanceDB作为向量存储,因为它易于使用且可定制性高。

VARAG提供了4种视觉RAG技术的测试脚本,可以快速尝试与评测

https://github.com/adithya-s-k/VARAGhttps://adithya-s-k.github.io/VARAG/

推荐阅读


欢迎关注我的公众号“PaperAgent”,每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

VARAG 视觉检索 RAG技术 文档分析
相关文章