文章推荐

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 多模态问答


检索增强生成(RAG)是一种技术,它结合了大型语言模型的内在知识与外部数据库的信息,以提升生成内容的准确性和可信度。这种方法对于解决大型语言模型在处理知识密集型任务时遇到的挑战,如幻觉、过时知识和不透明推理等问题,显示出了显著的效果。通过整合外部数据库的知识,RAG不仅增强了模型的能力,还为提高生成内容的质量和可靠性开辟了新的可能性。

RAG 与其它技术比较

在大语言模型优化策略的讨论中,我们常将检索增强生成(RAG)与微调(Fine-tuning,简称FT)及提示工程进行对比。以下是从外部知识需求和模型适配需求两个维度,通过象限图来展示这三种方法的不同之处。

提示工程

  • 定义:该方法侧重于利用模型的现有能力。
  • 外部知识需求:几乎不需要。
  • 模型适配需求:最低。

RAG

  • 比喻:可视为为特定信息检索定制的教科书型模型。
  • 适用性:极其适合执行精确的信息检索任务。
  • 早期阶段(Naive RAG):几乎不需要对模型架构进行调整。

FT

  • 特点:需要对模型进行额外的训练。
  • 应用:针对不同的下游任务,需对整个大型模型重新训练。
  • 比喻:类似于学生随时间推移将知识内化。
  • 适用场景:适用于那些需要复现特定结构、风格或格式的场合。 注意:以上比较分析基于各方法的特性进行阐述。

为什么选择RAG而非微调进行增强

在自然语言处理(NLP)领域,RAG(Retrieval-Augmented Generation)和微调是两种常见的模型增强方法。尽管微调听起来更直观,但RAG在某些情况下展现出了其独特的优势。以下是RAG与微调的对比分析,旨在帮助大家在面对问题定位和解决方案思考时做出更明智的选择。

RAG的优势

  1. 灵活性:RAG通过检索相关信息并结合生成模型,能够更灵活地处理多样化的问题。

  2. 信息丰富性:它能够从大量数据中检索信息,提供更全面的答案。

  3. 适应性:对于新领域或不断变化的数据,RAG能够更快地适应和学习。

微调的特点

  1. 简单性:微调方法相对简单,易于理解和实施。

  2. 效率:在数据量较小的情况下,微调可以快速提升模型性能。

  3. 稳定性:对于稳定不变的数据集,微调能够提供稳定的性能提升。

应用场景对比

  • RAG:适用于需要处理大量信息、快速适应新领域或数据的场景。

  • 微调:适用于数据量较小、领域相对固定且变化不大的场景。

结论

在选择增强方法时,应根据具体问题的需求、数据的特性以及预期的应用场景来决定使用RAG还是微调。RAG提供了一种更为灵活和适应性强的解决方案,而微调则在特定条件下更为高效和稳定。

RAG 的分类

从演进范式角度分类

RAG(Retrieval-Augmented Generation)的研究范式在不断地发展和演进,我们可以将其分为三个主要阶段:

  • 朴素 RAG:主要包含三个核心组成部分——索引、检索和生成。这个阶段的做法是直接将输入数据向量化,之后通过向量数据库进行匹配。最后,将输入数据与向量数据库中的匹配结果一起送入大语言模型(LLM)中以生成最终的结果。尽管这种模式在成本效益方面表现出色,并且在某些任务上的性能超过了传统的大型语言模型,但它依然存在一些挑战。

  • 高级 RAG:在此基础上增加了数据预筛选步骤,并围绕预检索和后检索提出了一系列优化策略。高级 RAG 的流程仍然保持了与朴素 RAG 类似的链式结构,但是在数据处理上更加精细,提高了检索的效率和准确性。

  • 模块化 RAG:进一步继承和发展了之前的范式,通过引入多个具有特定功能的模块以及允许替换现有的模块,使得整体系统展现出了更大的灵活性。模块化 RAG 不仅仅局限于顺序的检索和生成过程,它还支持迭代检索和自适应检索等多种方法,从而提高了系统的适应性和扩展性。

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

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

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

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

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

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

RAG模型核心结构

检索阶段:高效地从数据源中检索相关文档是至关重要的。这一过程需要考虑的关键因素包括选择合适的检索源、确定检索的粒度、进行必要的预处理步骤,以及选择恰当的嵌入模型。 生成阶段:检索到的信息不应直接全部输入到大语言模型中以生成答案。需要对检索到的信息进行筛选和整合,并对大语言模型进行适当的调整,以确保生成的回答既准确又相关。 增强阶段:在RAG(Retrieval-Augmented Generation)领域,通常采用单次检索后直接生成的流程。然而,这种做法在处理需要多步骤推理的复杂问题时可能效率不高且不够充分。因此,探索多轮检索和生成的策略,以增强模型对复杂问题的处理能力,是当前研究的一个重要方向。

RAG 增强功能概述

