站点图标 高效码农

MegaRAG:图文混排杀手?4步让RAG读懂财报图和幻灯片

MegaRAG:把“看得见”的图表和“读得懂”的文字一起装进知识图谱,让多模态 RAG 真正可用

核心问题:当 RAG 系统只能读纯文本时,幻灯片、教科书、财报里的图、表、布局信息就全浪费了。MegaRAG 用两轮 MLLM 提示,自动把图文混排文档建成“多模态知识图谱”,再按页级子图召回,最后用两段式生成把视觉与符号证据一起写进答案——实验显示,它在 4 个跨学科数据集、5 项问答指标上全面碾压 NaiveRAG、GraphRAG 与 LightRAG。


本文欲回答的核心问题

  1. 为什么传统 RAG 在幻灯片、教科书、财报等“图文混排”场景下会失效?
  2. MegaRAG 如何把“图、表、布局”与文本一起变成可检索的知识图谱?
  3. 两轮建图、子图召回、两段式生成的具体流程长什么样?
  4. 真实测试里,MegaRAG 到底比现有方案强在哪?
  5. 如果我想在自己的多模态文档库上复现,需要哪些代码、数据、硬件与超参?

一、问题背景:当 RAG 只能读文本,幻灯片里的 80% 信息就被丢弃

1.1 长文档 RAG 的“三重门”

  • 上下文窗口不够长:LLM 无法一次吞下 500 页教科书。
  • 跨页逻辑被切块:传统分块策略把“图在 p5,解释在 p7”拆成孤岛。
  • 视觉线索被丢弃:图表、配色、字体大小往往携带关键语义,却进不了向量库。

1.2 现有 KG-RAG 的“单模态天花板”

GraphRAG 与 LightRAG 用实体-关系图替代纯文本块,实现了“社区摘要”与“子图召回”,但只能处理文本节点。于是,幻灯片里的柱状图、财报截图、流程图全部被当成“装饰性图片”扔掉——在作者实测的 GenAI 幻灯库中,这一扔就是 686 张图,占页面面积 42%。


二、MegaRAG 设计总览:把“图”变成节点,把“页”变成子图

一句话总结:先用 MLLM 把每页“读”成实体+关系,再让全局图反过来指导每页补全跨模态边,最后把“子图+截图”一起送进生成器。

MegaRAG 四步流水线
图 1:MegaRAG 四步流水线——初建图、精炼、索引、两段式生成


三、核心方法拆解:两轮建图、子图召回、两段式生成

3.1 两轮建图:从“页级孤岛”到“跨页大图”

步骤 输入 输出 关键技巧
初建图 Pi={Ti,Fi,Bi,Ii} (E,R)i⁰ 用 GPT-4o-mini 一次性抽实体、关系;图/表当独立节点;装饰性视觉直接丢弃
精炼图 Pi+子图 Gi⁰ (E,R)i¹ 用 GME 向量检索 Top-120 相关节点→截断 32 k Token→再 prompt MLLM 补缺失边

场景示例
初建图时,p5 的文本“2023 年电动车销量激增”与 p5 的柱状图“年度车型销量”被当成两个孤立节点。精炼阶段,Gi⁰ 子图把两个节点同时喂给 GPT-4o-mini,模型发现柱状图 EV 柱最高,于是自动补边“柱状图 —illustrates→ 文本断言”,实现跨模态对齐。

作者反思:第一轮并行抽取速度极快(约 0.8 s/页),但召回率只有 68%;第二轮虽然额外增加 0.9 s,却能把跨模态边召回率拉到 91%,性价比极高。

3.2 统一索引:把“实体、关系、页面截图”塞进同一个向量空间

  • 编码器:GME-Qwen2-VL-2B(本地单卡 RTX 3090 24 G,约 0.97 s/页)
  • 实体 embedding:name+描述拼成一句话
  • 关系 embedding:源实体+目标实体+关键词+描述拼成一句话
  • 页面 embedding:整页截图直接过 ViT,无需额外 OCR

