前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度解析RAG技术在大模型时代的原理与实践

深度解析RAG技术在大模型时代的原理与实践

原创
作者头像
机器智能社区
发布2024-06-03 11:29:18
1.2K0
发布2024-06-03 11:29:18
举报
文章被收录于专栏:社区动态社区动态

文章推荐

AI Agent 深度解析 * 潜力与挑战并存的智能新世界

AI 日报_硅谷 “鲁迅” 怒怼马斯克_炮轰 AI 界 * 前 OpenAI 安全主管入职友商 Anthropic

继上篇《AI Agent 深度解析:潜力与挑战并存的智能新世界》,吴俊将继续分享参加 QCon 北京 2024 后的见闻,与大家一同探讨大模型应用 - RAG 的核心内容与应用。

作者简介: 吴俊(弈德) ,蚂蚁集团消金风管技术部 AI 工程团队 TL,当前负责风管大模型应用工程,承担风管部分业务场景的大模型评测,大模型推理优化及大模型应用落地。

AI 内容相关视频

我们即将制作 AI 内容相关视频,因此想提前通过五个问题,调研各位小伙伴对内容有哪些期待~感谢您的宝贵意见,期待制作精彩有趣的 AI 内容视频呈现给大家

⭐️问卷调查地址https://w.wjx.com/vm/OtQXUxV.aspx#

RAG 的概念

QCon 北京 2024 上涉及了很多大模型应用落地场景,出现比较多的应用模式关键词是:AI Agent 和 RAG(RAG 也常被在 Agent 的 Cot 或是 Mutil-Agent 协作的流程中)。上篇针对 AI Agent 有过初步讲解, 那什么是 RAG?本文将结合 Qcon 的见闻,基于 RAG 的核心组件、RAG 的常见范式,RAG 的应用场景及 RAG 的评估,介绍当前各大公司使用 RAG 进行相应应用落地实践情况。

01. 什么是 RAG?

在 LLM 时代,RAG 的具体定义指的是,当回答问题或生成文本时,首先从大量文档中检索相关信息。随后,利用这些检索到的信息来生成响应或文本,从而提高预测质量。一个通用的 RAG 管道 它主要由 3 个步骤组成:

  • 索引:文档被分割成块,编码成向量,并存储在向量数据库中;
  • 检索:根据语义相似性检索与问题最相关的前 k 个块;
  • 生成:将原问题和检索到的词块一起输入大语言模型中,生成最终答案。

RAG 文本问答

RAG 多模态问答

02. 为什么用 RAG?

大模型的挑战

大型语言模型展示了强大的能力,但也面临着幻觉、过时知识和不透明推理等挑战。检索增强生成(RAG)通过整合外部数据库的知识,提高了生成内容的准确性和可信度。RAG 将大型语言模型的内在知识与外部数据库融合,为知识密集型任务带来了前景。

RAG 与其它技术比较

在大语言模型的优化方法中,RAG 经常与 Fine-tuning(FT)和提示工程相比较。我们用象限图从外部知识需求和模型适配需求两个维度来说明三种方法的差异。

提示工程: 利用模型的固有功能,而对外部知识和模型适应的需求最少。

RAG: 可以比作为信息检索提供量身定制的教科书模型,非常适合精确的信息检索任务。早期阶段(Naive RAG),几乎不需要对模型进行修改

FT: 需要进一步训练模型,针对不同下游特定任务,需要重新训练整个庞大的模型;相当于学生随着时间的推移内化知识,适用于需要复制特定结构、风格或格式的场景。

有人提出过这个疑问,为什么要用 RAG 来做增强,而不选择比较容易想到的微调来做,这里提及了 RAG 的优势以及和微调的差异,在这里列出两者的对比,主要是为了让大家在进行问题定位和解决方案思考时能参考,权衡好什么时候该用哪些部分。

RAG 的分类

01. 从演进范式角度分类

RAG 研究范式在不断发展和演进,我们将其分为三个阶段:初级 RAG、高级 RAG 和模块化 RAG。虽然早期的 RAG 在成本效益上表现良好,并且性能优于传统的大语言模型 (LLM),但它仍面临着诸多挑战。高级 RAG 和模块化 RAG 的设计是为了解决原始 RAG (Naive RAG) 的特定不足。下面是三种开发范式解释和相应用组件部分示意图:

朴素 RAG: 主要由三部分组成:索引、检索和生成,直接将输入数据向量化,然后对向量数据库进行匹配,最后将输入数据与向量数据库匹配结果共同放入大模型中生成最终结果;

高级 RAG: 增加了对数据的预筛选,围绕预检索和后检索提出了多种优化策略,其过程与朴素 RAG 相似,仍然遵循链式结构。

模块化 RAG: 继承和发展了以前的范式,整体上显示出更大的灵活性。这体现在引入多个特定的功能模块和替换现有模块上。整个过程不仅限于顺序检索和生成,还包括迭代和自适应检索等方法。

02. 从检索与生成协同角度

根据检索器如何增强生成器,我们将 RAG 基础范式分为 4 个不同类别:

