【AI论文】ViDoRAG:通过动态迭代推理代理实现视觉文档检索增强生成

摘要:理解富含视觉信息的文档中的信息,对于传统的检索增强生成(Retrieval-Augmented Generation,RAG)方法来说,仍然是一个重大挑战。现有的基准测试主要集中在基于图像的问答(Question Answering,QA)上,忽视了在密集视觉文档中进行高效检索、理解和推理的根本挑战。为了弥补这一空白,我们推出了ViDoSeek,这是一个新颖的数据集,旨在评估RAG方法在需要复杂推理的富含视觉信息的文档上的性能。基于该数据集,我们发现了当前RAG方法的关键局限性:(i)纯视觉检索方法难以有效整合文本和视觉特征,以及(ii)以往的方法往往分配的推理标记不足,限制了其有效性。为了应对这些挑战,我们提出了ViDoRAG,这是一个专为视觉文档中的复杂推理量身定制的多代理RAG框架。ViDoRAG采用基于高斯混合模型(Gaussian Mixture Model,GMM)的混合策略,以有效处理多模态检索。为了进一步激发模型的推理能力,我们引入了一种迭代代理工作流程,包括探索、总结和反思,为调查RAG领域的测试时扩展提供了一个框架。在ViDoSeek上进行的广泛实验验证了我们的方法的有效性和泛化性。值得注意的是,在竞争激烈的ViDoSeek基准测试中,ViDoRAG的表现超过了现有方法10%以上。Huggingface链接:Paper page,论文链接:2502.18017

一、引言

随着信息表达方式的日益多样化,富含视觉信息的文档(如包含图表、表格、布局等元素的幻灯片)在教育、金融、法律等多个领域得到了广泛应用。这些视觉元素使得信息更加易于理解,但同时也为信息的检索、理解和推理带来了挑战。传统的检索增强生成(Retrieval-Augmented Generation,RAG)方法在处理这类文档时显得力不从心。现有基准测试主要集中在基于图像的问答(Question Answering,QA)上,缺乏对大规模视觉文档高效检索、理解和推理能力的评估。

针对这一问题,本文提出了ViDoSeek数据集,旨在评估RAG方法在需要复杂推理的富含视觉信息的文档上的性能。同时,基于该数据集,本文识别了当前RAG方法的关键局限性,并提出了一种新颖的多代理RAG框架——ViDoRAG,以应对这些挑战。

二、背景与相关工作
1. 视觉文档QA基准测试

视觉文档问答(Visual Document Question Answering)专注于基于文档中的视觉内容来回答问题。虽然现有研究主要集中在从单个图像中回答问题,但随着现代模型上下文长度的增加,多页文档问答也开始受到关注。然而,先前的数据集并不适合涉及大规模文档集合的RAG任务。

2. 检索增强生成

随着大型模型的发展,RAG通过使模型能够利用外部知识来解决问题,从而增强了模型的能力。在以往的研究中,检索通常通过光学字符识别(OCR)技术提取文本进行。近年来,多模态嵌入的兴起极大地改善了图像检索任务。此外,还有工作专注于RAG中的上下文学习。本文的工作在这些发展的基础上,结合了多模态混合检索和粗到细的多代理生成框架,将各种嵌入和生成模型无缝集成到一个可扩展的框架中。

三、ViDoSeek数据集

为了更好地评估RAG系统,本文构建了一个新颖的数据集ViDoSeek,它专为大规模文档集合中的问答设计。

1. 数据集构建流程

ViDoSeek数据集的构建流程包括四个步骤:

  • 文档收集:收集包含25到50页的英文幻灯片,涵盖经济学、技术、文学和地理等12个领域,并筛选出同时包含文本、图表、表格和二维布局(如流程图、图表等)的幻灯片。
  • 查询创建:由专家根据文档内容构建查询,确保每个查询在文档集合中具有唯一答案,并鼓励构建多种形式、不同来源和推理类型的查询,以更好地反映现实世界场景。
  • 质量审查:由于大规模检索和生成任务中仅依赖人工注释具有挑战性,本文提出了一个自动识别问题查询的审查模块。
  • 多模态精炼:对于质量审查中未达标的查询,使用基于视觉语言模型(VLM)的代理进行精炼,确保查询满足特定要求。
