揭秘检索增强生成(RAG):深入探讨先进RAG管道的内部工作原理

RayRay
RAG pipelinesLLMsLlamaIndexHaystackEvaDBGithub开源项目

检索增强生成(RAG)技术概述

检索增强生成(Retrieval-Augmented Generation, RAG)是一种新兴的人工智能技术,旨在通过结合外部知识来增强大型语言模型(LLM)的能力。RAG技术的核心思想是在生成回答之前,先从外部数据源中检索相关信息,然后将检索到的信息与用户的问题一起输入到语言模型中,从而生成更准确、更及时、更全面的回答。

RAG技术主要解决了传统大型语言模型面临的三个主要问题:

  1. 准确性:通过限制模型使用已知的可靠数据集,RAG可以提高回答的准确性,减少"幻觉"的产生。

  2. 时效性:通过引入最新的外部数据,RAG可以生成更加及时和up-to-date的回答。

  3. 完整性:通过纳入组织的专有数据,RAG可以回答特定领域或业务相关的问题。

RAG pipeline overview

RAG管道的工作原理

一个典型的RAG管道通常包含以下几个关键组件:

  1. 数据仓库:包含与问答任务相关的各种数据源,如文档、表格等。

  2. 向量检索:给定一个问题,找出与问题最相似的前K个数据块。这通常通过向量数据库(如Faiss)来实现。

  3. 响应生成:将检索到的前K个最相似的数据块作为上下文,使用大型语言模型(如GPT-4)生成最终回答。

RAG管道的核心秘诀在于,每个组件都由一个精心设计的提示模板驱动的单个LLM调用来实现。整个管道本质上是一系列具有特定提示模板的LLM调用。这些提示模板是使RAG管道能够执行复杂任务的关键。

构建高级RAG管道

以子问题查询引擎为例,我们可以将其分解为三个主要任务:

  1. 子问题生成:将复杂问题分解为一系列子问题,并为每个子问题确定适当的数据源和检索函数。

  2. 向量/摘要检索:对每个子问题使用选定的检索函数从相应数据源中检索相关信息。

  3. 响应聚合:将子问题的回答聚合成最终响应。

子问题生成

子问题生成任务通过一个精心设计的"子问题提示模板"来实现:

你是一个专门将复杂问题分解为更简单、可管理的子问题的AI助手。
当遇到复杂的用户问题时,你的任务是生成一系列子问题,这些子问题在回答后将全面解答原始问题。
你可以使用预定义的一组函数和数据源来回答每个子问题。
如果用户问题很直接,你的任务是返回原始问题,并确定用于解决它的适当函数和数据源。
请记住,你只能使用提供的函数和数据源,每个子问题都应该是一个完整的问题,可以使用单个函数和单个数据源来回答。

Sub-question generation

向量/摘要检索

对于每个子问题,我们使用选定的检索函数从相应的数据源中检索相关信息。这一步骤使用了流行的RAG提示模板:

你是一个问答任务的助手。使用以下检索到的上下文来回答问题。如果你不知道答案,就说你不知道。最多使用三个句子,保持答案简洁。
问题: {question}
上下文: {context}
回答:

Vector/Summary retrieval

响应聚合

这是将子问题的回答聚合成最终响应的最后一步。同样,RAG提示模板在这一步骤中也表现出色。

Response aggregation

RAG技术面临的挑战

尽管RAG技术带来了许多优势,但它也面临一些挑战:

  1. 问题敏感性:LLM对用户问题极为敏感,管道可能会对某些用户问题出现意外失败。例如:

    • 生成不正确的子问题
    • 选择错误的检索函数
  2. 成本:RAG管道的最终成本取决于生成的子问题数量、使用的检索函数以及查询的数据源数量。由于LLM对提示敏感,问题的成本可能会因问题和LLM输出而显著变化。

结论

检索增强生成(RAG)技术为构建更强大、更可靠的问答系统开辟了新的可能性。通过将外部知识与大型语言模型的能力相结合,RAG能够生成更准确、更及时、更全面的回答。然而,正如我们所看到的,RAG并非万能解决方案。它依赖于精心设计的提示模板和多个链式LLM调用,可能对问题敏感,且在成本动态方面不够透明。

理解RAG的内部工作原理对于充分发挥其潜力至关重要。随着技术的不断发展,我们可以期待看到更加健壮和高效的RAG系统的出现,这将进一步推动人工智能问答技术的进步。

对于希望实践RAG技术的开发者,本文介绍的rag-demystified项目提供了一个很好的起点。通过深入研究该项目的代码实现,你可以更好地理解RAG管道的各个组成部分,并探索如何将RAG技术应用到自己的项目中。

随着人工智能技术的不断进步,我们可以预见RAG将在未来的智能问答系统中扮演越来越重要的角色。通过不断优化和改进RAG技术,我们有望构建出更加智能、更加可靠的AI系统,为用户提供更优质的问答体验。

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多