RAG(检索增强生成)技术简介

简介: RAG(检索增强生成)通过结合信息检索与文本生成,提升大模型回答的准确性与时效性。它利用向量数据库实现语义检索,支持智能客服、医疗诊断、法律咨询等场景,解决知识更新难、专业性不足等问题,并以“按需取用”机制突破上下文限制,兼顾效率与隐私。

一、RAG 的核心价值与应用场景

RAG(检索增强生成)是一项将信息检索与文本生成相结合的技术,它让大型语言模型(LLM)能够生成更准确、更具时效性且上下文更相关的内容。下表清晰地展示了RAG解决的核心问题及其典型应用场景:

核心关切点

RAG 提供的解决方案

典型应用场景

信息准确性

从外部知识库检索事实依据,减少模型“幻觉”,答案可溯源。

智能客服、医疗诊断、法律咨询。

知识时效性

无需重新训练模型,通过更新检索库即可让模型获取最新信息。

回答关于新闻事件、股价、最新产品信息等问题。

专业领域知识

为模型注入特定领域(如公司内部文档、行业资料)的知识,弥补通用模型的专业短板。

企业知识库问答、学术研究辅助。

成本与隐私

检索过程可实施权限控制,访问特定数据,比为了新知识重新训练大模型更经济高效。

处理企业内部敏感文档、个人隐私信息。

Q:那为什么不直接把手册或资料发给大模型呢?

这是一个关键问题。主要原因有二:

  1. 上下文窗口限制:如果用户的资料很大,比如上百页或千页的数据直接发给大模型,会超出模型的上下文窗口限制。
  2. 推理效率:模型的推理速度会变慢,模型读取的内容越多,输出越慢。

因此,RAG技术登场,它通过一种更智能的“按需取用”机制来解决这些问题。


二、RAG 的基本工作流程

RAG的工作流程可以清晰地划分为“准备(提问前)”和“回答(提问后)”两个主要阶段。

阶段一:准备 - 知识库预处理(索引)

此阶段在线下完成,是为系统“备课”的过程。

  • 分片分片就是把文档拆分成多个片段。分片的方式有很多种:
  1. 按字数来分,比如说1,000字为一个片段。
  2. 按一个段落来分片。
  3. 或者是按章节。
  4. 或者是按页码。
    但不管怎么做,我们最后都需要把一篇文档切分成多份,切好后这个环节就结束了。
  • 索引索引就是通过 Embedding 将每一个片段文本转化为一个向量,然后再将片段文本和对应向量都存储在向量数据库的一个过程。生成的所有向量及其对应的原始文本块,会被一同存入向量数据库。数据库会为这些向量建立专门的索引结构(例如HNSW、IVF-PQ等),这种结构的设计目标,就是在亿级向量中实现毫秒级的相似性搜索。
  • 向量在RAG中的作用
  • 将文本转换为向量(嵌入):使用嵌入模型将文本转换成高维向量,此操作由模型完成。语义相近的文本,其向量在空间中的位置也接近。
  • 实现语义检索:将用户问题也转为向量,通过计算“问题向量”与“文档向量”的相似度,快速找到最相关的文本片段。
  • 依赖向量数据库进行高效管理:向量数据库(如Milvus、Qdrant)负责存储、查询向量和文本,并提供相似度计算,这是RAG实时响应的基础。
阶段二:回答 - 实时查询处理(检索与生成)

此阶段在用户提问后实时发生。

  • 召回(检索)
    召回的核心任务是从庞大的知识库中快速筛选出与用户问题可能相关的文本片段。这主要依赖于向量相似度计算。常用的相似度度量方法对比如下:

方法名称

核心原理

特点

余弦相似度

衡量两个向量方向的差异,计算夹角的余弦值。

对向量长度不敏感,专注于语义方向;计算高效。

欧氏距离

计算两点间的直线距离。

直观,符合物理距离概念;受向量尺度和长度影响大。

点积

两向量对应分量乘积之和。在向量归一化后与余弦相似度等价。

计算简单高效;结果受向量长度影响显著。

  • 重排初步召回可能会返回大量相关片段,但质量参差不齐。重排步骤的目标是对这些结果进行更精细的排序,把最相关、最优质的片段排到最前面。常用技术是 Cross-Encoder
  • Bi-Encoder(用于召回):问题和文档分开独立编码为向量,然后计算相似度。优势是速度快,适合大规模初筛。
  • Cross-Encoder(用于重排):将问题和某个文档拼接在一起,同时输入模型进行交互计算,直接输出相关度分数。判断更准确,但计算成本高。
    可以理解为:召回(如余弦相似度)负责“海选”,追求速度;重排(如Cross-Encoder)则负责“精品面试”,追求精度。
  • 生成
    这是最后一步。系统将用户原始问题和经过重排筛选出的最相关的文本片段(如Top 3-5)组合成一个详细的提示(Prompt),然后交给LLM。LLM的任务是基于这个“增强后”的提示,综合所有信息,生成一个准确、连贯、自然的最终答案,而并非简单地复制粘贴。


