发布于 2026-01-06 1 阅读
0

什么是 RAG(检索增强生成)?DEV 全球展示挑战赛,由 Mux 呈现:快来展示你的项目吧!

什么是 RAG(检索增强生成)?

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

检索增强生成(RAG)将外部信息检索集成到大型语言模型(LLM)生成响应的过程中。它会在数据库中搜索预训练知识库之外的信息,从而显著提高生成响应的准确性和相关性。

自从 ChatGPT 问世以来,语言模型在互联网上呈爆炸式增长,这并非没有道理。它们可以撰写文章、编写完整的程序,甚至可以制作表情包(尽管我们仍在讨论这是否是一件好事)。

但是,尽管这些聊天机器人功能强大,但在需要外部知识和事实信息的任务中仍然存在局限性。

是的,它可以极其细致地描述蜜蜂的摇摆舞。但如果它们能够从我们提供的任何数据(而不仅仅是它们最初的训练数据)中产生洞见,那么它们的价值就会大大提升。

由于从头开始重新训练这些大型语言模型需要花费数百万美元和数月时间,我们需要更好的方法让现有的语言模型能够访问我们的自定义数据。

虽然你可以在提示语方面更有创意,但这只是权宜之计。LLM(法学硕士)在回答问题时只能考虑有限量的文本,这被称为上下文窗口

有些模型,例如 GPT-3,最多可以识别大约 12 页文本(即 4096 个上下文词元)。但这对于大多数知识库来说远远不够。

RAG(红绿灯)的工作原理

上图展示了一个基本的红黄绿灯系统是如何运作的。在将问题转发给生命周期管理(LLM)之前,我们会先在知识库中搜索“相关知识”来回答用户查询。具体来说,在本例中,搜索的是上个月的支出数据。

我们的LLM现在可以对我们的预算做出相关的、非幻觉式的回应。

随着数据量的增长,您需要高效的方法来识别LLM(生命周期管理)有限内存中最相关的信息。这就需要一种合适的方法来存储和检索查询所需的特定数据,而无需LLM记住这些数据。

向量数据库以向量嵌入的形式存储信息。这种格式支持高效的相似性搜索,可以检索与查询相关的数据。例如,Qdrant 的设计初衷就是为了快速执行搜索任务,即使在处理数十亿个向量的情况下也能保持高效。

本文将重点介绍 RAG 系统和架构。如果您对向量搜索感兴趣,我们推荐以下文章:《什么是向量数据库?》《什么是向量嵌入?》

RAG架构

从本质上讲,RAG架构包括检索器生成器。让我们首先了解一下这两个组件各自的功能。

寻回犬

当你向检索器提出问题时,它会使用相似性搜索来扫描庞大的向量嵌入知识库。然后,它会提取出最相关的向量来帮助回答该查询。它可以使用几种不同的技术来判断哪些向量是相关的:

RAG检索器中的索引工作原理

索引过程会将数据整理到您的矢量数据库中,使其易于搜索。这使得 RAG 在响应查询时能够访问相关信息。

索引的工作原理

如上图所示,流程如下:

  • 首先需要一个加载器来收集包含您数据的文档。这些文档可以是文章、书籍、网页、社交媒体帖子等等。
  • 接下来,分割器将文档分割成更小的部分,通常是句子或段落。
  • 这是因为 RAG 模型更适用于较小的文本片段。在图中,这些是文档片段
  • 然后,每个文本块都被输入到嵌入机器中。这台机器使用复杂的算法将文本转换为向量嵌入

所有生成的向量嵌入都存储在索引信息的知识库中。这有助于在需要时高效地检索类似信息。

查询向量化

对知识库进行向量化后,就可以对用户查询进行同样的操作。当模型遇到新的查询时,它会使用相同的预处理和嵌入技术。这确保了查询向量与索引中的文档向量兼容。

检索工作原理

检索相关文件

当系统需要找到最相关的文档或段落来回答查询时,它会利用向量相似度技术。向量相似度是机器学习和自然语言处理(NLP)中的一个基本概念,它量化了向量之间的相似性,向量是数据点的数学表示。

该系统可以根据用于表示数据的向量类型,采用不同的向量相似性策略:

稀疏向量表示

稀疏向量的特点是维度高,其大部分元素为零。

经典的搜索方法是关键词搜索,它会扫描文档,查找查询中包含的确切词语或短语。搜索过程通过统计词语出现次数并对常用词赋予反向权重,来创建文档的稀疏向量表示。包含罕见词语的查询会被优先处理。

