拆解 RAG:记忆检索到底怎么工作
2 min read|把 RAG 拆成四段——切片、向量化、召回、重排,每一段都能坏。
RAG(检索增强生成)被讲得神乎其神,其实它的结构非常朴素:先找,再答。难点不在概念,在它有很多个可以坏掉的接缝。
一、最小闭环
一段完整的检索,拆开是四步:
- 切片:把原始内容切成合适的块;
- 向量化:把每块变成一组数字(向量);
- 召回:拿问题去比,挑出最像的几块;
- 重排 / 拼装:把挑出来的内容喂给模型生成回答。
其中任何一步的假设变了,结果都会变差——而且是静默地变差。
二、最常见的四个坏点
- 切片粒度:切太碎,语义散;切太大,噪声多。这是最常被低估的一步。
- 模型不一致:存的时候用 A 模型转向量,查的时候用 B 模型——两套坐标系,根本对不上。
- 索引过期:内容更新了,索引没重建,检索到的是旧世界。
- 静默失败:检索返回空结果,程序照常往下走,只是答案开始胡说。
最后一条最要命:它不报错。
三、用最小代价做一次体检
不必上全套评测框架,先做三件事:
- 用你确定答案的问题去查,看答案所在的块有没有被召回;
- 故意问一个「库里肯定没有」的问题,看它会不会编;
- 更新一条内容,再查它,看索引是不是自动跟上了。
这三下就能测出大部分问题。
四、什么场景不需要 RAG
如果知识量小、更新频繁、或者答案本来就要求精确匹配——直接全文塞进上下文,或者用关键词检索,往往比向量检索更稳。
技术选型的第一原则是:先问需不需要,再问用哪个。