基于查询的 RAG:利用用户 query 检索得到相关文档,将检索结果跟用户 query 拼接到一起作为生成模型的输入。这种方式是直接利用外部检索知识来指导生成模型,是目前 RAG 的主流范式。

基于潜在表征的 RAG:利用用户 query 检索得到相关文档,并获取对应文档的向量表征,在生成模型生成阶段融入知识文档的表征信息。这是一种隐式利用外部检索知识指导生成模型的方式。

基于 Logit 的 RAG:生成模型在 decoder 阶段计算下一个 token 的 logit 时,同时考虑生成预测的结果跟检索模块返回的信息。这种方式将检索模块与生成模块视为两个独立的链路,再联合两者的 logit 值。

Speculative RAG:利用检索模块来替代生成模块的方式,主要用于节省资源跟加速文本生成。这种方式提供一段候选回复,让生成模型判断这段候选回复是否适合作为最终结果。

RAG 核心结构

检索: 从数据源中高效检索相关文档至关重要。其中涉及到几个关键问题,如检索源、检索粒度、检索的预处理以及相应嵌入模型的选择等。

生成: 检索后,将所有检索到的信息直接输入大语言模型来回答问题并不是一个好的做法。需要从调整检索内容和调整大语言模型两个角度介绍调整。

增强: 在 RAG 领域,标准实践通常涉及单个(一次)检索步骤,然后生成,这可能导致效率低下,有时通常不足以满足需要多步骤推理的复杂问题。

01.RAG 的增强功能

RAG 增强是整体体系的重点,从多个角度我整理了下增强 RAG 性能的方法。从整个 RAG 流程角度,我们根据现有方法的增强目标将其分为 5 个不同的组:输入、检索器、生成器、结果和整个管道。单从 RAG 检索一个点来看,检索增强可以包含迭代、递归 & 自适应三个方法。

检索增强分类

除了最常见的一次检索之外,RAG 还包括三种类型的检索增强过程。

迭代检索:涉及检索和生成之间的交替,允许在每一步从知识库中获得更丰富、更有针对性的上下文。

递归检索:涉及逐步细化用户查询并将问题分解为子问题,然后通过检索和生成不断解决复杂问题。

自适应检索:侧重于使 RAG 系统能够自主确定是否需要外部知识检索以及何时停止检索和生成,通常利用 LLM 生成的特殊 Token 进行控制。

RAG 过程增强分类根据现有方法的增强目标将其分为 5 个不同的部分:输入、检索器、生成器、结果和整个管道。针对这些部分有针对性的相应增强方式和方法。

RAG 评估

RAG 在 NLP 领域的快速发展和广泛采用,将 RAG 模型的评估推向了大语言模型界研究的前沿。将 RAG 技术引进到大模型应用场景,我们需要了解和优化 RAG 模型在不同应用场景下的性能。下面简要讲讲 RAG 的主要下游任务、数据集以及如何评估 RAG 系统。

01.RAG 的下游任务

RAG 的核心任务仍然是问答(QA),包括传统的单跳 / 多跳 QA、多选、特定领域的 QA 以及适合 RAG 的长格式场景。除了 QA 之外,RAG 正在不断扩展到多个下游任务,例如信息提取(IE)、对话生成、代码搜索等。RAG 的主要下游任务及其相应的数据集总结在表:

02.RAG 的评估项及度量指标

RAG 模型的当代评估实践强调三个主要质量分数和四个基本能力,它们共同指导 RAG 模型的两个主要目标的评估:检索和生成。其中质量分数: 上下文相关性,答案忠实性,答案相关性基本能力: 噪声鲁棒性,否定拒绝,信息集成,反事实稳健性适用于 RAG 评估方面的指标摘要,分别对应质量分数和基本能力对应的度量标准,如下表所示:

03.RAG 的评估框架及 Benchmark

业界提出了一系列基准测试和工具来促进 RAG 的评估。这些工具提供的定量指标不仅可以衡量 RAG 模型的性能,还可以增强对模型在各个评估方面的能力的理解。RGB、RECALL 和 CRUD 等著名基准,专注于评估 RAG 模型的基本能力。同时,最先进的自动化工具如 RAGAS、ARES 和 TruLens 雇用大语言模型来判定质量分数。这些工具和基准共同构成了用于系统评估 RAG 模型的强大框架,如表所示:

† 代表基准,‡ 代表工具。* 表示自定义量化指标,偏离传统指标。鼓励读者根据需要查阅相关文献,了解与这些指标相关的具体量化公式。

RAG 的应用场景

RAG 技术具有广泛的应用场景,可以在文本、代码、音频、视频等多个领域发挥作用。

  • 在文本领域,RAG 可用于生成自然语言文本摘要、问答系统和对话生成。
  • 在代码领域,RAG 可以帮助自动生成代码注释、代码片段和解释性文档。
  • 在音频领域,RAG 可用于语音识别、语音生成和音频内容摘要。在视频领域,RAG 可以应用于视频内容摘要、视频片段生成和视频字幕生成等。

总的来说,RAG 技术的广泛应用使其成为一个强大的工具,能够在各种领域中提供自然、准确的生成和理解能力。

RAG 的生态总结

