技术

RAG

检索增强生成

在运行时把相关上下文注入 LLM Prompt,这些上下文来自你自己的数据,让模型基于你的知识回答,而不是它训练数据里的知识。

最近审阅: 2026-05-24 审阅人Kevin Riedl wiki ↗

RAG 是让 LLM 能回答它没被训练过的数据相关问题的架构。机制很直接:拿用户的问题,从你的语料里检索最相关的片段(向量检索、关键字检索或两者混合),塞进 Prompt,让模型回答。

RAG 之所以存在:用私有数据训练模型既贵又慢,而且数据一变就过时。RAG 用「把数据当作运行时上下文」绕过了这一点。代价是检索质量成为瓶颈;上下文差的模型会信心十足地答错。

关于 RAG 的不性感真相:80% 的工作是把检索做好(切块策略、Embedding 选择、Rerank、混合搜索),20% 才是模型本身。把 RAG 包装成一键式功能的供应商,卖的是容易的那一部分。

// FAQ

常见问题

常见问题

微调贵、慢,数据一变就过时;权重里也不会保留出处。RAG 把数据当运行时上下文,更新成本低、能引用来源、错答时容易调试。除非你的语料几乎不变且需要风格内化,RAG 几乎总是更合适的起点。
几乎一定是检索阶段。切块策略差、Embedding 模型选错、没做 Rerank、单一相似度信号不够 / 都会让模型拿到不相关的上下文,然后自信地胡编。模型本身只承担 20% 的工作量,剩下 80% 全在检索。
对短查询、模糊语义匹配够;对涉及具体数字、ID、专有名词的查询,纯向量经常失败。生产级 RAG 普遍是混合检索:BM25 关键词 + 向量相似度 + Rerank。单靠向量数据库是 Demo,不是产品。