在提升RAG(Retrieval-Augmented Generation)模型性能的过程中,我们从不同维度探索了多种增强方法。这些方法可以归纳为五个主要类别:输入增强、检索器增强、生成器增强、结果增强以及整个管道的增强。此外,针对RAG模型的检索环节,我们特别关注了三种检索增强策略:迭代检索、递归检索和自适应检索。

检索增强策略

迭代检索

迭代检索是一种动态的检索过程,它通过在检索和生成步骤之间进行交替,逐步丰富和细化上下文信息。这种方法允许模型在每一步都从知识库中获取更加丰富和针对性的信息,从而提高最终输出的质量。

递归检索

递归检索通过将复杂问题分解为多个子问题,并逐步解决这些子问题来实现。这种方法通过细化用户查询,使得模型能够更深入地理解和处理复杂问题。

自适应检索

自适应检索强调模型的自主性,使RAG系统能够根据需要自主决定是否进行外部知识检索,以及何时停止检索和生成过程。这通常涉及到使用特定的控制Token,由大型语言模型(LLM)生成,以指导检索过程。

增强方法分类

  1. 输入增强:优化模型接收的输入数据,以提高处理效率和输出质量。

  2. 检索器增强:改进检索器的性能,使其能够更准确地从知识库中检索相关信息。

  3. 生成器增强:提升生成器的能力,使其能够基于检索到的信息生成更准确、更丰富的内容。

  4. 结果增强:对生成的结果进行后处理,以提高其可用性和准确性。

  5. 管道增强:整体优化RAG模型的工作流程,确保各个组件之间的高效协同。

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

RAG 模型评估指南

在自然语言处理(NLP)领域,RAG(Retrieval-Augmented Generation)模型因其在多种任务中的卓越性能而受到广泛关注。为了将RAG技术有效地融入到大型语言模型的应用中,对其在不同场景下的性能进行深入理解和优化至关重要。以下是对RAG模型的主要下游任务、相关数据集以及评估方法的概述。

RAG的主要下游任务

RAG模型能够处理多种复杂的NLP任务,包括但不限于:

  • 问答(Question Answering)

  • 文本摘要(Text Summarization)

  • 机器翻译(Machine Translation)

  • 对话系统(Dialogue Systems)

常用数据集

为了评估RAG模型的性能,研究人员通常会使用以下数据集:

  • SQuAD(问答任务)

  • CNN/Daily Mail(文本摘要任务)

  • WMT(机器翻译任务)

  • DailyDialog(对话系统任务)

RAG系统的评估方法

评估RAG系统时,可以采用以下方法:

  • 准确度:衡量模型输出与真实答案的一致性。

  • 召回率:评估模型能够检索到相关信息的能力。

  • F1分数:综合考虑准确度和召回率的指标。

  • BLEU分数:常用于机器翻译任务,衡量翻译质量。

  • ROUGE分数:适用于文本摘要任务,评估摘要的质量和覆盖度。 通过这些评估方法,我们可以全面地了解RAG模型在特定任务上的表现,并据此进行优化。

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


| 评估类别 | 描述 | 度量指标 | | –

  • | –
  • | –
  • | | 质量分数 | 这些分数衡量了RAG模型在提供有用和准确信息方面的表现。 | | |
  • 上下文相关性 | 评估生成的答案是否与提供的上下文紧密相关。 | 相关性得分(如余弦相似度) | |
  • 答案忠实性 | 确认生成的回答是否忠于提供的文档或数据。 | 忠实性检查(如提取-生成对比) | |
  • 答案相关性 | 测量回答是否直接针对所提问题。 | 直接性评分(如人工评估或自动NLP指标) | | 基本能力 | 这些能力测试了RAG模型处理复杂情况的能力。 | | |
  • 噪声鲁棒性 | 评估模型能否在存在无关或误导信息的情况下仍能产生正确结果。 | 鲁棒性测试(如引入噪声后的性能变化) | |
  • 否定拒绝 | 检查模型是否能够恰当地回应无法回答的问题或没有足够信息支持的问题。 | 拒绝率(如对无法回答问题的识别准确度) | |
  • 信息集成 | 评价模型是否能够综合多个来源的信息来生成完整且一致的答案。 | 信息融合度(如多源信息一致性) | |
  • 反事实稳健性 | 测试模型在面对假设性或虚构情境时的表现是否稳定。 | 反事实分析(如改变输入后的一致性评分) |

    在评估响应生成模型(RAG)的性能方面,行业已经开发了一系列基准测试和工具。这些资源和评估手段为定量测量RAG模型的性能提供了手段,并且加深了我们对模型在不同评估维度上的表现的理解。其中,RGB、RECALL和CRUD等知名基准测试专注于RAG模型的核心能力评估。此外,像RAGAS、ARES和TruLens这样的先进自动化工具,利用大型语言模型来评估质量得分。以下表格概述了这些工具和基准测试如何共同构成一个强大的RAG模型评估框架:

RAG技术的应用领域