下面是基于前面 RAG 各部分的一个生态全景图,包含了 RAG 的下游任务、RAG 范式,RAG 评估、RAG 的核心技术,RAG 的展望等。

业界的 RAG 实战

回到场景里,从整个北京 Qcon 的分享来看,此次 RAG 和向量数据库有一个专门的专项,本文将挑几个主题展示他们的实战及成果。

**01.**RAG 的落地实践问题

句子互动联合创始人 & CTO 分享了他们在 RAG 商业化落地碰到的各种问题,整个分享展示简单,内容朴素,但还是十分落地的。他分别从表格数据的 RAG 方案,效果优化,Embedding 相似度不够、模型幻觉、多次同样问题回复不准确等多个实践方面进行了分享。

坑一:表格数据如何 RAG

坑二:表格数据 RAG 效果不佳

坑三:Embedding 相似度不准

坑四:自行编造产品问题

坑五:多次回复稳定性不好

02.RAG 的垂直场景应用

金山云人工智能产品中心总经理 - 陈海彪,分享了其基于 RAG 模式的金山云轻舟智问的技术架构,及其在各行各业如何实现创新应用。其中围绕着 RAG 体系,进行了相关能力构建的讲解。大模型的技术发展,结合知识库,带了一种全新的应用模式 "知识助手"(通过 RAG 技术)

RAG 的升级为以解释性检索为中心的 RCG

检索的关键,如何高效建设索引。他们做了很多能力建设,如一些智能能力的搭建,如:OCR 模型、文档智能解析、多模态文档识别引擎等;文档智能的处理流程;利用多路递进式召回策略进行检索准确性;

检索的重要第二步,训练 Embedding 模型

检索的效果好坏,需要闭环的专业评测体系,他们基于 RAG 的评测方法论,也自建了一套自动和专家人工评测

最后他分享了在金山云售后问答、政务 & 法律、智能合同审查、公文智能写作助手等场景都有落地且效果不错。但知识助手的挑战也异常艰巨,其中,模型的可解释性和幻觉将一直他们需要解决的长期系统工程。

03. 多模态的 RAG 探索

来自 Fabara 的解决方案负责人 - 张红兵,介绍了他们基于多模态智能引擎的大模型知识库技术应用,它们结合落地案例实践经验,针对企业实际、复杂的数据现状,提供全新的解决方式 —— 基于多模智能引擎的大模型知识库方案。

对企业多源、异构数据的现状,需对这些不规范数据进行解析,智能抽取数据之间的关系并提供低代码方式进行数据探查;

  • 元数据知识化
  • 元数据智能补齐
  • 元数据关联关系发现和构建

在多模态智能引擎中以图的形式存储确定的知识,以向量的形式存储非结构化的知识,以图和向量融合的方式构建大语言模型驱动的企业知识中台。

利用低代码技术快速构建包括智能对话、摘要、标签、生成、text2data 在内的各种知识应用,为企业大模型用落地提供有效的技术支撑。

还有其的 RAG 案例,这里就不一一展开了。RAG 也不是单独存在的,Agent 中也时常会和 RAG 一起结合进行大模型的复杂应用的构建。下面是 RAG 相关文档的 PPT 下载地址,大家感兴趣自取。

  • 2024 年向量数据库与 RAG 落地思考与实践:

https://qcon.infoq.cn/2024/beijing/presentation/5940

  • Al 原生数据库 Infinity 系统架构与 RAG 技术实践:

https://qcon.infoq.cn/2024/beijing/presentation/5755

  • 基于多模态智能引擎的大模型知识库技术应用:

https://qcon.infoq.cn/2024/beijing/presentation/5737

  • 激活数据潜能:向量数据库与生成式 AI 的实战洞察:

https://qcon.infoq.cn/2024/beijing/presentation/5909

  • 金山云:大模型推动知识工作领域的创新与变革:

https://qcon.infoq.cn/2024/beijing/presentation/5808

  • RAG 商业落地实践踩坑:

https://qcon.infoq.cn/2024/beijing/presentation/5939

  • 基于 RAG 构建生成式 AI 应用最佳实践与避坑指南:

https://qcon.infoq.cn/2023/shanghai/presentation/5695

  • LLM 在微盟 BI 场景的探索与落地:

https://qcon.infoq.cn/2023/shanghai/presentation/5688

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章推荐
  • AI 内容相关视频
  • RAG 的概念
    • 01. 什么是 RAG?
      • 02. 为什么用 RAG?
      • RAG 的分类
        • 01. 从演进范式角度分类
          • 02. 从检索与生成协同角度
          • RAG 核心结构
            • 01.RAG 的增强功能
            • RAG 评估
              • 01.RAG 的下游任务
                • 02.RAG 的评估项及度量指标
                  • 03.RAG 的评估框架及 Benchmark
                  • RAG 的应用场景
                  • RAG 的生态总结
                  • 业界的 RAG 实战
                    • **01.**RAG 的落地实践问题
                      • 02.RAG 的垂直场景应用
                        • 03. 多模态的 RAG 探索
                        相关产品与服务
                        向量数据库
                        腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持千亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、自然语言处理等 AI 领域。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档