稀疏向量解释

TF-IDF(词频-逆文档频率)和BM25是两种经典的词性相似性算法。它们简单且计算效率高。然而,它们在处理同义词时会遇到困难,并且并非总能捕捉到语义上的相似性。

如果您有兴趣深入了解,请参阅我们关于稀疏向量的文章。

稠密向量嵌入

这种方法使用大型语言模型(例如BERT)将查询和段落编码成密集向量嵌入。这些模型是紧凑的数值表示,能够捕捉语义含义。像 Qdrant 这样的向量数据库存储这些嵌入,从而可以使用余弦相似度等距离度量,基于语义相似度而非关键词进行检索。

这使得检索器能够基于语义理解而非仅仅依赖关键词进行匹配。因此,如果我询问“导致体味的化合物”,即使我没有使用“产生体味的分子”这两个确切的词语,它也能检索到相关的信息。我们在《什么是向量嵌入》一文中对此进行了更详细的解释。

混合搜索

然而,关键词搜索和向量搜索都并非完美无缺。关键词搜索可能会遗漏以不同方式表达的相关信息,而向量搜索有时可能缺乏针对性,或者忽略重要的统计词型。混合方法旨在结合不同技术的优势。

混合搜索概述

一些常见的混合方法包括:

  • 首先使用关键词搜索获取初始候选文档集。然后,使用语义向量表示对这些文档进行重新排序/重新评分。
  • 首先利用语义向量查找主题相关的文档。然后,根据关键词匹配或其他元数据对文档进行过滤/重新排序。
  • 在综合评分模型中同时考虑语义向量接近度和统计关键词模式/权重。
  • 多阶段算法采用了不同的技术。例如:首先进行初始关键词检索,然后进行语义重排序,最后使用更复杂的模型进行最终重排序。

将不同搜索方法的优势互补结合,可以提供更高质量、更全面的搜索结果。如果您想了解更多信息,请查看我们关于混合搜索的文章。

发电机

检索到最相关的段落后,生成器现在的任务是通过综合这些信息并用自然语言表达出来,从而生成最终答案。

LLM通常是一个类似GPT、BART或T5的模型,它经过海量数据集的训练,能够理解并生成类似人类的文本。现在,它不仅将查询(或问题)作为输入,还将检索器识别出的可能包含答案的相关文档或段落作为输入,从而生成响应。

发电机的工作原理

检索器和生成器并非独立运行。下图展示了检索器的输出如何传递给生成器,从而生成最终的响应。

RAG系统的整体架构

RAG 在哪里使用?

由于 RAG 模型能够提供更具知识性和情境性的反馈,因此我们今天可以在许多领域发现它们的应用,尤其是在那些需要事实准确性和知识深度的领域。

实际应用:

问答系统:这或许是 RAG 模型最突出的应用场景。它们为高级问答系统提供支持,这些系统可以从大型知识库中检索相关信息,并生成流畅的答案。

语言生成: RAG 能够从多个来源生成更具事实性和语境化的文本,从而实现语境化的文本摘要。

数据转文本生成:通过检索相关的结构化数据,RAG模型可以从数据库中生成产品/商业智能报告,或描述数据可视化和图表中的见解。

多媒体理解: RAG 不仅限于文本——它还可以检索图像、视频和音频等多模态信息,以增强理解。通过检索相关的文本上下文来回答有关图像/视频的问题。

使用 Langchain、Groq 和 OpenAI 创建你的第一个 RAG 聊天机器人

准备好从零开始创建你自己的 RAG 聊天机器人了吗?我们有一个视频,从头开始讲解所有内容。Daniel Romero 将指导你完成以下步骤:

  • 设置您的聊天机器人
  • 为聊天机器人使用进行数据预处理和整理
  • 应用向量相似性搜索算法
  • 提高效率和响应质量

构建 RAG 聊天机器人后,您可以将其性能与仅由大型语言模型 (LLM) 驱动的聊天机器人的性能进行比较。

接下来会发生什么?

想把你的 RAG 项目变成现实吗?加入我们的Discord 社区,我们经常在那里分享技巧并解答有关矢量搜索和检索的问题。

了解更多关于如何正确评估 RAG 响应的信息:评估检索增强生成 - 评估框架

文章来源:https://dev.to/qdrant/what-is-rag-understanding-retrieval-augmented- Generation-534n