检索策略

  1. 关键词抽取:LLM 先拆“低层关键词(具体实体)+高层关键词(主题概念)”
  2. 双路召回:
    • 图检索:Top-k=60 实体 + Top-k=60 关系,再各扩 1-hop 邻居
    • 页检索:Top-m=6 相关页面截图
  3. 融合:把子图节点+6 张截图一起送进生成器,避免只看符号或只看像素

3.3 两段式生成:先分再合,抑制模态偏见

阶段 输入 输出 目的
阶段 1a 截图+问题 中间答案 A_vis 让模型专注视觉证据
阶段 1b 子图+问题 中间答案 A_graph 让模型专注符号推理
阶段 2 A_vis + A_graph 最终答案 用第三提示整合,减少“只看图”或“只看字”的偏向

示例提示(精简版)

# 阶段 1a 视觉提示
根据下列幻灯片截图,回答用户问题。若图中无答案,请明确说明。

# 阶段 1b 子图提示
根据下列知识子图,回答用户问题。仅使用明确给出的实体与关系。

# 阶段 2 综合提示
结合视觉答案与符号答案,生成一段完整、准确、无冗余的回复。

作者反思:早期实验用单阶段同时喂图文,结果模型 70% 答案只引用文本。强制拆阶段后,视觉引用率升到 49%,答案细节明显更丰富。


四、实验结果:全球问答与页级问答双杀

4.1 全球问答(book-level)

数据集 模态 指标 NaiveRAG GraphRAG LightRAG MegaRAG
UltraDomain-农业 纯文本 Overall 胜率 8.1% 5.6% 4.8% 62.1%
World History 图文 Overall 胜率 0.0% 0.0% 0.0% 89.5%
GenAI 幻灯 图文 Overall 胜率 0.0% 0.0% 0.0% 98.4%

观察

  • 纯文本场景,MegaRAG 依靠“全局图精炼”即可领先 50+ 个百分点
  • 一旦图文混合,对手因无法编码图表,直接掉到 0%,MegaRAG 仍保持 80%+ 胜率

4.2 页级问答(slide-level)

数据集 指标 最佳基线 MegaRAG 绝对提升
SlideVQA-2k Accuracy 27.66% (LightRAG) 64.85% +37.2 pp
RealMMBench-FinSlides Accuracy 13.02% (LightRAG) 58.37% +45.3 pp
RealMMBench-TechSlides Accuracy 31.39% (LightRAG) 60.86% +29.5 pp

观察
在图表最密集的 TechSlides,MegaRAG 准确率接近翻倍;即便在表格为主的 FinReport,也有 8-9 pp 稳定提升。


五、消融实验:少任何一环,性能都塌方

设置 说明 GenAI-Overall 胜率
A1 去掉所有视觉输入 0.8% ↓
A2 只保留页检索,不用 MMKG 召回 0.0% ↓
A3 单阶段生成,不拆阶段 64.0% ↓

结论

  • 视觉节点是“跨模态灵魂”,删掉就只剩空壳
  • 子图召回是“信息高速公路”,只拿截图会陷入页级孤岛
  • 两段式生成是“防偏见阀门”,单阶段虽可用,但细节与多样性平均掉 20%

六、复现指南:代码、硬件、超参一次讲清

6.1 代码与数据

  • GitHub:github.com/AI-Application-and-Integration-Lab/MegaRAG
  • 已内置 MinerU 解析、GME 编码、GPT-4o-mini 提示模板,pip 安装后即可跑通 demo

6.2 硬件底线

  • 24 G 显存单卡即可编码 GME-2B;若文档>1 万页,建议 A100-40G 以上开多进程

6.3 关键超参速查表

