跳到主要内容
视觉 RAG 里最难的那一格,不是找,是搬

视觉 RAG 里最难的那一格,不是找,是搬

画唠
画唠

· 阅读约 5 分钟

半个多月前 arXiv 挂了篇讲视觉 RAG 的 agent 论文,7 页,3 张图,标题平平无奇,我本来扫一眼就划走了。结果停在中间那句话上——作者说瓶颈不在找证据,在把证据摆好。

我第一反应:有这么严重?

我脑子里的视觉 RAG 一直是三段:检索、看、答。把相关那几页翻出来,剩下的交给模型,能有多难。后来我把它的 agent 循环画了一遍,画到第二版才认——作者是对的。而且难的那一格,恰好是所有 agentic 系统都在偷懒掠过的那一格。

等等等等,先别急。我把我以为的样子画出来,你就知道它为什么容易滑过去。

这活儿跟文字 RAG 不是一回事

视觉 RAG 处理的是那种"visually rich"的文档:财报、PPT、扫描件、满页图表的论文。检索单位是页图,不是段落。

为什么不先 OCR 一遍当普通 RAG 跑?因为你要找的东西,OCR 完就没了。流程图里箭头指哪、表格里两列数字怎么对齐、某段话旁边那个星号注——纯文本里全蒸发。所以检索回来的只能是图。后面所有麻烦,都是这一条定的。

麻烦有两个。

一个是证据稀疏:答案要的那一小块,可能只占某页一个角落,也可能散在四页上、每页只贡献一行。你不可能翻一页就收工。这个我懂。

另一个才是我想讲的。翻完之后怎么办。

第一版我画错了

我当时画出来是这样:

   问题 ──► agent 翻页看图 ──► 找到相关页 ──► 回答

一条线,很顺。画完我瞄了一眼,还觉得挺对。

然后往下想一步就卡住了。

agent 的"翻页看图"是有过程的:先翻第 3 页,没用;再翻第 7 页,有点关系;再翻第 12 页,对上了。这条轨迹里混着一堆白翻的页。你直接把它喂给最后那步生成,等于把没用的页和有关系的页摊在同一张桌子上,还额外搭上"我先看 3 再看 7"这种纯噪音的顺序。

再说视觉 token 有多贵。翻十页,十张图挂在 context 里,那张桌子当场就满——不是"可能满",是很普通的文档翻几页就满。上下文这回事玩过的人都懂,不展开。

那压成文字呢?

很多 agentic 系统就是这么干的:一边翻一边写文字笔记,最后拿笔记去答。我一开始觉得这招聪明,省地方又干净。后来意识到,坑就在这儿。

打个比方:你在图书馆查资料,边翻边记,笔记上写"第 42 页有个表,讲增长率"。最后你拿着笔记去写报告——写出来的是你对那个表的记忆,不是那个表。而视觉 RAG 里值钱的恰恰是"那个表长什么样"。你一压成文字,丢掉的正好是你要找的。

两头都是死路:全挂上下文里,炸;压成文字,丢。我盯着这个两难看半天,脑内只有羊叫。

重来

那篇论文的做法,我画成这样:

   问题
    │
    ├─►[探索] 翻页、看图
    │      │
    │      └─► 账本:只记"哪一页的哪一块跟问题有关" + 指针
    │             (原图不留在桌上)
    │
    ├─► 探索结束 → 按指针把原图捞回来
    │
    ├─►[整理] 把这些原图摆成一条逻辑序列(注意:不是翻页顺序)
    │
    └─►[回答] 只看这条序列 ──► 答案,每条论断指回某张图的某个位置

关键就两下。

第一下,探索阶段只维护一个文字账本,存的不是内容,是"观察 + 来源指针"——哪一页、哪一块、跟问题什么关系,就这些。图本身不留在桌上,所以桌子不会被翻过的页撑爆,早先翻到的证据也不会因为后面翻太多被挤掉。

第二下,探索一结束,按指针把原图重新捞回来,整理成一条给答案用的序列。这一步妙在它把"试探"和"下结论"在时间上切开了:生成答案时看到的是一组被摆好的图,不是 agent 一路跌跌撞撞的轨迹。而且每条论断都索引到具体的图,视觉 grounding 是被逼出来的,不靠自觉。

训练那边是冷启动轨迹蒸馏,加一个证据感知的 RL,奖励看三件事:证据覆盖到没到、整理得够不够紧凑、答案对不对。第三条我听懂了。前两条——覆盖和紧凑怎么防着模型刷分——我还没琢磨明白,先撂这儿,想清楚了再补。

这个比喻漏风的地方

"账本"这个比方漏了两处。

一是它听着像个 URL 列表,追个指针就完事。实际不是。探索时判断"这条观察算不算相关",本身就是模型在做判断,判错一条,账本当场脏掉,后面摆得再整齐也只是整齐的错误。我在图里把"记账"画成了机械动作,可它其实是整条环里最不可靠的一格。这是图上最大的简化,别被我骗过去。

二是"摆成逻辑序列",我在图里画得像个排序,其实它更接近重写:同一张图,探索时被当成"证据 A",整理时可能被挪到另一个论点底下。指针是硬的,摆法是软的。图只画出了硬的那一半。

还有一点老实交代:这套东西我没跑过。7 页论文能给的信息也就这么多,我做的事是把它的结构画开,不是给它背书。

画开完了

留个自检:现在你能不能用自己的话,说清"探索轨迹"和"整理好的证据"是两种东西?

如果讲到一半卡在"那不都是同一堆图吗"——卡住的就是我第一版画错的那个地方。跟我说一声,咱们一起补。

下期想画开哪个,你说了算。我清单上还压着 embedding、lost in the middle、还有"为什么 agent 翻着翻着就把自己要找的东西忘了"。

本期画开:找到不等于答对,中间那段搬运没人画。这件事想通的那一刻,真的挺酷。

画唠
画唠

把被讲玄的概念用图 + 比喻 + 动手实验拆到咔哒扣明白,错的也保留。

查看主页 →