ViDoRAG:开源多模态文档检索框架,多智能体推理+图文理解精准解析文档

本文涉及的产品
图像搜索,任选一个服务类型 1个月
简介: ViDoRAG 是阿里巴巴通义实验室联合中国科学技术大学和上海交通大学推出的视觉文档检索增强生成框架,基于多智能体协作和动态迭代推理,显著提升复杂视觉文档的检索和生成效率。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🚀 「PDF分析要失业?阿里开源视觉文档核弹:多智能体动态推理,复杂图表秒变答案」

大家好,我是蚝油菜花。你是否还在为这些场景抓狂——

  • 👉 百页技术文档图文混杂,关键信息像玩「大家来找茬」
  • 👉 学术论文图表公式连环嵌套,检索3小时理解5分钟
  • 👉 产品手册跨页流程图看不懂,AI生成答案总在瞎编...

今天揭秘阿里通义实验室的 ViDoRAG ,重新定义视觉文档理解!这个融合多模态检索与动态推理的框架,让AI真正学会「看图说话」:

  • ✅ 高斯混合模型 智能调配文本/视觉权重
  • ✅ Seeker-Inspector-Answer 三体协作推理
  • ✅ 动态调整检索粒度 拒绝无效信息轰炸

这个由阿里巴巴通义实验室联合中科大、上交大推出的视觉文档检索增强生成框架,基于多智能体协作和动态迭代推理,显著提升了复杂视觉文档的检索和生成效率。无论是教育、金融还是医疗领域,ViDoRAG 都能为你提供精准的文档分析和答案生成服务。接下来,让我们一起深入了解这个强大的工具!

🚀 快速阅读

ViDoRAG 是一个基于多智能体协作的视觉文档检索增强生成框架。

  1. 核心功能:整合视觉和文本信息,支持动态迭代推理,提升复杂文档的理解和生成效率。
  2. 技术原理:采用高斯混合模型(GMM)的多模态混合检索策略,动态调整检索结果数量,优化生成质量。

ViDoRAG 是什么

ViDoRAG

ViDoRAG 是阿里巴巴通义实验室联合中国科学技术大学和上海交通大学推出的视觉文档检索增强生成框架。它基于多智能体协作和动态迭代推理,解决了传统方法在处理复杂视觉文档时的检索和推理局限性。

ViDoRAG 使用高斯混合模型(GMM)的多模态混合检索策略,动态调整检索结果数量,优化文本和视觉信息的整合。框架中包含 Seeker、Inspector 和 Answer 三种智能体,分别负责快速筛选、详细审查和最终答案生成,基于迭代交互逐步细化答案,提升生成质量和一致性。

ViDoRAG 的主要功能

  • 多模态检索:整合视觉和文本信息,实现精准的文档检索。
  • 动态迭代推理:多智能体协作(Seeker、Inspector、Answer Agent),逐步细化答案,提升推理深度和准确性。
  • 复杂文档理解:支持单跳和多跳推理,处理复杂的视觉文档内容。
  • 生成一致性保障:基于 Answer Agent 确保最终答案的准确性和一致性。
  • 高效生成:动态调整检索结果数量,减少计算开销,提升生成效率。

ViDoRAG 的技术原理

ViDoRAG-pipeline

  • 多模态混合检索:结合文本和视觉检索结果,基于高斯混合模型(GMM)动态调整检索结果数量。GMM 拟合查询与文档集合的相似度分布,动态确定最优的检索结果数量(Top-K),避免固定数量检索带来的噪声和计算开销,有效整合视觉和文本信息,提升检索精度,减少无关信息的干扰。
  • 动态迭代推理框架
    • Seeker Agent:负责快速筛选相关图像或文档片段,提供全局线索。
    • Inspector Agent:对筛选结果进行详细审查,提供反馈或初步答案。
    • Answer Agent:整合 Inspector 的初步答案,验证一致性生成最终答案。
  • 粗到细的生成策略:从全局视角开始,逐步聚焦到局部细节,多智能体协作实现从粗到细的生成过程,减少无关信息的干扰,提升生成效率和准确性。
  • 推理能力激活:基于迭代推理和多智能体协作,激活模型的推理能力,特别是在处理复杂视觉文档时,提升模型在多跳推理和复杂文档理解任务中的表现。
  • 动态检索长度调整:基于 GMM 动态调整检索结果数量,避免固定 Top-K 值带来的局限性,减少计算开销,提升检索效率和生成质量。

如何运行 ViDoRAG

1. 环境准备

# 创建环境
conda create -n vidorag python=3.10
# 克隆项目
git clone https://github.com/alibaba-nlp/ViDoRAG.git
cd ViDoRAG
# 安装依赖
pip install -r requirements.txt
AI 代码解读

2. 构建索引数据库

在嵌入整个数据集之前,可以运行 ./llm/vl_embedding.py 检查嵌入模型是否正确加载:

python ./llm/vl_embedding.py
AI 代码解读

然后运行 ingestion.py 嵌入整个数据集:

# 文档嵌入和多模态嵌入
python ./ingestion.py
AI 代码解读

3. 运行多模态检索器

尝试使用基本的单模态搜索引擎:

from search_engine import SearchEngine
# 初始化引擎
search_engine = SearchEngine(dataset='ViDoSeek', node_dir_prefix='colqwen_ingestion',embed_model_name='vidore/colqwen2-v1.0')
# 检索结果
recall_results = search_engine.search('some query')
AI 代码解读

4. 运行多智能体生成

可以直接使用 vidorag_agents.py 脚本进行生成,或将其集成到自己的框架中:

from llms.llm import LLM
vlm = LLM('qwen-vl-max')
agent = ViDoRAG_Agents(vlm)
answer=agent.run_agent(query='Who is Tim?', images_path=['./data/ExampleDataset/img/00a76e3a9a36255616e2dc14a6eb5dde598b321f_1.jpg','./data/ExampleDataset/img/00a76e3a9a36255616e2dc14a6eb5dde598b321f_2.jpg'])
print(answer)
AI 代码解读

5. 运行评估

使用基于 LLM 的评估方法进行端到端评估:

python eval.py \
  --experiment_type retrieval_infer ## 选择 retrieval_infer/dynamic_hybird_retrieval_infer/vidorag
  --dataset ViDoSeek ## 数据集文件夹名称
  --embed_model_name_vl ## 视觉语言嵌入模型名称
  --embed_model_name_text ## 文本嵌入模型名称
  --embed_model_name ## 仅用于单一嵌入模型评估
  --generate_vlm ## 视觉语言模型名称,如 gpt-4o/qwen-max-vl
AI 代码解读

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦

目录
打赏
0
8
8
6
380
分享
相关文章
PP-DocBee:百度飞桨多模态文档解析神器,中文场景SOTA准确率一键提取表格图表
PP-DocBee 是百度飞桨推出的专注于文档图像理解的多模态大模型,基于 ViT+MLP+LLM 架构,具备强大的中文文档解析能力,适用于文档问答、复杂文档解析等场景,支持多种部署方式。
168 1
HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析
本书深入解析HarmonyOS应用框架开发,聚焦Ability Kit与Accessibility Kit两大核心组件。Ability Kit通过FA/PA双引擎架构实现跨设备协同,支持分布式能力开发;Accessibility Kit提供无障碍服务构建方案,优化用户体验。内容涵盖设计理念、实践案例、调试优化及未来演进方向,助力开发者打造高效、包容的分布式应用,体现HarmonyOS生态价值。
96 27
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
Resume Matcher 是一款开源AI简历优化工具,通过解析简历和职位描述,提取关键词并计算文本相似性,帮助求职者优化简历内容,提升通过自动化筛选系统(ATS)的概率,增加面试机会。
155 18
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
R1-Onevision:开源多模态推理之王!复杂视觉难题一键解析,超越GPT-4V
R1-Onevision 是一款开源的多模态视觉推理模型,基于 Qwen2.5-VL 微调,专注于复杂视觉推理任务。它通过整合视觉和文本数据,能够在数学、科学、深度图像理解和逻辑推理等领域表现出色,并在多项基准测试中超越了 Qwen2.5-VL-7B 和 GPT-4V 等模型。
137 0
R1-Onevision:开源多模态推理之王!复杂视觉难题一键解析,超越GPT-4V
Java机器学习实战:基于DJL框架的手写数字识别全解析
在人工智能蓬勃发展的今天,Python凭借丰富的生态库(如TensorFlow、PyTorch)成为AI开发的首选语言。但Java作为企业级应用的基石,其在生产环境部署、性能优化和工程化方面的优势不容忽视。DJL(Deep Java Library)的出现完美填补了Java在深度学习领域的空白,它提供了一套统一的API,允许开发者无缝对接主流深度学习框架,将AI模型高效部署到Java生态中。本文将通过手写数字识别的完整流程,深入解析DJL框架的核心机制与应用实践。
91 3
基于 Megatron 的多模态大模型训练加速技术解析
Pai-Megatron-Patch 是一款由阿里云人工智能平台PAI 研发的围绕英伟达 Megatron 的大模型训练配套工具,旨在帮助开发者快速上手大模型,打通大模型相关的高效分布式训练、有监督指令微调、下游任务评估等大模型开发链路。本文以 Qwen2-VL 为例,从易用性和训练性能优化两个方面介绍基于 Megatron 构建的 Pai-Megatron-Patch 多模态大模型训练的关键技术
从“泛读”到“精读”:合合信息文档解析如何让大模型更懂复杂文档?
随着deepseek等大模型逐渐步入视野,理论上文档解析工作应能大幅简化。 然而,实际情况却不尽如人意。当前的多模态大模型虽然具备强大的视觉与语言交互能力,但在解析非结构化文档时,仍面临复杂版式、多元素混排以及严密逻辑推理等挑战。
64 0
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
170 29
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

热门文章

最新文章

推荐镜像

更多