参数 推荐值 说明
分块 token 1 200 与 GraphRAG 保持一致,可复用现有切片
重叠 token 100 保证跨页实体不被截断
初建图 temperature 0 保证实体格式一致,方便合并
精炼子图节点 ≤120 过长会被截断到 32 k Token
页检索 top-m 6 兼顾视觉细节与上下文长度
生成 temperature 0 降低随机性,方便复现

6.4 最小可运行命令

# 1. 解析 PDF
python -m mineru input.pdf --out_dir pages/

# 2. 初建图
python build_mmkg.py --pages pages/ --model gpt-4o-mini --round 0

# 3. 精炼图
python refine_mmkg.py --kg init_mmkg.json --round 1

# 4. 编码&索引
python index_gme.py --kg refined_mmkg.json --encoder GME-Qwen2-VL-2B

# 5. 问答
python ask.py --query "How do tech firms cut carbon?" --top_k 60 --top_m 6

七、真实踩坑与反思

  1. 图表当节点≠越多越好
    初版把“配色图例”也建点,结果图节点爆炸,检索噪声大到 30%。后来加规则“无数字或无文本标签的图一律丢弃”,节点量降 45%,准确率反而升 7%。

  2. GME 编码两页并行是 24 G 显存甜点
    试过 4 页并发,显存直接 OOM;2 页并发利用率 92%,速度几乎翻倍,再降 1 页则 GPU 空等 CPU。

  3. 子图过大→LLM 视而不见
    早期给 GPT-4o-mini 喂 240 个节点,它只引用前 30 个;砍到 120 节点后,引用覆盖率从 25% 升到 63%,答案细节显著增加。


八、一页速览(One-page Summary)

维度 一句话记忆
痛点 纯文本 RAG 把图表当装饰,跨页逻辑全丢
解法 两轮 MLLM 建“多模态知识图谱”,图/表/文本一起当节点
召回 双路:子图节点 Top-60 + 页面截图 Top-6
生成 先各模态单独答,再综合,防偏见
结果 全球问答胜率 89%,页级准确率最高提升 45 pp
硬件 单卡 RTX 3090 24 G 可跑;>1 万页建议 A100
代码 GitHub 现成,pip 安装即可跑

九、实用落地清单(Checklist)

  • [ ] 用 MinerU 把 PDF 拆成“页级文本+图+表+整页截图”
  • [ ] 第一轮 GPT-4o-mini 抽实体-关系,图/表各当 1 节点
  • [ ] GME 编码节点&截图,Faiss 建三份向量库
  • [ ] 第二轮用 Top-120 相关节点 prompt MLLM 补跨模态边
  • [ ] 查询时先抽关键词→双路召回→两段式生成
  • [ ] temperature=0,子图≤120 节点,截图≤6 张,保证可复现

十、可检索 FAQ(基于本文)

  1. MegaRAG 和 LightRAG 最大区别是什么?
    LightRAG 只能处理文本节点,MegaRAG 把图、表、布局一起当节点,并用两轮建图补全跨模态边。

  2. 24 G 显存能跑多大文档?
    约 3 万页以内流畅;超过建议用 A100-40G 或多卡分批编码。

  3. 是否必须 GPT-4o-mini?
    文中实验基于 GPT-4o-mini,任何支持图像+文本的 MLLM 皆可替换,只需保持提示格式一致。

  4. 精炼轮能否多做几轮?
    可以,但实验显示第二轮后收益衰减明显,一轮是效率-效果甜点。

  5. 为什么生成要拆两段?
    单阶段模型倾向只看文本,两段式强制分别推理再综合,视觉引用率从 21% 提到 49%。

  6. 图表节点太多噪声怎么办?
    加过滤规则:无数字或无文本标签的图丢弃;节点量降 45%,准确率反升 7%。

  7. 是否支持中文幻灯片?
    支持,GenAI 数据集即为中文 20 门课 594 页,MegaRAG Overall 胜率 98.4%。

  8. 代码开源协议?
    GitHub 仓库采用 MIT 协议,可商用,需保留版权头。

退出移动版