1. 什么是 RAG(检索增强生成)?

RAG(Retrieval-Augmented Generation):让大模型先检索、后回答——把外部知识库中与问题相关的文档片段检索出来,连同问题一起交给大模型生成答案。

核心思想:大模型不知道你的私有数据(校史、内部规范),RAG 把"答案素材"喂给它,模型负责"组织语言"。回答基于检索到的内容,而不是凭模型记忆瞎编。

RAG 一句话流程
用户提问
   ↓
① 检索:从知识库找到最相关的 3~5 段文档
   ↓
② 增强:把"问题 + 检索到的文档"拼成提示词
   ↓
③ 生成:大模型基于文档内容回答(附引用来源)
   ↓
返回答案

🎯 面试要点

  • RAG 三要素:知识库(数据)、检索(向量/关键词)、生成(LLM)
  • 典型应用:文档问答、客服机器人、企业知识助手、学校校史/招生问答

2. 为什么需要 RAG?解决了 LLM 的什么问题?

🎯 面试要点

  • 回答"为什么用 RAG"的标准结构:时效性 + 私有知识 + 防幻觉 + 可溯源 + 低成本
  • 注意:RAG 不能完全消除幻觉(检索不到、材料本身错误时仍会出错)——见对话机器人页的防护手段

3. RAG 和微调(Fine-tuning)的区别?怎么选?

对比 RAG 微调
知识来源外部检索(不改模型)改模型参数(记忆进权重)
更新知识改文档即可,秒级生效重训,耗时花钱
成本低(无训练)高(GPU + 数据标注)
可溯源性强(引用来源)弱(知识在参数里)
适合知识问答、内容型助手风格/格式/能力定制(客服语气、JSON 输出、领域术语)

实践结论:知识问答优先 RAG;微调用于"教模型行为方式"而非"喂知识"。两者常组合使用(微调语气 + RAG 喂知识)。

🎯 面试要点

  • 一句话:RAG 改"数据库",微调改"模型本身"
  • 知识频繁更新 → RAG;需要特定输出风格/领域术语 → 微调

4. 一个 RAG 系统的完整架构?

  1. 离线(建库):采集文档(PDF/Word/网页)→ 清洗 → 分块(chunk) → 每块 Embedding 向量化 → 存入向量数据库(带元数据:来源、章节)
  2. 在线(问答):
    • 用户问题 → Embedding 向量化 → 向量库相似度检索 Top-K(可加关键词混合检索)
    • 重排序(Rerank)精排 → 拼装提示词(问题 + 检索片段 + 引用要求)
    • LLM 生成答案 → 返回,附引用来源
工程栈一览
文档处理:PyMuPDF / unstructured / markitdown(网页→markdown)
分块:LangChain TextSplitter / 自研按标题切
Embedding:OpenAI text-embedding-3 / BGE / M3E(中文)
向量库:Milvus / FAISS / pgvector / Elasticsearch / Qdrant
编排:LangChain / LlamaIndex / Dify / FastGPT(低代码)
LLM:GPT / Claude / 国产(通义、DeepSeek、智谱)
评估:RAGAS(忠实度/相关度指标)

🎯 面试要点

  • 两条链路记牢:离线"文档→向量"建库,在线"问题→检索→生成"
  • 没有向量库也能起步:小知识库用 BM25 关键词检索或直接全文检索(ES)也够用
⚠️ 本页面由 AI 生成,内容仅供参考,请以官方文档和实际源码为准。