admin管理员组文章数量:1037775
LLM RAG 技术剖析与演进
什么是RAG
RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将大语言模型(LLM)与模型外知识库检索相结合的技术架构。
RAG = LLM + 知识检索
为什么会出现 RAG | LLM的三个痛点
幻觉问题
- 本质缺陷:LLM基于概率预测生成文本,可能导致“一本正经的胡说八道”(如声称“美国成立于1997年”)。
- 数据局限性:LLM的训练数据存在噪声、过时或覆盖范围不足,而微调(SFT)无法高频更新知识
时效性与专业瓶颈
- 知识滞后:LLM训练完成后知识库即固化,难以应对实时信息。
- 领域知识缺失:通用LLM对垂直领域(如医疗、法律)的专业术语和内部数据理解不足。
安全与成本权衡
- 数据隐私:企业不愿将敏感数据上传至公有云训练模型,RAG通过本地化知识库实现数据隔离。
- 经济性:微调LLM需高昂算力与数据标注成本,RAG仅需轻量级向量化与检索流程,成本降低90%以上。
基于 LLM 存在的上述问题,RAG诞生了。它通过在生成文本之前或过程中检索相关的文档或信息,从而生成更为准确和上下文相关的回答
RAG的基本原理与核心步骤
RAG 的基本原理
RAG的基本原理是将知识库检索与 LLM 生成相结合,包括两个阶段流程:
- 检索阶段:将用户查询向量化,从向量数据库中召回语义最相关的文档片段(如Top-K结果);
- 生成阶段:将检索结果与用户问题合并为增强Prompt,输入LLM生成最终回答。
RAG的核心步骤
RAG 的核心步骤如下图所示(图片来自网络)
知识库预处理(索引)
在 RAG 提供服务之前,需要先将知识库落库、简历索引。具体而言,同样有以下内容:
- 数据提取:从各种数据源中提取文本数据。
- 分块(Chunking):将文本数据分成较小的块,以便于后续处理。
- 向量化(Embedding):将文本块转换为向量表示。
- 数据入库:将向量化后的数据存储到向量数据库中。
用户输入(Query优化)
用户输入环节,主要目标是解析用户输入并生成检索信号。
- 意图识别:解析用户问题中的关键词、实体和意图(如分类或命名实体识别)。
- 查询扩展:通过同义词替换、上下文联想等方式扩展查询(如
tsn_enable="yes"
可能启用术语相似性网络扩展查询)。 - 向量化查询:使用与数据库相同的嵌入模型(如 BGE)将用户问题转换为向量。
检索
检索环节会从知识库中召回与用户问题相关的文档。
- 混合检索:
- 向量检索:计算用户查询向量与知识库向量的相似度(如余弦相似度),返回 Top-K 结果。
- 关键词检索:若
search_engine="sogou"
,可能结合搜狗搜索引擎的关键词匹配能力补充结果。
- 结果排序:使用
rank_model_type="bge"
指定的排序模型(如 BGE 的交叉编码器)对召回结果重排序,提升相关性。 - 截断:按
num="10"
返回 Top-10 最相关文档。
生成
生成环节将检索环节得到的结果以对话上下文的方式,传递给 LLM,生成结果
- 上下文构造:将用户问题与检索到的 Top-10 文档拼接为输入上下文。
- 生成模型推理:使用预训练语言模型(如 GPT、ChatGLM)生成连贯且准确的回答。
- 可控性:通过提示工程(Prompt Engineering)约束生成内容与检索结果的一致性。
后处理(结果优化 )
优化生成结果的可用性与可解释性。
- 去重与过滤:移除重复内容或低置信度片段。
- 格式化:将回答转换为易读格式(如 Markdown、列表)。
- 引用标注:标注回答中关键信息的来源文档(如引用检索到的 Top-10 文档片段)。
- 反馈学习:记录用户对生成结果的反馈,用于优化检索或生成模型(可选)。
RAG的演进路径:从基础检索到智能代理
1. Naive RAG(基础检索增强生成)
- 核心思想:将检索与生成简单串联,直接利用检索结果生成回答。
- 流程:
- 检索:基于用户输入的关键词或向量,从数据库召回固定数量(如
num="10"
)的文档片段。 - 生成:将检索结果拼接为上下文,输入生成模型(如 GPT)生成回答。
- 检索:基于用户输入的关键词或向量,从数据库召回固定数量(如
- 局限性:
- 检索质量依赖关键词匹配或简单向量相似度。
- 上下文拼接可能引入噪声,生成结果易偏离用户意图。
2. Advanced RAG(高级检索增强生成)
- 核心改进:优化检索质量与上下文构造,提升生成可控性。
- 关键技术:
- 混合检索:结合向量检索(如
rank_model_type="bge"
的 BGE 模型)与关键词检索(如search_engine="sogou"
),提升召回多样性。 - 查询扩展:通过
tsn_enable="yes"
启用术语相似性网络(TSN),扩展用户问题的语义表达。 - 重排序:使用交叉编码器(如 BGE 的排序能力)对召回结果重排序,筛选 Top-K(如
num="10"
)最相关文档。 - 上下文压缩:动态裁剪冗余内容,保留核心信息输入生成模型。
- 混合检索:结合向量检索(如
- 优势:
- 检索精度更高,生成结果更相关。
- 支持复杂查询(如多跳推理)。
3. Modular RAG(模块化 RAG)
- 核心思想:将 RAG 流程拆解为独立模块,支持灵活替换与组合。
- 优势:
- 系统可扩展性强,易于迭代优化。
4. Graph RAG(图增强 RAG)
- 核心改进:引入图结构(如知识图谱)增强知识表示与推理能力。
- 关键技术:
- 图化知识库:将文档中的实体、关系构建为图结构,支持多跳推理。
- 图检索:基于用户问题在图上游走(如路径查询、社区发现),补充传统向量检索。
- 图上下文生成:将图结构信息(如实体关系、路径)注入生成模型。
- 参数关联:
tsn_enable="yes"
可扩展为图谱术语相似性扩展。rank_model_type="bge"
可能结合图嵌入(如 TransE)优化排序。
- 优势:
- 解决长尾问题,提升复杂推理能力(如因果链、事件推演)。
5. Agentic RAG(智能体化 RAG)
- 核心思想:引入自主智能体(Agent)动态控制 RAG 流程。
- 关键技术:
- 调用
search_engine="sogou"
或向量检索。 - 动态调整
num
(如从 10 扩展至 20)或重排序策略(rank_model_type
)。 - 启用/禁用
tsn_enable
等扩展功能。 - 流程自治:Agent 根据问题复杂度自主决策:
- 多轮交互:支持追问、澄清、反馈闭环(如用户修正检索结果)。
- 工具调用:整合外部 API、数据库等工具补充检索内容。
- 调用
- 优势:
- 实现端到端自适应,应对开放域复杂问题。
LLM RAG 技术剖析与演进
什么是RAG
RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将大语言模型(LLM)与模型外知识库检索相结合的技术架构。
RAG = LLM + 知识检索
为什么会出现 RAG | LLM的三个痛点
幻觉问题
- 本质缺陷:LLM基于概率预测生成文本,可能导致“一本正经的胡说八道”(如声称“美国成立于1997年”)。
- 数据局限性:LLM的训练数据存在噪声、过时或覆盖范围不足,而微调(SFT)无法高频更新知识
时效性与专业瓶颈
- 知识滞后:LLM训练完成后知识库即固化,难以应对实时信息。
- 领域知识缺失:通用LLM对垂直领域(如医疗、法律)的专业术语和内部数据理解不足。
安全与成本权衡
- 数据隐私:企业不愿将敏感数据上传至公有云训练模型,RAG通过本地化知识库实现数据隔离。
- 经济性:微调LLM需高昂算力与数据标注成本,RAG仅需轻量级向量化与检索流程,成本降低90%以上。
基于 LLM 存在的上述问题,RAG诞生了。它通过在生成文本之前或过程中检索相关的文档或信息,从而生成更为准确和上下文相关的回答
RAG的基本原理与核心步骤
RAG 的基本原理
RAG的基本原理是将知识库检索与 LLM 生成相结合,包括两个阶段流程:
- 检索阶段:将用户查询向量化,从向量数据库中召回语义最相关的文档片段(如Top-K结果);
- 生成阶段:将检索结果与用户问题合并为增强Prompt,输入LLM生成最终回答。
RAG的核心步骤
RAG 的核心步骤如下图所示(图片来自网络)
知识库预处理(索引)
在 RAG 提供服务之前,需要先将知识库落库、简历索引。具体而言,同样有以下内容:
- 数据提取:从各种数据源中提取文本数据。
- 分块(Chunking):将文本数据分成较小的块,以便于后续处理。
- 向量化(Embedding):将文本块转换为向量表示。
- 数据入库:将向量化后的数据存储到向量数据库中。
用户输入(Query优化)
用户输入环节,主要目标是解析用户输入并生成检索信号。
- 意图识别:解析用户问题中的关键词、实体和意图(如分类或命名实体识别)。
- 查询扩展:通过同义词替换、上下文联想等方式扩展查询(如
tsn_enable="yes"
可能启用术语相似性网络扩展查询)。 - 向量化查询:使用与数据库相同的嵌入模型(如 BGE)将用户问题转换为向量。
检索
检索环节会从知识库中召回与用户问题相关的文档。
- 混合检索:
- 向量检索:计算用户查询向量与知识库向量的相似度(如余弦相似度),返回 Top-K 结果。
- 关键词检索:若
search_engine="sogou"
,可能结合搜狗搜索引擎的关键词匹配能力补充结果。
- 结果排序:使用
rank_model_type="bge"
指定的排序模型(如 BGE 的交叉编码器)对召回结果重排序,提升相关性。 - 截断:按
num="10"
返回 Top-10 最相关文档。
生成
生成环节将检索环节得到的结果以对话上下文的方式,传递给 LLM,生成结果
- 上下文构造:将用户问题与检索到的 Top-10 文档拼接为输入上下文。
- 生成模型推理:使用预训练语言模型(如 GPT、ChatGLM)生成连贯且准确的回答。
- 可控性:通过提示工程(Prompt Engineering)约束生成内容与检索结果的一致性。
后处理(结果优化 )
优化生成结果的可用性与可解释性。
- 去重与过滤:移除重复内容或低置信度片段。
- 格式化:将回答转换为易读格式(如 Markdown、列表)。
- 引用标注:标注回答中关键信息的来源文档(如引用检索到的 Top-10 文档片段)。
- 反馈学习:记录用户对生成结果的反馈,用于优化检索或生成模型(可选)。
RAG的演进路径:从基础检索到智能代理
1. Naive RAG(基础检索增强生成)
- 核心思想:将检索与生成简单串联,直接利用检索结果生成回答。
- 流程:
- 检索:基于用户输入的关键词或向量,从数据库召回固定数量(如
num="10"
)的文档片段。 - 生成:将检索结果拼接为上下文,输入生成模型(如 GPT)生成回答。
- 检索:基于用户输入的关键词或向量,从数据库召回固定数量(如
- 局限性:
- 检索质量依赖关键词匹配或简单向量相似度。
- 上下文拼接可能引入噪声,生成结果易偏离用户意图。
2. Advanced RAG(高级检索增强生成)
- 核心改进:优化检索质量与上下文构造,提升生成可控性。
- 关键技术:
- 混合检索:结合向量检索(如
rank_model_type="bge"
的 BGE 模型)与关键词检索(如search_engine="sogou"
),提升召回多样性。 - 查询扩展:通过
tsn_enable="yes"
启用术语相似性网络(TSN),扩展用户问题的语义表达。 - 重排序:使用交叉编码器(如 BGE 的排序能力)对召回结果重排序,筛选 Top-K(如
num="10"
)最相关文档。 - 上下文压缩:动态裁剪冗余内容,保留核心信息输入生成模型。
- 混合检索:结合向量检索(如
- 优势:
- 检索精度更高,生成结果更相关。
- 支持复杂查询(如多跳推理)。
3. Modular RAG(模块化 RAG)
- 核心思想:将 RAG 流程拆解为独立模块,支持灵活替换与组合。
- 优势:
- 系统可扩展性强,易于迭代优化。
4. Graph RAG(图增强 RAG)
- 核心改进:引入图结构(如知识图谱)增强知识表示与推理能力。
- 关键技术:
- 图化知识库:将文档中的实体、关系构建为图结构,支持多跳推理。
- 图检索:基于用户问题在图上游走(如路径查询、社区发现),补充传统向量检索。
- 图上下文生成:将图结构信息(如实体关系、路径)注入生成模型。
- 参数关联:
tsn_enable="yes"
可扩展为图谱术语相似性扩展。rank_model_type="bge"
可能结合图嵌入(如 TransE)优化排序。
- 优势:
- 解决长尾问题,提升复杂推理能力(如因果链、事件推演)。
5. Agentic RAG(智能体化 RAG)
- 核心思想:引入自主智能体(Agent)动态控制 RAG 流程。
- 关键技术:
- 调用
search_engine="sogou"
或向量检索。 - 动态调整
num
(如从 10 扩展至 20)或重排序策略(rank_model_type
)。 - 启用/禁用
tsn_enable
等扩展功能。 - 流程自治:Agent 根据问题复杂度自主决策:
- 多轮交互:支持追问、澄清、反馈闭环(如用户修正检索结果)。
- 工具调用:整合外部 API、数据库等工具补充检索内容。
- 调用
- 优势:
- 实现端到端自适应,应对开放域复杂问题。
本文标签: LLM RAG 技术剖析与演进
版权声明:本文标题:LLM RAG 技术剖析与演进 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748334036a2287025.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论