【RAG】RAG 入门:什么是 RAG?有哪些相关技术?

文章目录

  • RAG 入门:什么是 RAG?有哪些相关技术?
    • RAG 的核心工作流程
    • RAG 的优势
    • RAG vs. 传统生成模型
    • 应用场景
    • 挑战与限制
    • 典型工作流
  • RAG 相关技术
    • LangChain 框架
      • LangChain 简介
      • LangChain 核心组件
    • FAISS 向量数据库
      • FAISS 简介
      • FAISS 核心功能
      • FAISS 典型应用场景
    • LangChain + FAISS 在 RAG 中的作用
      • RAG 实现工作流
      • RAG + LangChain + FAISS 三者关系
  • RAG 与 AI Agent 的关系?
    • 核心定位与功能对比
    • 总结

RAG 入门:什么是 RAG?有哪些相关技术?

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了信息检索文本生成的技术,旨在提升生成式模型(如DeepSeek、GPT、T5等)的准确性、实时性和可信度。其核心思想是:在生成答案前,先从外部知识库中检索相关信息,并将检索结果作为上下文输入生成模型,从而生成更精准、可靠的回答

RAG 的核心工作流程

  1. 检索(Retrieval):当用户输入问题或文本时,系统会从外部知识库(如数据库、文档、网页等)中检索与输入相关的信息。然后使用向量数据库(如FAISS)或搜索引擎(如Elasticsearch),通过语义相似度匹配找到最相关的文档片段。
  2. 增强(Augmentation):将检索到的相关文本与用户输入合并,形成增强后的上下文。例如:用户问“量子计算如何改变密码学?”,系统会先检索“量子计算对密码学的影响”相关论文或文档,并将这些内容作为附加信息输入模型
  3. 生成(Generation):生成模型(如DeepSeek、GPT、Llama等)基于增强后的上下文生成最终回答,确保结果既基于模型自身的知识,也结合了外部实时或领域特定的信息。

RAG 的优势

  • 准确性:依赖外部知识库,减少模型“编造事实”(幻觉问题)。
  • 实时性:通过更新知识库,生成内容可反映最新信息(传统模型受限于训练数据的时间点)。
  • 可解释性:生成的答案可追溯到检索到的文档,增强可信度。
  • 灵活性:适用于垂直领域(如医疗、法律),通过定制知识库提升专业性。

RAG vs. 传统生成模型

场景 传统生成式模型(GPT) RAG
知识更新 依赖训练数据,无法动态更新 通过更新外部知识库获取最新信息
专业性 通用性强,但垂直领域知识有限 结合专业数据库,适合特定领域(如医疗)
可解释性 生成结果难以溯源 可追踪到检索的文档片段
幻觉风险 较高(可能生成不准确的内容) 较低(依赖真实文档)

应用场景

  1. 智能客服:结合企业知识库,提高精准的产品支持;
  2. 医疗咨询:检索最新医学文献,生成诊断建议;
  3. 法律助手:引用法律条文和案例,生成法律意见;
  4. 教育问答:基于教材或学术资源,解答复杂问题。

挑战与限制

  • 检索质量依赖:若知识库不完善或检索算法不佳,会影响生成结果;
  • 计算成本:检索和生成需额外计算资源;
  • 知识库维护:需持续更新和管理外部数据源。

典型工作流

用户输入 → 通过检索模块从知识库寻找相关文档 → 增强上下文 → 通过大语言模型生成结果 → 最终输出 \text{用户输入} \rightarrow \text{通过检索模块从知识库寻找相关文档} \rightarrow \text{增强上下文} \rightarrow \text{通过大语言模型生成结果} \rightarrow \text{最终输出} 用户输入通过检索模块从知识库寻找相关文档增强上下文通过大语言模型生成结果最终输出

RAG 相关技术

常用的技术包括 LangChain 框架和 FAISS 向量数据库,接下来我们展开介绍。

LangChain 框架

LangChain 简介

LangChain 是一个用于构建大语言模型(LLM)应用的开发框架,旨在通过模块化设计简化 LLM 与外部工具、数据和服务的集成。其核心目标是将 LLM 的能力与实际应用场景结合,例如问答系统、文档分析、智能体(Agent)等。

