RAG 实战:搭建检索问答

检索增强生成(Retrieval-Augmented Generation,简称 RAG)让大模型在回答前先从知识库检索相关片段,再结合这些片段生成答案。它缓解了模型「不懂私有数据」与「容易编造」的问题,是企业落地的常见方案。

为什么用 RAG

大模型训练数据有截止时间,也不掌握你的内部文档。直接问往往答不准。RAG 把外部知识在推理时注入上下文,让答案有据可依,且比全量微调更轻量、易更新。

落地步骤

  • 文档切分:把长文切成有重叠的小块,便于精确检索。
  • 向量化:用嵌入模型把每块转成向量,存入向量数据库。
  • 检索:用户提问同样向量化,取最相近的若干块。
  • 拼装提示:把检索到的片段与问题一起交给大模型生成答案。
# 伪代码示意检索到生成
context = retrieve(query, top_k=3)
prompt = f"根据以下资料回答:\n{context}\n\n问题:{query}"
answer = llm.generate(prompt)

注意点

切分粒度影响召回质量,过长会引入噪声,过短会丢失上下文。检索到的内容必须随答案可追溯,便于核对来源。生产环境要评估准确率与延迟,必要时加重排序。

小结

RAG 用「检索加生成」把私有知识接入大模型:切分、向量化、检索、拼装四步构成主链路。它比微调更快上线、更易维护,是构建可信问答系统的首选模式。

参考与延伸阅读

本文累计阅读