2. 数据集分析

ViDoSeek数据集包含约1200个问题,涵盖文本、图表、表格和布局四种关键内容类型,其中布局类型占比最大且最具挑战性。此外,查询被分为单跳和多跳两种推理类型。与现有数据集相比,ViDoSeek提供了更大规模的文档集合和更复杂的推理要求,从而更准确地反映了现实世界场景,有助于对RAG系统进行更稳健和可扩展的评估。

四、ViDoRAG框架

为了应对传统RAG方法的局限性,本文提出了ViDoRAG框架,它采用多代理、粗到细的推理过程和多模态检索策略。

1. 多模态混合检索

ViDoRAG通过文本和视觉两条管道进行信息检索,并利用高斯混合模型(GMM)动态确定每个模态的最优top-K值,从而合并两个管道的检索结果。这种方法避免了静态超参数K的局限性,提高了检索效率和生成质量。

  • 自适应召回与GMM:通过计算查询与文档集合之间的相似度分布,并利用GMM估计每个模态的高相似度分布先验概率,从而动态确定K值。这种方法确保了只检索最相关的文档,减少了不必要的计算。
  • 文本和视觉混合检索:将文本和视觉检索结果进行合并,并通过排序操作保持连续页面的相关性。
2. 多代理迭代推理生成

在生成过程中,ViDoRAG引入了一个由三个代理组成的框架:寻求者代理(Seeker Agent)、检查者代理(Inspector Agent)和回答者代理(Answer Agent)。这些代理以粗到细的方式从多尺度视角提取线索、进行反思并给出答案。

  • 寻求者代理:负责从粗略视角选择相关图像,并根据检查者的反馈进行细化。通过定义动作空间为图像选择,并整合检查者的反馈来优化图像选择和内存管理。
  • 检查者代理:对图像进行细粒度审查并提供反馈或初步答案。如果当前信息足以回答问题,则提供初步答案和参考图像;否则,提供反馈以指导寻求者更好地选择图像。
  • 回答者代理:确保答案的一致性并给出最终答案。通过验证检查者的初步答案与参考图像的一致性来合成最终答案。
五、实验与结果
1. 实验设置

本文在ViDoSeek数据集上进行了广泛实验,以评估ViDoRAG框架的有效性。实验采用了模型评估方法,使用GPT-4o对参考答案与最终答案进行比较并打分,以准确率作为评价指标。同时,还报告了不同检索器的召回性能。

2. 主要结果

实验结果表明,ViDoRAG框架在ViDoSeek基准测试上显著优于现有方法,准确率提高了10%以上。无论是封闭源模型还是开放源模型,ViDoRAG都表现出了良好的性能。特别是在开放源模型中,如Qwen2.5-VL-7B,ViDoRAG显著提升了其指令遵循和推理能力。

此外,实验还分析了不同检索器和生成方法对性能的影响。结果显示,动态检索和混合检索策略的结合能够全面提升端到端性能。同时,尽管多代理框架由于迭代交互而引入了额外的计算开销,但由于生成答案质量的提高,延迟与准确性的权衡对于复杂的RAG任务是有益的。

3. 检索评价

在检索性能方面,ViDoRAG的动态检索策略在保持较高召回率的同时,显著缩短了生成上下文长度,从而提高了生成效率。与静态检索方法相比,动态检索能够更好地平衡延迟和准确性。

4. 生成策略与模态分析

实验还分析了不同模态和生成策略对性能的影响。结果显示,基于视觉的管道在所有类型查询上均优于基于文本的管道,即使在涉及文本内容的查询中也是如此。这表明视觉信息对于模型识别信息之间的内在联系至关重要。

