支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


理解检索增强生成(RAG)与多检索器系统

发布日期:2025-04-03 10:46:41 浏览次数: 1577 作者:坍缩的奇点
推荐语

掌握检索增强生成技术,提高文本生成的事实准确性和领域适应性。

核心内容:
1. RAG技术概述及其在减少幻觉现象中的应用
2. RAG流程和关键步骤解析,包括查询编码和信息检索
3. RAG在金融问答领域的实践案例与优化方法

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

 

检索增强生成(RAG)是一种强大的技术,它通过在文本生成过程中集成外部知识检索来增强大语言模型(LLMs)。RAG 可以减少幻觉现象,提高事实准确性,并支持特定领域的优化。本文将探讨 RAG 流程及其数学基础、检索机制(DPR、BM25)、FAISS 优化、权衡考量,以及其在金融问答(QA)中的应用。

资料来源:图片来自[^9]

简单理解 RAG

大型语言模型(LLMs)如 GPT-4 能够根据从海量数据中学习到的模式生成文本。然而,它们存在一个主要局限性——无法实时访问新的或外部知识。这意味着它们有时会产生“幻觉”,即生成听起来正确但实际上错误的信息。

检索增强生成(RAG)通过结合文本生成与实时信息检索来解决这一问题。RAG 模型不仅依赖于预训练的知识,还会在生成回答之前从外部来源(如 Wikipedia、研究论文、财务报告或数据库)检索相关文档。这使得它们的回答更加准确且与时俱进。

RAG 流程:详细解析

img

检索增强生成(RAG) 通过在生成回答之前检索相关信息,增强了大型语言模型(LLMs)的能力。这确保了输出内容更加准确、符合事实,并且与上下文相关。RAG 采用一个结构化的流程,可以分为四个关键步骤,以便更好地理解其工作原理:

步骤 1:查询编码(Query Encoding)

查询编码将用户的问题转换为可搜索的格式。当用户提出问题或输入查询时,系统并不会将其简单地视为普通文本,而是会将查询转换为数值格式,使其能够与存储的文档进行高效比较。

这一转换由 AI 驱动的神经编码器完成,例如 BERT(双向编码器表示) 或 SecBERT(专门针对金融或安全数据优化的 BERT 版本)

  • • 编码后的查询以向量(vector)的形式表示,本质上是一个数值列表,能够捕捉输入的语义含义。
  • • 这种方式比直接的关键字匹配(如仅搜索特定单词)更有效,因为人们的提问方式各不相同,而且同一个单词可能具有多重含义。向量编码可以基于含义检索信息,而不仅仅是基于词匹配。

示例
如果用户询问 “通货膨胀如何影响股票价格?”,系统会将该查询转换为一个密集向量(dense vector),捕捉其核心含义。这样,即使相关文档使用的是不同的表述,如 “通货膨胀与股市的关系”,系统仍然能够找到匹配的内容。

步骤 2:信息检索(Retrieval)

这一阶段的目标是找到最相关的信息。当查询被编码后,系统会在文档数据库中搜索最匹配的内容,以确保模型能够访问真实、最新、符合事实的材料,而不仅仅依赖于训练时学到的知识。

主要有两种检索方法:

1. 密集通道检索(Dense Passage Retrieval, DPR)

  • • DPR 使用神经网络来寻找基于语义的最相关文档,而不仅仅是匹配单词。
  • • 查询和文档都会被转换为向量嵌入(vector embeddings),系统会检索与查询向量最相似的文档。
  • • 适用于:当文档的表述方式不同,但核心含义相近时,DPR 能够有效匹配。

2. 基于 BM25 的稀疏检索(BM25-Based Sparse Retrieval)

  • • BM25 是一种数学公式,它根据关键字的相关性对文档进行排序。
  • • 它考虑了关键词的出现频率及其所在位置(例如,在标题中还是正文深处)。
  • • 与 DPR 不同,BM25 不使用 AI 进行向量搜索,而是依赖于直接的单词匹配
  • • 适用于:需要精确匹配关键字的情况,如法律文档或财务报告。

示例
如果用户询问 “投资加密货币有哪些风险?”,检索引擎可能会从数百万篇文档中找到以下内容:

  1. 1. 一篇最新的金融新闻文章,讨论加密货币市场的波动性。
  2. 2. 一份政府报告,警告加密货币的监管风险。
  3. 3. 一篇投资专家的博客,分析常见的投资风险。

这些检索到的文档将在下一步进行整合(Fusion)。

步骤 3:信息融合(Fusion)

这一阶段涉及将检索到的信息与用户查询融合。由于系统可能会检索到多篇相关文档,它需要决定如何有效地利用这些信息简单地将所有文本输入语言模型是不高效的,甚至可能让 AI 产生混乱。

常见的融合方式包括:

  1. 1. 拼接(Concatenation):将检索到的文档直接附加到输入查询之前,然后输入语言模型。
  2. 2. 重新排序(Re-ranking):系统对检索到的文档进行评分,优先使用最相关的文档。
  3. 3. 加权注意力机制(Weighted Attention Mechanisms):某些 RAG 模型会高亮重要信息,使其在生成答案时更具影响力。

