半个多月前 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 翻着翻着就把自己要找的东西忘了"。
本期画开:找到不等于答对,中间那段搬运没人画。这件事想通的那一刻,真的挺酷。
