跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

RAG 检索增强生成:概念、原理与实战

RAG(检索增强生成)通过结合外部知识库与大语言模型,解决幻觉、时效性及数据安全问题。核心流程包括版面分析、知识库构建、向量化索引、检索与重排序。相比微调,RAG 更具扩展性与可控性。 RAG 架构模块、关键技术点及开源项目推荐,帮助开发者构建准确可靠的智能问答系统。

flc发布于 2025/2/6更新于 2026/10/1994 浏览
RAG 检索增强生成:概念、原理与实战

RAG 检索增强生成:概念、原理与实战

一、为什么需要 RAG?

尽管大语言模型(LLMs)已展现出显著的能力,但以下几个挑战依然值得关注:

  1. 幻觉问题:LLM 采用基于统计的概率方法逐词生成文本,这一机制内在地导致其可能出现看似逻辑严谨实则缺乏事实依据的输出,即所谓的'郑重其事的虚构陈述'。
  2. 时效性问题:随着 LLM 规模扩大,训练成本与周期相应增加。包含最新信息的数据难以融入模型训练过程,导致 LLM 在应对诸如'请推荐当前热门影片'等时间敏感性问题时力有未逮。
  3. 数据安全问题:通用的 LLM 没有企业内部数据和用户数据。企业想要在保证安全的前提下使用 LLM,最好的方式是把数据全部放在本地,业务计算在本地完成,而在线的大模型仅完成归纳功能。

二、什么是 RAG?

RAG(Retrieval Augmented Generation,检索增强生成)是一种技术框架。其核心在于当 LLM 面对解答问题或创作文本任务时,首先会在大规模文档库中搜索并筛选出与任务紧密相关的素材,继而依据这些素材精准指导后续的回答生成或文本构造过程,旨在通过此种方式提升模型输出的准确性和可靠性。

三、RAG 主要包含哪些模块?

1. 版面分析

本地知识文件读取(pdf、txt、html、doc、excel、png、jpg、语音等),并进行知识文件复原。

  • 富文本 txt 读取:排版整洁,获取方式简单。
  • PDF 文档解析:数据复杂,包含文本、图片、表格。常用工具包括 pdfplumber、PyMuPDF。
  • HTML 文档解析:使用 BeautifulSoup 等库提取网页内容。
  • Doc 文档解析:使用 python-docx 处理 Word 文档。
  • OCR 图片识别:光学字符识别(Optical Character Recognition)。开源项目包括 Tesseract、PaddleOCR、EasyOCR 等。流程涉及文字检测与识别。
  • ASR 语音识别:自动语音识别(Automatic Speech Recognition)。将语音信号转换为文本。涉及声学信号预处理、特征提取、声学模型及语言模型。

2. 知识库构建

  • 知识文本分割:根据语义完整性对长文本进行分块,避免信息丢失,同时考虑 Embedding 模型的 Token 限制。
  • Docs 向量化(Embedding):将文本压缩为分布式连续值向量。相似文本在向量空间中距离更近。优势包括语义理解、容错性、多语言支持及语境理解。常用模型包括 BGE、Text2Vec、SimCSE 等。
  • Docs 构建索引:使用向量数据库存储和检索。常用方案包括 Faiss、Milvus、Elasticsearch。

3. 大模型微调

  • 全量微调(FFT):训练所有参数,成本高且易产生灾难性遗忘。
  • 高效微调(PEFT):只训练部分参数,主流方案包括 SFT(监督微调)、RLHF(人类反馈强化学习)、RLAIF(AI 反馈强化学习)。
  • 微调目的:在可控成本下提升特定领域能力,解决 Prompt 过长导致的截断或推理成本高的问题。

4. 文档检索

作为 RAG 核心工作,效果直接影响下游质量。常用方式是用用户问题进行向量召回,但口语化问题可能影响召回质量。需关注负样本挖掘及检索优化策略。

5. Reranker(重排序)

基础 RAG 架构可能无法满足高准确度要求。集成 Reranker 可在向量查询后进一步评估搜索结果相关性,精细重排结果。常用工具如 bge-reranker。