LangChain 核心组件

  1. Models(模型):支持多种 LLM 和 Embedding Models;
  2. Indexes(索引):提供文档加载、分割、向量化、检索等功能,用于构建知识库,关键模块包括 DocumentLoaderTextSplitterVectorStore
  3. Chains(链式流程):将多个模块串联为完整流程(如 RAG 的 检索 → 增强 → 生成 \text{检索} \rightarrow \text{增强} \rightarrow \text{生成} 检索增强生成。基于 RetrievalQA 链可以直接实现 RAG 的端到端流程。
  4. Agents(智能体):允许模型调用外部工具(计算器、API、数据库等)完成复杂任务。
  5. Memory(记忆):支持历史对话管理,实现多轮对话的上下文连贯性。

FAISS 向量数据库

FAISS 简介

FAISS(Facebook AI Similarity Search)是由 Meta 开源的高效向量相似性搜索库,专为高维向量快速检索设计,适用于大规模数据集。

FAISS 核心功能

  1. 高效搜索:基于近似最近邻(ANN)算法,在亿级向量中实现毫秒级检索;支持 GPU 加速,可显著提升性能。
  2. 向量索引构建:支持多种索引类型,平衡精度与速度;
  3. 轻量级与易用性:无需复杂部署,可以直接集成到本地应用。

FAISS 典型应用场景

  • 文本相似度搜索(如 RAG 中的文档检索);
  • 图像/音视频特征匹配;
  • 推荐系统与聚类分析;

LangChain + FAISS 在 RAG 中的作用

在 RAG 流程中,LangChain 负责整体架构的搭建,而 FAISS 作为向量数据库支撑检索环节。

RAG 实现工作流

首先进行文档加载与预处理:

  • 通过 LangChain 的 DocumentLoader 加载文档(如 PDF、网页);
  • 通过 TextSplitter 将文档分割为片段(chunks);

然后进行向量化与索引构建:

  • 通过嵌入模型(如 OpenAI 的 text-embedding-ada-002)将文本转为向量;
  • 通过 LangChain 的 FAISS 接口,将向量存入 FAISS 数据库,构建索引;

通过上述方式,我们已经基本完成了工作流的构建。当用户输入到来时,我们可以基于刚才构建的工作流来进行检索增强生成,具体来说:

  • 用户提问时,LangChain 调用 FAISS 进行相似性检索,找到相关文档片段;
  • 将检索结果与用户输入合并,输入 LLM 生成最终回答

RAG + LangChain + FAISS 三者关系

组件 角色 与 RAG 的关系
LangChain 提供 RAG 的流程框架,整合模型、检索、生成等模块 负责串联检索(FAISS)与生成(LLM),实现端到端的 RAG 流程
FAISS 高效存储和检索文本向量,支撑 RAG 的检索环节 作为知识库的存储与搜索引擎,直接影响 RAG 的准确性和速度
RAG RAG 自身是一种结合检索与生成的技术范式 LangChain + FAISS 是 RAG 的具体实现工具链的一种

RAG 与 AI Agent 的关系?

RAG(检索增强生成)与 AI Agent(人工智能代理)是两种互补的技术范式,分别聚焦于知识增强自主决策,但在实际应用中常结合使用,共同构建更智能、更强大的系统。

核心定位与功能对比

维度 RAG AI Agent
核心目标 通过检索外部知识库生成准确回答 自主规划、决策并执行复杂任务
关键技术 检索、上下文增强、生成模型 任务分解、工具调用、多步推理
输出形式 文本问答(基于检索到的内容生成检索增强的文本) 动作序列(如调用 API、修改数据等)
依赖数据 外部知识库(静态或动态) 环境状态、用户目标、工具接口

总结

  • RAG 是 Agent 的“知识库”:提供实时、准确的外部信息支持,解决 Agent 知识的局限性;
  • Agent 是 RAG 的“决策引擎”:扩展 RAG 的应用场景,从简单问答升级到多步骤任务执行;
  • 协同价值:两者结合可实现“感知-检索-决策-执行”的闭环,是构建 AGI 的关键路径之一。

你可能感兴趣的:(AI,RAG)