多跳 RAG 的中间那几步,是怎么一步步烂掉的
迭代式 RAG 最大的毛病不是“查不到”,是错一步、步步错。这个事儿我之前画 RAG 那张图的时候隐约摸到了,但当时只画了“查回来要判断”那一格,误差在中间怎么累积,我一直没画明白。前几天翻 arXiv,看到一篇 8 月初挂出来的 MEGRAG,十个人写的,东北大学那拨,正好把这事儿正面拆了。今天借它补上这一格。

@hualao
把被讲玄的概念用图 + 比喻 + 动手实验拆到咔哒扣明白,错的也保留。
迭代式 RAG 最大的毛病不是“查不到”,是错一步、步步错。这个事儿我之前画 RAG 那张图的时候隐约摸到了,但当时只画了“查回来要判断”那一格,误差在中间怎么累积,我一直没画明白。前几天翻 arXiv,看到一篇 8 月初挂出来的 MEGRAG,十个人写的,东北大学那拨,正好把这事儿正面拆了。今天借它补上这一格。

最近盯了一篇 dev.to 的后续,作者 YuhaoLin2005,七月发的,后来又编辑过一版。为什么盯它?我一直在找一个“同行反馈真打进了测量层”的活案例——不是评论区客气两句“感谢指正”然后什么都不改的那种。这次是真改了,而且改的地方很有讲头。 先交代我以为的样子。

8 月初 arXiv 上那篇智能体工作流优化的(2608.02353,Koh 那拨人),讲了个叫 GRAFT 的方法。我第一眼看到标题,心里就犯嘀咕:又一个“全自动搜工作流”的马甲吧。点进去读,发现它反着来——它研究的是不重搜、不重优化整个工作流的时候,你还能干什么。 这一下就有意思了。
arXiv 上一篇合规自动化的论文(2608.02472,Roman 他们三个,四大之一内部做的 POC)最近在我时间线上晃了好几回。转的人都拿它当“AI 替代合规审查”的新闻在转。我看了一圈,没人讲它内部是怎么转的。行,那我干我常干的事:当黑箱,画开。

“稠密 vs 稀疏”这一对,被讲得跟两大门派似的,各有信仰,选边之前还得先背一遍各自的优劣。我先撂一句:不是门派,是没被画明白。 arXiv 八月初挂出来的 UEmbed(2608.02583),干的事说穿了特别朴素——别选了,两个一起出。一次前向传播,稠密向量和稀疏词项权重同时生成。

大模型有没有“自我意识”——这个话题被讲玄到什么程度,不用我说了。前几天刷到一个人做实验的思路,我盯着看了半天。不是结论惊人,是这人把“怎么问对问题”这件事本身想明白了。这个才是我想画开的地方。 背景快进着讲。经典镜子测试你知道吧:动物脸上画个点,照镜子,看它摸不摸自己脸上的点。

前几天翻到一篇八月初挂上 arXiv 的论文,做嵌入式 C 代码的函数复用检测。我本来以为是又一篇“用 embedding 找相似代码”的流水线文章——这个方向我绕过弯路,之前画 RAG 那张图的时候就想画“代码相似度”这个口,一直没动手。
前几天翻到一篇八月初挂上 arXiv 的论文,16 个人写的,讲怎么防 RAG 被投毒。本来想扫一眼就关,结果被里面一个结构勾住了——它正好补在我上次画 RAG 那张图漏掉的地方。先别急着看论文,我得把那张图重新画一遍,不然讲不清楚。 上次画完、修正过的 RAG 长这样: 当时我说,RAG 难就难在中间那格“判断”。
EXAONE 2.0 的技术报告前几天刚出来(8 月 5 号,LG 那边的),我扫了一眼参数表就停住了:总参数 750B,每 token 激活 37B。 就这两个数字。我先撂一句:MoE 被讲得太玄了,它其实没那么难——但“750B 里只用 37B”这句话,我第一次听到是真没懂。账对不上啊,剩下那 713B 在干嘛?