示例
如果用户询问 “美联储的利率政策如何影响通货膨胀?”,系统可能会检索到以下四篇相关文档:

  1. 1. 美联储最近的利率上调报告
  2. 2. 一篇经济学家博客,解释通货膨胀趋势
  3. 3. 一篇新闻文章,总结利率对消费者支出的影响
  4. 4. 一篇研究论文,分析历史上的通货膨胀周期

融合阶段的目标是判断哪些文档最相关,并以最优方式呈现给 AI,以确保生成的回答基于事实。

步骤 4:答案生成(Generation)

最终,经过检索和融合后的信息将用于生成最终回答。与传统的聊天机器人不同,RAG 模型不仅依赖于预训练的知识,还能够实时引用外部文档

  • • 高级语言模型(如 GPT-4、T5 或 BART) 负责生成最终答案。
  • • AI 结合多个来源的信息,确保答案更加准确、信息丰富。
  • • RAG 通过锚定到检索数据,避免“幻觉”现象(即编造事实)

示例
用户询问 “当前股市的最新趋势是什么?”

  1. 1. 系统检索到最新的财务报告和新闻文章,确保信息来源可靠。
  2. 2. 然后,AI 生成一个清晰、结构化的回答

    “截至 2025 年 3 月,标普 500 指数因利率上升而表现出较高波动性。分析师预计市场将进一步波动,特别是在科技和能源板块。彭博社和 CNBC 的最新报告显示,AI 相关股票的收益表现强劲。”

如果没有 RAG,传统的 AI 可能会给出过时的信息,而 RAG 通过实时检索,确保回答的时效性和准确性

RAG 的数学公式

上述 RAG 流程的四个主要步骤也可以通过数学方式进行研究和理解。接下来,我们将逐步解析 RAG 的数学基础,并用简单的语言解释每个公式。如果你对 RAG 的数学原理不感兴趣,可以跳过此部分,直接阅读其工作原理和应用。

步骤 1:查询编码(Query Encoding)—— 将问题转换为可搜索格式

当用户提供一个查询 qq 时,系统需要将其转换为机器可读的格式。而不是直接将文本作为普通单词处理,系统会将其编码为密集向量表示(dense vector representation),这种结构化的数值格式能够捕捉查询的语义信息。

数学上,该过程可以表示为:

其中:

  • •  是查询的向量表示(即编码后的查询)。
  • •  是一个神经编码器(如 BERT、DPR 或 SecBERT),它能够将文本转换为数值嵌入(embedding)。
  • •  是编码器的已学习参数,即模型在训练过程中优化的参数。

作用:编码后的查询 q′q' 充当**“搜索键”**,用于在数据库中查找最相关的文档。

步骤 2:检索概率(Retrieval Probability)—— 查找最相关的文档

当查询被转换为向量后,系统会在大型知识库中搜索匹配的文档。其目标是找到与查询最相似的文档。

如何衡量相似度?
相似度通常通过**余弦相似度(cosine similarity)或点积相似度(dot product similarity)**来计算。检索到某个文档 dd 的概率可以表示为:

其中:

  • • :表示查询 q′q' 与文档 dd 之间的相似度分数
  • • :确保所有相似度分数都是正数,并进行适当缩放。
  • • 分母 :对所有候选文档进行归一化,使得最终的概率值介于 0 和 1 之间。

作用:该公式保证最相关的文档具有更高的检索概率,从而提高系统的检索准确性。

步骤 3:答案生成(Response Generation)—— 生成连贯的回答

当系统检索到最相关的文档后,LLM(大型语言模型)需要基于查询和检索到的信息生成回答

数学上,这个过程可以表示为:

其中:

  • •  是最终生成的回答序列(即 AI 输出的文本)。
  • •  表示回答中的第 tt 个单词。
  • •  代表之前已生成的单词,确保生成的句子是连贯的
  • •  是原始用户查询。
  • •  是检索到的相关文档。

作用:这一生成过程是逐步进行的,确保输出的回答既符合事实,又保持语法和语义上的连贯性

步骤 4:端到端优化(End-to-End Optimization)—— 让模型不断改进

为了确保系统生成最优的回答,模型会不断优化自身,使用最大似然估计(Maximum Likelihood Estimation, MLE) 进行训练。

其目标函数(损失函数)可以表示为:

其中:

  • •  是正确答案的生成概率,即 AI 生成正确答案的可能性。
  • •  函数用于简化计算,并使得学习过程更加稳定。
  • • 训练数据集  包含(查询,文档,正确回答) 三元组,确保模型学习到正确的答案模式。

作用:通过优化该目标函数,模型能够不断学习并调整权重,使其在未来生成更准确的回答

RAG 中的检索机制:密集通道检索(DPR)与稀疏搜索(BM25)

来源:图片来自[^11]

密集通道检索(DPR:Dense Passage Retrieval)