5. 测试时扩展性能

实验还评估了ViDoRAG在测试时的扩展性能。结果显示,性能较强的模型需要较少的推理迭代次数,而较弱的模型则需要更多时间来处理和得出结论。这表明通过预定义任务和将复杂任务分解为更简单的任务是一种有效的扩展推理方法。

六、结论与未来工作

本文提出了ViDoRAG框架,一个专为富含视觉信息的文档设计的多代理RAG框架。通过粗到细的推理过程和多模态检索策略,ViDoRAG显著提高了在大规模文档集合中进行复杂推理的能力。实验结果表明,ViDoRAG在ViDoSeek基准测试上表现优异,准确率提高了10%以上。

然而,本文的工作也存在一些局限性,如查询构建中的潜在偏见、ViDoRAG框架的计算开销以及模型幻觉问题。未来工作将集中在进一步优化框架效率、减少潜在偏见、提高计算效率以及解决模型幻觉问题上,以进一步提升ViDoRAG的鲁棒性和适用性。

七、伦理考虑

本文的数据集构建过程中尊重版权和知识产权权利,且数据集中不包含任何私人或敏感信息。此外,所有内容均来自公开可用的来源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27845.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【赵渝强老师】监控Redis

对运行状态的Redis实例进行监控是运维管理中非常重要的内容,包括:监控Redis的内存、监控Redis的吞吐量、监控Redis的运行时信息和监控Redis的延时。通过Redis提供的监控命令便能非常方便地实现对各项指标的监控。 一、监控Redis的内存 视频讲解如下 【…

HTML前端手册

HTML前端手册 记录前端框架在使用过程中遇到的各种问题和解决方案,供后续快速进行手册翻阅使用 文章目录 HTML前端手册1-前端框架1-TypeScript框架2-CSS框架 2-前端Demo1-Html常用代码 2-知云接力3-Live2D平面动画 3-前端运维1-NPM版本管理 1-前端框架 1-TypeScrip…

C++:类和对象(下篇)

1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} private:int _year;int _mont…

JVM基本概念及内存管理模型

一、JVM基本概念 JVM(Java Virtual Machine,Java 虚拟机)是 Java 程序运行的核心组件。它负责将 Java 字节码转换为特定平台的机器指令,并提供内存管理、垃圾回收、安全性等功能。JVM 的主要功能包括以下: 加载和执行…

MyBatis - 单元测试 参数传递 注解 CRUD

目录 1. MyBatis 简介 2. 简单使用 MyBatis 2.1 创建 MyBatis 项目 2.2 连接数据库 2.3 创建 Java 类 2.4 创建 Mapper 接口 2.5 在测试类中执行 3. 单元测试 3.1 Test 3.2 SpringBootTest 3.3 BeforeEach / AfterEach 4. MyBatis 基础操作 4.1 配置 MyBatis 打印日…

大语言模型学习--本地部署DeepSeek

本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型(LLM)本地化部署与管理工具,旨在简化在本地计算机上运行和管理大语言模型…

shell文本处理

shell文本处理 一、grep ​ 过滤来自一个文件或标准输入匹配模式内容。除了 grep 外,还有 egrep、fgrep。egrep 是 grep 的扩展,相当于 grep -E。fgrep 相当于 grep -f,用的比较少。 用法 grep [OPTION]... PATTERN [FILE]...支持的正则描述…

Linux中死锁问题的探讨

在 Linux 中,死锁(Deadlock) 是指多个进程或线程因为竞争资源而相互等待,导致所有相关进程或线程都无法继续执行的状态。死锁是一种严重的系统问题,会导致系统资源浪费,甚至系统崩溃。 死锁的定义 死锁是指…

Baklib内容中台赋能企业智管

内容中台构建全场景智管 现代企业数字化运营中,全域内容管理能力已成为核心竞争力。通过智能知识引擎驱动的内容中台架构,企业能够实现跨部门、多形态数据的统一归集与动态调度。以某制造企业为例,其利用中台系统将分散在CRM、ERP及内部文档…

