检索增强生成RAG
你可能会说
AI 说它不知道我们公司的规定,能不能先把它查一遍再回答?
回答前先去你的资料库里查,把查到的段落连同问题一起交给模型,让它照着资料答并给出出处。例如问「退款政策上个月改过吗」,系统先在你的售后手册里搜出相关几段,只把命中的那一段发给模型;模型据此作答,并告诉你来源。没接资料库时,它只能按训练时学到的常识猜。
也常被叫作Retrieval-Augmented Generation检索增强知识库问答
运行流程 · 查一遍再答
用户提问我们的退款政策上个月改过吗?
① 在知识库里检索退款政策 v3 · 7 天无理由售后手册 第 2 节 · 命中会员等级说明会员手册 · 无关运费说明售后手册 第 5 节 · 无关
→② 连同问题拼成一次请求问题 + 命中的 1 段资料 + 「只根据资料回答,并给出出处」
→③ 模型作答“上个月没有改动,仍是 7 天无理由”
来源:售后手册 第 2 节
来源:售后手册 第 2 节
先把问题转成能检索的形式(关键词或语义向量),而不是整段丢给模型
在切好块、算过向量的资料里捞出最相关的几段,命中的是块不是整本文档
把命中的段落、原问题和「只根据资料回答」的指令拼在一起,这才是模型真正看到的内容
模型根据这段资料作答并带上出处;资料里没有答案时,它应该说不知道,而不是补一个
容易混淆?这样区分
RAG≠微调
RAG 不改模型,只换资料库:手册更新了,第二天再问就是新答案。微调是拿数据去训练模型本身,要时间和成本,资料一变就得再训一次。
RAG≠把整本手册都塞给模型
一次请求能带的内容有限,越长越贵、也越容易抓错重点。RAG 的关键正是先筛后给:只把最相关的几段送进去。
常见做法 · Variants
关键词检索Keyword / BM25
搜索 "退款政策 v3"字面命中专有名词、合同编号、型号这类必须一字不差的内容;换个说法就搜不到
语义检索Vector Search
买回来的东西想退⇒退款政策
用户不会用你的措辞提问时,按意思也能找到相关段落
混合检索 + 重排Hybrid + Rerank
两路候选+重新排序
多数产品实际在用:先广撒网,再把最靠得住的几条送到模型面前
典型使用场景
公司内部问答:把制度手册变成能问的助手
出差住宿标准是多少?
一线城市每晚 500 元以内。
来源:财务制度 第 4 节
来源:财务制度 第 4 节
资料更新后第二天再问就是新答案,模型本身没动过
客服助手引用真实资料回答,而不是编一段客气话
订单 #2048已发货 3 天想退货
查到的规则
签收后 7 天内可退,运费由商家承担(数码类)
签收后 7 天内可退,运费由商家承担(数码类)
回答按这段规则写,附「退换货流程」链接
延伸阅读 · 权威出处