三、RAG 技术演进与优化策略

RAG技术本身也在不断演进,从最初的简单模式发展出更复杂的架构以提升效果。

  • 技术范式的演进
  • Naive RAG:遵循传统的“索引-检索-生成”流程。
  • Advanced RAG:在检索前后引入优化策略,如查询重写、重排等,以提高检索质量。
  • Modular RAG:引入多个功能模块,流程不局限于顺序检索和生成,支持迭代和自适应检索,灵活性更大。
  • 常见优化工具与框架
    在实际构建RAG系统时,可以利用现有的框架和工具来简化开发,例如 LangChainLlamaIndex,它们提供了文档加载、文本分割、向量化、检索和链式调用等组件的强大支持。
目录
相关文章
|
5天前
|
存储 JavaScript 前端开发
JavaScript基础
本节讲解JavaScript基础核心知识:涵盖值类型与引用类型区别、typeof检测类型及局限性、===与==差异及应用场景、内置函数与对象、原型链五规则、属性查找机制、instanceof原理,以及this指向和箭头函数中this的绑定时机。重点突出类型判断、原型继承与this机制,助力深入理解JS面向对象机制。(238字)
|
4天前
|
云安全 人工智能 安全
阿里云2026云上安全健康体检正式开启
新年启程,来为云上环境做一次“深度体检”
1579 6
|
6天前
|
安全 数据可视化 网络安全
安全无小事|阿里云先知众测,为企业筑牢防线
专为企业打造的漏洞信息收集平台
1322 2
|
5天前
|
缓存 算法 关系型数据库
深入浅出分布式 ID 生成方案:从原理到业界主流实现
本文深入探讨分布式ID的生成原理与主流解决方案,解析百度UidGenerator、滴滴TinyID及美团Leaf的核心设计,涵盖Snowflake算法、号段模式与双Buffer优化,助你掌握高并发下全局唯一ID的实现精髓。
346 160
|
5天前
|
人工智能 自然语言处理 API
n8n:流程自动化、智能化利器
流程自动化助你在重复的业务流程中节省时间,可通过自然语言直接创建工作流啦。
406 6
n8n:流程自动化、智能化利器
|
7天前
|
人工智能 API 开发工具
Skills比MCP更重要?更省钱的多!Python大佬这观点老金测了一周终于懂了
加我进AI学习群,公众号右下角“联系方式”。文末有老金开源知识库·全免费。本文详解Claude Skills为何比MCP更轻量高效:极简配置、按需加载、省90% token,适合多数场景。MCP仍适用于复杂集成,但日常任务首选Skills。推荐先用SKILL.md解决,再考虑协议。附实测对比与配置建议,助你提升效率,节省精力。关注老金,一起玩转AI工具。
|
14天前
|
机器学习/深度学习 安全 API
MAI-UI 开源:通用 GUI 智能体基座登顶 SOTA!
MAI-UI是通义实验室推出的全尺寸GUI智能体基座模型,原生集成用户交互、MCP工具调用与端云协同能力。支持跨App操作、模糊语义理解与主动提问澄清,通过大规模在线强化学习实现复杂任务自动化,在出行、办公等高频场景中表现卓越,已登顶ScreenSpot-Pro、MobileWorld等多项SOTA评测。
1542 7
|
4天前
|
Linux 数据库
Linux 环境 Polardb-X 数据库 单机版 rpm 包 安装教程
本文介绍在CentOS 7.9环境下安装PolarDB-X单机版数据库的完整流程,涵盖系统环境准备、本地Yum源配置、RPM包安装、用户与目录初始化、依赖库解决、数据库启动及客户端连接等步骤,助您快速部署运行PolarDB-X。
246 1
Linux 环境 Polardb-X 数据库 单机版 rpm 包 安装教程
|
8天前
|
人工智能 前端开发 API
Google发布50页AI Agent白皮书,老金帮你提炼10个核心要点
老金分享Google最新AI Agent指南:让AI从“动嘴”到“动手”。Agent=大脑(模型)+手(工具)+协调系统,可自主完成任务。通过ReAct模式、多Agent协作与RAG等技术,实现真正自动化。入门推荐LangChain,文末附开源知识库链接。
670 119