ArcGIS Pro高级应用:高效生成TIN地形模型

一、引言 在地理信息科学与遥感技术的快速发展背景下,数字高程模型(DEM)已成为地形表达与分析的关键工具。 三角网(TIN)作为DEM的一种重要形式,因其能够精准描绘复杂地形特征而广受青睐。 ArcGIS Pro为用…

leetcode112-路径总和

leetcode 112 思路 我们利用递归来实现,用result字段来记录结果值,默认为false,我们递归的时候传入需要的目标值,然后每次遍历到一个节点,就用目标值减去节点当前值,最终到叶子节点时,如果是…

LLM | 论文精读 | CVPR | PEACE : 通过多模态大语言模型(MLLMs)赋能地质图全面理解

论文标题:FairCLIP: Harnessing Fairness in Vision-Language Learning 作者:Yan Luo Min Shi Muhammad Osama Khan Muhammad Muneeb Afzal等 期刊:CVPR 2025 email:yuhan.huangwhu.edu.cn 创作不易,恳请大家点赞收…

网络学习(四)HTTPS中,SSL的单向认证与双向认证

目录 一、什么是SSL?1.1 SSL 的主要功能1.2 SSL 的工作原理1.3 SSL 的核心组件1.4 SSL 的应用场景1.5 SSL 与 TLS 的区别 二、SSL 单向认证、双向认证2.1 SSL 单向认证2.2 SSL 双向认证2.3 总结:SSL 单向认证和双向认证的区别 一、什么是SSL?…

Mybatis 中#{} 和${} 的区别是什么?

在 MyBatis 中,#{} 和 ${} 都是用于动态 SQL 语句中的占位符,但是它们的作用和使用方式是不同的。下面是它们的区别: 1. #{} —— 用于防止 SQL 注入和自动类型处理 #{} 是用来将参数安全地传递到 SQL 语句中,它会将传递的参数值…

HTML-05NPM使用踩坑

2025-03-04-NPM使用踩坑 本文讲述了一个苦逼程序员在使用NPM的时候突然来了一记nmp login天雷,然后一番折腾之后,终究还是没有解决npm的问题😞😞😞,最终使用cnpm完美解决的故事。 文章目录 2025-03-04-NPM使用踩坑[toc…

Zookeeper 的核心引擎:深入解析 ZAB 协议

#作者:张桐瑞 文章目录 前言ZAB 协议算法崩溃恢复选票结构选票筛选消息广播 前言 ZooKeeper 最核心的作用就是保证分布式系统的数据一致性,而无论是处理来自客户端的会话请求时,还是集群 Leader 节点发生重新选举时,都会产生数据…

C++ Primer 动态数组

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

基于 HTML、CSS 和 JavaScript 的智能九宫格图片分割系统

目录 1 前言 2 技术实现 2.1 HTML 结构 2.2 CSS 样式 2.3 JavaScript 交互 3 代码解析 3.1 HTML 部分 3.2 CSS 部分 3.3 JavaScript 部分 4 完整代码 5 运行结果 6 总结 6.1 系统特点 6.2 使用方法 1 前言 在当今数字化的时代,图片处理需求日益增长。…

Java+iTextPDF,实时生成与预览PDF文件的最佳实践!

Java+iTextPDF,实时生成与预览PDF文件的最佳实践! 背景 其实公司之前的项目里是用到了帆软报表的,然而最近接了一个新项目,这个项目独立部署在甲方的独立环境中,组长的意思是不用再单独部署一套帆软报表,成本太大,用其他方式实现一下。虽然我不太理解成本大在哪儿,不…

Linux 快捷命令链接

修改mvn命令 默认手动安装后,命令格式为 安装路径命令 /data/apache-maven-3.8.8/bin/mvn -v更改为通用的命令模式 [root ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core) [root ~]# echo $PATH /usr/local/node16/bin:/usr/local/sbin:/sbin…