什么是RAG

RAG(Retrieval-Augmented Generation,检索增强生成)是让大语言模型能够利用外部知识的技术。它结合了检索和生成的优势,成为构建企业知识库应用的标配方案。

学习难度:入门·阅读时间:约10分钟

什么是RAG

定义

RAG是一种结合信息检索和文本生成的技术:

  • Retrieval(检索):从知识库中检索相关信息
  • Augmented(增强):用检索到的信息增强提示词
  • Generation(生成):LLM基于增强的上下文生成回答

核心思想

让模型在回答问题时可以"查阅资料":

  • 模型不需要记住所有知识
  • 需要时从知识库中检索
  • 基于检索结果生成准确的回答

类比

RAG就像是开卷考试:

  • 学生(LLM)不需要背下所有内容
  • 遇到问题时可以翻书(检索)
  • 基于书本内容回答问题

为什么需要RAG

大模型的局限

大语言模型存在固有问题:

  • 知识截止:训练数据有截止时间,不知道最新信息
  • 幻觉问题:可能编造不存在的事实
  • 领域知识不足:对企业内部知识不了解
  • 无法更新:更新知识需要重新训练

RAG的解决方案

  • ✅ 知识可实时更新(更新知识库即可)
  • ✅ 减少幻觉(基于真实文档回答)
  • ✅ 支持私有知识(企业内部文档)
  • ✅ 可追溯来源(引用原始文档)

成本优势

  • 无需重新训练模型
  • 只需维护知识库
  • 更新成本低、速度快

工作流程

基本流程

  1. 文档预处理
    • 解析文档(PDF、Word等)
    • 切分成小块(Chunk)
    • 生成嵌入向量
  2. 索引存储
    • 将向量存入向量数据库
  3. 查询处理
    • 将问题转换为向量
    • 在向量数据库中检索相似文档
  4. 生成回答
    • 将检索结果作为上下文
    • 构造提示词发送给LLM
    • LLM生成最终回答

核心组件

文档处理

  • 文档解析器:处理各种格式
  • 文本切分器:将长文档切分成小块
  • 嵌入模型:将文本转换为向量

向量数据库

  • 存储文档向量
  • 支持相似度检索
  • 主流选择:Pinecone、Milvus、Chroma、Qdrant

检索模块

  • 查询向量化
  • 相似度计算
  • 结果排序和过滤

生成模块

  • 提示词模板
  • 上下文组装
  • LLM调用

RAG vs 微调

对比

特性RAG微调
知识更新容易(更新知识库)困难(需重新训练)
成本
知识溯源支持不支持
领域适应性知识层面行为层面
实时性支持不支持

何时选择RAG

  • 知识频繁更新
  • 需要引用来源
  • 私有知识库应用
  • 预算有限

何时选择微调

  • 需要改变模型行为方式
  • 特定任务格式
  • 需要风格适配

结合使用

实践中两者可以结合:

  • 微调:适配特定任务和风格
  • RAG:提供最新知识和事实

应用场景

企业知识库

  • 内部文档问答
  • 员工培训助手
  • 制度查询

客服系统

  • 智能问答
  • 产品咨询
  • 技术支持

专业领域

  • 法律咨询:基于法律条文回答
  • 医疗问答:基于医学文献
  • 金融分析:基于研报数据

个人助手

  • 个人知识管理
  • 笔记问答
  • 学习助手
----