6. RAG 评测

有效评估性能是优化 RAG 的关键。需建立专门的评测体系来衡量检索与生成的质量。

四、RAG 相较于直接使用 LLMs 进行问答有哪些优点?

  1. 可扩展性:减小模型规模及训练开销,简化知识库扩容更新。
  2. 准确性:引用信息源,用户可核查答案可信度。
  3. 可控性:支持知识内容灵活更新与个性化配置。
  4. 可解释性:展示模型预测依赖的检索条目,增进透明度。
  5. 多功能性:适应问答、摘要、对话等多种场景。
  6. 时效性:捕捉最新信息动态,相比仅依赖训练数据有明显优势。
  7. 领域定制性:对接特定行业数据集,提供专业知识支持。
  8. 安全性:数据库层面实施角色划分与安全管控,强化数据管理。

五、RAG 与 SFT 对比

SFT(Supervised Fine-Tuning)是 LLM 应用的基础步骤,用于解决特定领域能力不足的问题。两者并非非此即彼,合理方式是结合业务需要与两种方法的优点。RAG 更适合知识频繁更新且需保证准确性的场景,SFT 更适合固定领域的风格或格式调整。

六、开源项目推荐

  1. RAGFlow:基于深度文档理解的开源 RAG 引擎,提供精简工作流程,支持复杂格式数据问答及引用。
  2. QAnything:本地知识库问答系统,支持多种文件格式离线安装和使用。
  3. Langchain-Chatchat:基于 Langchain 与 ChatGLM 等模型的本地知识库问答应用,支持 Elasticsearch 混合查询。

七、总结

RAG 技术通过检索外部知识库增强大模型生成能力,有效解决了幻觉、时效性和数据安全等核心痛点。开发者可根据实际需求选择版面分析、向量化、检索优化及微调等模块组合,构建高效可靠的智能问答系统。

目录

  1. RAG 检索增强生成:概念、原理与实战
  2. 一、为什么需要 RAG?
  3. 二、什么是 RAG?
  4. 三、RAG 主要包含哪些模块?
  5. 1. 版面分析
  6. 2. 知识库构建
  7. 3. 大模型微调
  8. 4. 文档检索
  9. 5. Reranker(重排序)
  10. 6. RAG 评测
  11. 四、RAG 相较于直接使用 LLMs 进行问答有哪些优点?
  12. 五、RAG 与 SFT 对比
  13. 六、开源项目推荐
  14. 七、总结

更多推荐文章

查看全部
  • Lasso 回归算法详解与应用
  • Spring Boot 实战:基于 WebSocket 的前后端实时匹配系统实现
  • 10 分钟本地部署 DeepSeek+Milvus,解决服务拥堵问题
  • 腾讯 Claw 三剑客横评:WorkBuddy、QClaw、CodeBuddy AI Agent 选型指南
  • Python 从零基础入门到精通学习指南
  • AI 编程中的 Skills:概念解析与 Java 方法生成实战
  • Linux 进程深度解析(一):从内核视角理解进程本质
  • 机器人算法十年演进:从几何模型到具身智能的范式革命
  • 2025 年 AIGC 六大核心趋势与应用场景
  • 前端四年裸辞求职经历与面试复盘
  • Mac 使用 Homebrew 安装 JDK 8 完整指南
  • Spring Cloud 微服务架构概述与工程搭建实战
  • Z-Image 模型结构解析与 RTX 4090 适配原理
  • JavaShop 新零售电商系统核心优势与功能解析
  • 基于 SpringBoot 和 Leaflet 的电影票房时序可视化
  • 微信 ClawBot 插件支持个人微信及 Windows 安装方案
  • lwIP 实战解析:基于 CGI 与 SSI 的嵌入式 WebServer 开发
  • 前端监控实战:别让生产事故等你反馈
  • JS 生成 UUID 的常见方案与生产环境避坑指南
  • Django 音乐平台歌曲搜索功能实现

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online