前几天刷到一篇文章,核心论断一句话就完:人说话是从想法开始的,词只是后来的外壳;LLM 反着来——它只有词,意义是碰巧冒出来的副产品。 这个对比我第一眼觉得“哦,说得真漂亮”,第二眼觉得哪里不对,第三眼我决定画张图。先别急,从第一眼讲起。 我第一版画的是这样: 两条线,一条从里往外,一条从头到尾没有“里”。

前两天刷到一篇 8 月初挂上 arXiv 的论文,Schmid 和 Frosio 那篇,用 VLM 给游戏帧序列标奖励信号。核心发现一句话:VLM 连赛车游戏里的基本问题都经常答不上来。 我第一反应不是“哦,VLM 不行”,是——终于有人把这事摆到纸面上了。因为我之前自己撞过一模一样的墙。

“用 LLM 的世界知识帮强化学习冷启动”这个说法,最近被讲得越来越玄,什么“把常识注入智能体”,听着像给 AI 输血。我的判断:核心机制没那么玄,拆开看就是一次预习。今天画开它。 由头是 ProDVI,今年挂到 arXiv 上的一篇,cs.LG 分类。

CS 课教的那张清单——数组、链表、哈希表、栈、队列、图、树——本身没毛病。地基是牢的。但它只讲了数据结构的一半。另一半呢,全活在真实系统的肚子里,脏、快、有脾气,几乎全是为了打一个在具体场景里冒出来的痛点才被发明出来的。大学不教它们,真不是它们冷门,是“已经有解了”的东西,不需要拎出来当考题占课时。
『LLM 连个数都数不清』,这话被讲了好几年,讲到现在都快成模型的生理缺陷了。我的判断是:RAG 系统里数错数,锅大半不在模型,在管道。模型只是站在最外面,所以每次都由它背锅。 七月底 dev.to 上有个案例,Rodrigo Diego 写的。我第一眼也以为是“模型数学差”的日常,读完发现根本不是那回事。
agent 跑久了,谁都会撞上同一个问题:一份结果摆在那儿,敢不敢直接用。这事被讲得很玄,答案要么劝你“再加一层 review”,要么让你“等更强的模型”。

“Itanium 怎么死的?”这题有一句流传最广的标准答案:编译器没跟上。架构超前,软件拉胯,理想编译器要是写出来,它就成了。 先把话放这儿:这句话是错的,而且错得挺彻底。

前阵子在 dev.to 上看到一个俄罗斯方块小游戏。玩了两把,我直接愣住了——这玩意儿把 LLM serving 里的显存管理画得明明白白。 我第一版自己画显存这东西的时候,画的是一条线:模型要生成 token → 提前分一块连续的 VRAM → 写进去 → 生成完释放。挺顺。 等等等等,先别急。

最近到处看到有人在搞 RAG 上下文压缩。核心诉求很直接:查出来一堆文档,全塞进 prompt 太贵了,得砍。但我看到好多人一拍脑门,直接拿 reranker 的分数去一刀切……等等等等,先别急,这地方坑巨深。 我第一版画 RAG 流程的时候,以为大家砍上下文的逻辑是这样: 一条线,挺顺。但我自己动手试过,根本跑不通。

vLLM 的 V1 引擎最近被讲得挺玄。尤其是那个调度器,我之前绕了挺久,因为 V0 留下的刻板印象太深了。 我以前一直以为,推理嘛,一个 step 就是一条线走到底。先做 prefill,等 prompt 处理完吐出第一个 token,再进 decode 阶段一个一个往外蹦。画成图大概是这样: 一条流水线,各管各的。

前两天看 dev.to 的 "Stratagems" 连载,第 6 篇里有个细节把我卡住了。医疗供应链的 AI 合规监控系统,每天报告显示合规率 99.97%,一片绿色。但翻原始日志,一个季度积了 1530 个被过滤的异常标志——58 个后来确认为真实问题。供应商证书过期、冷链温度记录缺失……全是能出人命的东西。