RAG(Retrieval-Augmented Generation)技术通过结合检索和生成两个步骤,提高了模型在多种领域的应用效果。以下是RAG技术的一些主要应用场景:

文本领域

  • 文本摘要:自动生成文章或报告的摘要。

  • 问答系统:构建能够理解和回答复杂问题的系统。

  • 对话生成:创建自然流畅的对话系统。

代码领域

  • 代码注释:自动生成代码的注释,帮助理解代码功能。

  • 代码片段生成:根据需求自动生成代码片段。

  • 文档生成:生成解释性文档,帮助用户理解代码。

音频领域

  • 语音识别:将语音转换为文本。

  • 语音生成:将文本转换为语音。

  • 音频内容摘要:提取音频内容的关键信息。

视频领域

  • 视频内容摘要:生成视频内容的简短描述。

  • 视频片段生成:根据特定需求生成视频片段。

  • 视频字幕生成:为视频自动生成字幕。 RAG技术因其在不同领域的强大应用能力,成为了一个多功能的工具,能够提供自然和准确的生成及理解能力。

RAG 的生态总结

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

01. RAG 落地实践中的挑战

在近期的北京 Qcon 大会上,句子互动的联合创始人兼 CTO 进行了一次关于 RAG(Retrieval-Augmented Generation)技术在商业化过程中遇到的实际问题的分享。尽管他的演讲内容简洁且直接,但却非常贴近实际应用。

  • 表格数据的 RAG 方案 在处理结构化数据如表格时,如何有效地实现信息检索与生成模型的结合是一个关键问题。这涉及到如何将表格中的数据转化为模型可以理解的形式,并且能够准确地从这些数据中检索出相关的信息。

  • 效果优化 提升 RAG 应用的效果是另一个重要的议题。这不仅包括提高检索的准确性,还包括增强生成内容的质量,确保所生成的回答既准确又符合上下文。

  • Embedding 相似度不足 在使用 Embedding 技术进行语义相似度计算时,可能会出现相似度评分不准确的情况,这会导致检索结果的相关性不高。

  • 模型幻觉 即使模型训练得很好,有时也会产生所谓的"幻觉",即生成的信息虽然流畅但实际上是错误的或无根据的。

  • 重复提问的不一致性 当用户对同一个问题进行多次询问时,系统应该能够提供一致的答案,但在实践中,这往往难以实现,尤其是在信息源更新或者模型状态变化的情况下。

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

坑三:Embedding 相似度不准

坑四:自行编造产品问题

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


金山云人工智能产品中心总经理陈海彪介绍了基于RAG模式的金山云轻舟智问技术架构及其在不同行业的创新应用。他详细阐述了围绕RAG体系构建的相关能力,并讨论了大模型技术与知识库结合带来的新应用模式——知识助手。

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

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

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

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

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


Fabara 的解决方案负责人张红兵展示了他们开发的基于多模态智能引擎的大模型知识库技术。这项技术结合了实际案例和实践经验,旨在解决企业面临的复杂数据问题,提供了一种创新的解决方案——即利用多模态智能引擎构建的大模型知识库。

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

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

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

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


在探索现代AI和数据库技术的交汇点上,RAG(Retrieval-Augmented Generation)技术显得尤为重要。以下是一系列精选的RAG相关资源,旨在帮助开发者和研究人员深入理解RAG技术的应用和实践:

  1. 2024年向量数据库与RAG落地思考与实践: 探讨了向量数据库与RAG结合的可能性和实际应用,为理解这一领域的最新进展提供了宝贵的视角。资源链接

  2. Al原生数据库Infinity系统架构与RAG技术实践: 介绍了Infinity系统的架构设计以及如何在其中有效运用RAG技术,对构建大规模AI应用具有指导意义。资源链接

  3. 基于多模态智能引擎的大模型知识库技术应用: 展示了如何利用多模态智能引擎和大模型来构建知识库,并讨论了其中的技术和挑战。资源链接

  4. 激活数据潜能:向量数据库与生成式AI的实战洞察: 分析了向量数据库与生成式AI结合的优势和挑战,提供了一系列实战案例和经验分享。资源链接

  5. 金山云:大模型推动知识工作领域的创新与变革: 金山云分享了他们如何利用大模型技术推动知识工作领域的创新,为行业提供了新的思路和方向。资源链接

  6. RAG商业落地实践踩坑: 从商业角度出发,总结了RAG技术在实际落地过程中遇到的挑战和解决方案,对未来项目的成功实施具有参考价值。资源链接

  7. 基于RAG构建生成式AI应用最佳实践与避坑指南: 提供了构建生成式AI应用的最佳实践和常见问题的避坑指南,适合希望深入了解RAG应用的开发者。资源链接

  8. LLM在微盟BI场景的探索与落地: 微盟分享了他们在BI场景中探索和应用LLM(大型语言模型)的经验,对类似场景下的技术开发和落地具有借鉴意义。资源链接