DPR 是一种基于神经网络的检索方法,它利用深度学习模型理解单词背后的语义。不同于仅基于关键词匹配的传统方法(如 BM25),DPR 将查询和文档转换为数值表示(嵌入向量),然后计算相似度以检索最相关的文档。

DPR 的工作原理

DPR 采用两步检索流程

1. 编码查询和文档(Encoding the Query and Documents)

DPR 采用**双编码器(bi-encoder)**架构,即两个独立的神经网络分别用于:

  • • 查询编码器 处理用户的查询 
  • • 文档编码器 处理文档 

两者均将输入转换为高维向量(即密集嵌入)。

2. 相似度匹配进行检索(Retrieval Using Similarity Matching)

  • • 一旦查询和文档都被转换为向量,系统就会计算它们之间的相似度分数
  • • 该相似度通常通过**余弦相似度(cosine similarity)**计算:
  • • 最高相似度的文档将被检索出来。

基于 BM25 的稀疏检索(BM25-Based Sparse Retrieval)

BM25 是一种基于统计的排名算法,它根据关键词的频率检索文档。BM25 属于**“词袋模型”(bag-of-words model),意味着它不考虑单词的语义**,仅关注它们在文档中的出现频率

BM25 的工作原理

BM25 采用以下因素对文档进行排名:

  • • 词频(TF, Term Frequency):关键词在文档中出现的次数。
  • • 逆文档频率(IDF, Inverse Document Frequency):关键词在整个数据集中有多稀有
  • • 文档长度归一化(Document Length Normalization):根据文档长度调整得分。

BM25 计算公式如下:

其中:

  • • :查询中的关键词。
  • • :控制词频的影响(通常设为 1.2 或 2.0)。
  • • :控制文档长度归一化(通常设为 0.75)。
  • • :文档长度。
  • • :数据集中文档的平均长度。

FAISS:利用向量搜索加速 DPR 检索

虽然 DPR 很强大,但在数百万个文档中搜索相似向量的计算成本很高。FAISS(Facebook AI Similarity Search) 是一个高效的向量搜索库,可以大幅提高检索速度。

来源:图片来自[^12]

FAISS 的工作原理

FAISS 采用三种关键优化策略:

  1. 1. IVF(倒排文件索引,Inverted File Indexing)
  • • FAISS 先将相似的文档聚类
  • • 查询时,它先找到最接近的聚类,然后只在该聚类内进行搜索,而不是遍历所有文档,从而大幅加快检索速度。
  • 2. HNSW(分层可导航小世界图,Hierarchical Navigable Small World Graphs)
    • • 采用基于图的检索方法,以常数时间查找相似文档。
    • • 通过高效地跳跃节点,避免遍历整个数据集,从而减少计算量。
  • 3. PQ(产品量化,Product Quantization)
    • • 降低内存消耗,同时保持较高的检索精度。
    • • FAISS 不是存储完整的文档向量,而是将其压缩成更小的向量进行存储。

    比较所有 3 个:

    • • 当语义理解很重要时,DPR 非常有用。即使确切的单词不同,它也能检索概念上相似的文档。
    • • BM25 更适合快速、可解释的关键字搜索,其中精确的术语匹配很重要。
    • • FAISS 对于提高 DPR 的可扩展性和效率至关重要。

    DPR、BM25 和 FAISS 的比较

    方法
    适用场景
    优势
    劣势
    DPR(密集检索)
    需要理解语义的任务
    可检索语义相似的文档,即使词汇不同
    计算成本高,搜索较慢
    BM25(稀疏检索)
    关键词匹配任务
    计算速度快,易解释
    不能理解语义,仅限于词匹配
    FAISS(加速 DPR)
    需要大规模检索的任务
    提高 DPR 的扩展性,减少计算开销
    仍然依赖 DPR 训练的向量

    RAG 的影响与未来发展

    RAG 通过结合检索推理(Retrieval-based Reasoning) 和 先进的语言建模(Advanced Language Modeling),正在彻底改变 AI 驱动的搜索与文本生成。它在需要实时、基于事实的、特定领域的知识检索的场景中尤其有价值,例如:

    • • 金融研究(Financial Research):分析市场数据,回答财务问题。
    • • 法律分析(Legal Analysis):解析法律法规,提供合规性建议。
    • • 医学诊断(Medical Diagnostics):基于医学文献生成病情分析和诊断。
    • • 学术研究(Academic Research):帮助学者搜索论文,归纳研究成果。

    此外,多重检索(Multi-Retriever)方法进一步增强了 RAG 在金融问答(Financial QA)中的能力。例如,它可以整合结构化法规数据(如 IRS 税法、SEC 备案)*和*现实世界新闻、专家意见,确保提供精确且最新的答案**。

    随着 AI 继续发展,RAG 模型将成为可信赖、准确的 AI 应用的关键组成部分。无论是回答复杂的金融问题、总结法律文本,还是生成医学报告,RAG 代表着 AI 在知识驱动领域的重大突破,使 AI 不仅流畅(fluent),更可靠(reliable)和知识丰富(knowledge-driven)

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询