对话访谈——五问RAG与搜索引擎:探索知识检索的未来

记一次关于RAG和搜索引擎在知识检索方面的对话访谈,针对 RAG 与传统搜索引擎的异同,以及它们在知识检索领域的优劣势进行了深入的探讨。

在这里插入图片描述

Q:传统搜索引擎吗,通过召回-排序的两阶段模式,实现搜索逻辑的实现,当前RAG技术也是通过:召回-生成两阶段实现的。你怎么看?

传统搜索引擎和 RAG 技术在架构上确实有一些相似之处,都采用了两阶段的处理模式。让我来分享一下我的理解,传统搜索引擎通常分为召回(Recall)和排序(Ranking)两个阶段:

  1. 召回阶段:通过倒排索引、term matching 等快速匹配文档,从海量库中筛选出与查询相关的候选文档集合。这一阶段侧重速度和覆盖度。
  2. 排序阶段:采用更精细的算法和更多特征,对召回的候选集进行精排,生成最终的排序结果。这一阶段侧重质量和相关性。

RAG 作为一种检索增强的生成式模型,也分为检索(Retrieval)和生成(Generation)两个阶段:

  1. 检索阶段:通过 embedding 向量相似度匹配等方式,从支撑知识库中检索出与输入最相关的 top-k 个知识片段。RAG 的检索通常是针对 passage 或 chunk 级别,相比传统搜索引擎粒度更细。
  2. 生成阶段:以输入 query 和检索出的知识片段为上下文,用生成式模型(如 seq2seq)产生最终的答案文本。生成阶段可以很好地整合和总结知识,生成连贯自然的答案。

可以看出,两者在 pipeline 结构和解耦逻辑专业化方面有相通之处。但 RAG 更侧重知识的语义检索与整合,以支持自动问答、对话、摘要等自然语言生成任务。而传统搜索引擎的目标是匹配和排列现有的网页文档,为用户提供导航服务。

Q:那能否更加详细分析下,两阶段模型相比端到端模式呢?

好的,我们来深入对比分析两阶段模型和端到端模式。
从工程实践来看,两阶段模型相比端到端模式有以下优势:

  1. **解耦与分治:**将复杂的搜索、问答任务解耦为两个相对独立的子问题和阶段。每个阶段可以采用不同的算法、模型和优化策略。这种模块化有利于系统的开发、调试、维护和迭代。
  2. 可解释性:两阶段模型的中间结果(检索结果、候选答案)是可察看、可解释的。这对于出错分析、循环优化很有帮助。相比之下,端到端模式更像是个黑盒子,中间过程难以解释。
  3. 资源效率:两阶段模型允许在不同阶段使用不同的计算资源。召回/检索阶段通常可以用性价比更高的 CPU 集群,而排序/生成阶段则可以下沉到 GPU/TPU 等 AI 加速器。这种异构计算有助于提升整体效率,控制成本。
  4. 冷启动与少样本:端到端模式通常是数据饥渴型的,需要海量的端到端标注数据。而两阶段模型可以为每个阶段独立地构建训练集,在数据资源受限时,可以利用少样本学习、迁移学习等技术,相对更容易冷启动。
  5. 人机协同:两阶段模型允许人工介入干预。比如可以对召回结果人工审核筛选,对生成答案人工参考修订。这种人机协同可以弥补算法的不足,提升答案质量,也有助于发现训练数据。而端到端模式通常难以进行人工干预。

当然,端到端模式也有自身的优势:

  1. 简单:端到端模式消除了中间步骤,直接学习从输入文本到输出文本的映射。这在概念和实现上都更简洁。
  2. 统一目标:端到端模式可以用单一的目标函数端到端优化,不同模块之间可以协同更紧密,整体效果可能更优。
  3. 免去人工特征:端到端模式不需要人工设计中间特征,神经网络可以自动学习到合适的中间表示。

两阶段模型和端到端模式其实是两种不同的范式,没有绝对的优劣。工业界较多采用两阶段模型,更多是从工程角度出发,看重其模块化、可解释、可干预等特性。而学术界的尝试更多是端到端模式,更强调模型的简洁性和整体优化。
未来可能会有更多融合两者思想的创新模式出现。还有,随着大模型和自回归模型的发展,未来搜索、问答的形态也可能发生颠覆性的变化。

Q:什么情况下适合端到端?什么情况下适合分阶段模式呢?

这是一个很好的问题。我认为选择端到端还是分阶段模式,主要取决于任务的特点、数据的规模、可解释性的要求等因素。让我们分别讨论适合端到端和分阶段模式的一些场景。
适合端到端模式的情况:

  1. 任务的端到端数据容易获取:如果任务的输入输出数据是直接可得、容易标注的,那么端到端模式会更有优势。因为端到端学习需要大量的配对数据,中间过程的数据反而不太重要。
  2. 任务的评估指标是端到端的:有些任务的评估指标天然就是端到端的,比如机器翻译的 BLEU 分数、语音识别的错词率等。这种情况下,端到端优化目标明确,分阶段优化的价值不大。
  3. 任务的流程难以拆分:有些任务很难清晰地划分阶段或模块,不同部分之间高度耦合。强行拆分可能会引入额外的误差和复杂度。这种情况下,端到端学习可能更简洁有效。
  4. 不需要人工干预和解释:如果任务对可解释性和人工干预的要求不高,那么端到端模式会更灵活高效。因为分阶段模式为了可解释性,常常需要损失一定的性能。

适合分阶段模式的情况:

  1. 任务的自然流程可分:许多任务天然就是若干个子任务的组合,每个子任务的输入输出、目标函数、知识领域都相对独立。这种情况下,分阶段建模更符合任务的认知逻辑。
  2. 任务需要人机协同:如果任务需要人工审核、修订、反馈等环节,那么分阶段模式可以提供更好的人机交互界面。每个阶段的输入输出都可以成为人机交互的接口。
  3. 数据和资源受限:如果任务缺乏大规模的端到端数据,但某些子任务的数据相对充足,则可通过分阶段建模,利用这些子任务数据提升整体效果。不同阶段也可以使用不同的计算资源。
  4. 可解释性很重要:在医疗、金融、法律等高风险领域,AI 系统的可解释性至关重要。分阶段模型可以提供清晰的推理链条,每个阶段的结果都可以审核、分析、调试。
  5. 任务在动态演进:现实世界的许多任务需求是动态变化的。分阶段模式允许我们更灵活地升级、替换某些模块,而不用推倒重来。这对系统的持续优化很有帮助。

当然,以上只是一些总体思路,具体问题还需具体分析。未来可能会涌现出更多融合两种范式优点的创新模式。我们还要持续关注前沿的研究进展。

Q:现在有一种论调:RAG陷入了传统搜索引擎的老路-两阶段模式,召回的上限限制了整体的性能,不如端到端的方式,如何看待这种说法?

首先,这种观点的合理之处在于:RAG 的生成质量的确受到召回质量的制约。如果召回阶段检索到的知识片段不相关、不完整,那么无论生成模型多强大,最终的答案质量也会打折扣。召回阶段成了系统的瓶颈或上限。这就像是"木桶效应",整体的效果取决于最短的那块木板。从这个角度看,端到端方法似乎能避免这种瓶颈,理论上可以达到更优的效果。
但我认为,这种观点也有其局限性和遗漏的地方:

  1. 忽视了知识的外部性:端到端方法通常假设知识全部蕴含在参数里,但现实中很多知识是外部的、动态变化的。RAG 的检索模块为引入外部知识提供了一个接口,使得系统可以适应开放域、持续学习的场景。而端到端方法很难处理系统训练之后的新增知识。
  2. 忽视了大模型的不足:尽管大模型已经展现了惊人的能力,但它们在数值推理、逻辑推理等方面还有局限。而 RAG 的检索结果可以为这些推理任务提供更可靠的素材和依据。因此在某些任务上,RAG 可能反而比纯端到端方法更有优势。
  3. 召回方法还有很大改进空间:目前的 RAG 系统大多采用了相对简单的召回方法,如 BM25、dense passage retrieval 等。但召回技术自身还有很大的发展空间,如利用知识蒸馏、query 改写、语义索引等。召回阶段的增强,可以很大程度提升 RAG 的上限。
  4. 两阶段也可以端到端联合优化:尽管 RAG 由两个模块组成,但我们也可以设计端到端的训练范式,让检索器和生成器相互适应,协同进化。这样既兼顾了模块化的优势,又能进行全局优化,实现 1+1>2 的效果。
  5. 融合是大势所趋:未来可能既不是 RAG 的两阶段,也不是纯粹的端到端,而是二者的融合。我们可以想象一种融合范式:先用端到端方法直接生成,再用 RAG 的检索结果对生成结果进行知识增强和事实矫正。这可能集两家之长。

我认为 RAG 代表的两阶段范式和端到端方法各有优劣,未来可能会融合发展。我们不应简单地认为 RAG 就是倒退或者走老路。RAG 的出现反而为我们理解和发展 QA 系统提供了新的视角。关键是要辩证地、创新地去思考如何取长补短,融合发展,创造出更优的范式。

Q:能否详细说下,未来畅想的融合的方式?

我来畅想几种可能的融合方式,这些设想旨在集两阶段模型和端到端模型之所长,扬长避短。

  1. 端到端生成 + 基于知识的后校正: 这种融合方式可以先用端到端的生成模型直接生成一个初步答案,然后用基于知识检索的方法(类似 RAG)对初步答案进行事实校对和细化完善。
    • 端到端模型负责生成流畅、自然、连贯的答案,捕捉语言的内在逻辑。
    • 基于知识检索的后处理模块负责纠正事实性错误,补充重要的细节,提供来源依据,保证答案的可靠性。
    • 后处理模块可以利用知识蒸馏等技术,从端到端模型中学习如何完成任务,不断提升自己。 这样既发挥了端到端生成的语言能力,又兼顾了答案的事实准确性。
  2. "针对任务的端到端"方法: 与其将端到端视为一个泛泛的目标,不如针对具体任务定制端到端的方法。每个任务都有其特定的知识源、问题类型、评价指标,适合定制优化。
    • 对于事实类问答,可以将知识库进行预处理和压缩,得到一个密集的知识表示,然后把它拼接到问题向量,最后端到端地生成答案。这里的"端到端"是指输入知识库和问题,直接输出答案。
    • 对于常识推理类问题,可以先基于图谱生成一个推理链,然后将推理链编码为一个向量,与问题向量拼接,去端到端生成答案。这里的"端到端"是指输入问题,结合背景知识,直接推理出答案。 这种"针对任务的端到端"兼顾了任务属性和端到端形式,可能比大而全的端到端更有效。
  3. 融合范式下的联合学习: 在融合的框架下,两阶段模型和端到端模型不是割裂的,而是可以相互学习、彼此促进的。
    • 端到端模型的生成结果可以作为两阶段模型的弱监督信号,指导检索阶段的优化。
    • 两阶段模型的推理过程可以看作一种"思维链",用来监督和解释端到端模型的中间过程。
    • 可以设计一个联合的损失函数,既包含端到端的损失,也包含每个阶段的损失,进行多目标学习。 通过联合学习,融合模型可以比单一模型学到更丰富、更强健的知识表示。
  4. 动态混合的自适应策略: 未来的系统可以根据具体问题和上下文,动态地决定采用两阶段模型还是端到端模型,或者决定两者的混合比例。
    • 对于事实类问题,可以更多地依赖基于知识的两阶段模型;对于需要常识推理的问题,可以更多地使用端到端生成。
    • 一些元学习的方法可以用来学习这种适应性策略,根据问题的特点,选择最优的推理路径。 这种自适应混合策略赋予了系统更大的灵活性,使其能应对不同类型的问题。

当然,以上只是一些初步的构想,具体的实现还面临诸多挑战。但我相信,随着两大范式的交叉融合,一定会涌现出更多创新的思路和方法。未来的 QA 系统很可能是一种多范式、多策略的综合体,能够灵活地应对开放领域的各种问题。

总结

探讨了两阶段模型(如 RAG)和端到端模型在信息检索、知识问答等任务中的优劣和趋势。一种观点认为,RAG 受限于召回阶段的质量上限,不如端到端方法前景广阔。但我们辩证分析后发现,这种观点有一定道理,但也忽视了 RAG 的优势和改进空间。
RAG 的优势在于:1)能够引入外部动态知识;2)可以为数值、逻辑推理提供可靠依据;3)召回技术本身还有很大改进空间;4)两阶段模型也可以端到端联合优化;5)模块化设计更具可解释性和人机协同性。
我们进一步展望了未来两大范式可能的融合方式:1)端到端生成 + 基于知识的后校正;2)针对任务定制的端到端方法;3)融合范式下的联合学习;4)动态混合的自适应策略。这些设想旨在集两种范式之所长,扬长避短,发挥协同效应。
未来的信息检索、知识问答系统可能是一种多范式、多策略的复合体,能够兼顾知识的外部性、推理能力、可解释性、语言流畅度等多方面要求,灵活地应对开放领域的各种问题。两阶段模型和端到端模型不是对立的,而是可以互补、融合、协同进化的。关键是要开放、创新的思路,去探索适应不同任务和场景的最佳范式。
这次对话让我们对 RAG 和端到端方法有了更全面、辩证的认识,也展望了未来发展的诸多可能性。我们要继续保持开放、创新的态度,既要立足当下解决实际问题,也要放眼未来把握技术发展趋势。只有在实践中不断探索、优化、创新,才能推动问答系统技术的蓬勃发展,让其更好地造福人类社会。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/586560.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark Structured Streaming 分流或双写多表 / 多数据源(Multi Sinks / Writes)

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

使用 scikit-learn 进行机器学习的基本原理-2

介绍 scikit-learn 估计器对象 每个算法都通过“Estimator”对象在 scikit-learn 中公开。 例如,线性回归是:sklearn.linear_model.LinearRegression 估计器参数:估计器的所有参数都可以在实例化时设置: 拟合数据 让我们用 nump…

第7篇:创建Nios II工程之控制LED<二>

Q:上一期我们完成了Quartus硬件工程部分,本期我们创建Nios II软件工程这部分。 A:创建完BSP和Nios II Application之后,在source文件main.c中添加LED控制代码:system.h头文件包含了Platform Designer系统中IP的硬件信…

VUE3----Tabs swiper 滑动切换

Tabs swiper 滑动切换 <template><view class"cc-tab-container"><scroll-view class"tab-head" :class"tabClassName" scroll-x"true" scroll-with-animation :scroll-left"state.scrollLeft"><view…

变电站综合自动化系统:Modbus-PLC-645转IEC104网关方案

前言 电力行业作为关系国计民生的重要基础产业&#xff0c;是关系千家万户的公用事业。但是要做好电力行业安全保障工作的前提&#xff0c;是需要对应的技术人员详细了解电力工业使用的系统、设备以及各类协议的安全特性&#xff0c;本文将主要介绍IEC 104协议的定义和钡铼技术…

STL——stackqueue

stack stack即为栈&#xff0c;先进后出是其特点 栈只有栈顶元素能被外界使用&#xff0c;故不存在遍历行为 栈中常用接口 构造函数 stack<T> stk; //默认构造方式 stack(const stack &stk); //拷贝构造 赋值操作 stack& operator(const stack &stk); …

对汉诺塔递归算法的简单理解

一.历史背景:汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始…

网络安全是智能汽车下一个要卷的方向?

2024年一季度&#xff0c;中国汽车市场延续了2023年的风格&#xff0c;核心就是「卷」。 2023年&#xff0c;我国汽车市场爆发「最强价格战」&#xff0c;燃油车的市场空间不断被挤压&#xff0c;如今只剩下最后一口气。近日乘联会发布4月1-14日最新数据&#xff0c;新能源&am…

基于昇腾AI | 英码科技EA500I使用AscendCL实现垃圾分类和视频物体分类应用

现如今&#xff0c;人工智能迅猛发展&#xff0c;AI赋能产业发展的速度正在加快&#xff0c;“AI”的需求蜂拥而来&#xff0c;但AI应用快速落地的过程中仍存在很大的挑战&#xff1a;向下需要适配的硬件&#xff0c;向上需要完善的技术支持&#xff0c;两者缺一不可。 基于此&…

如何利用仪表构造InfiniBand流量在数据中心测试中的应用

一、什么是Infiniband&#xff1f; 在当今数据爆炸的时代&#xff0c;数据中心作为信息处理的中心枢纽&#xff0c;面临着前所未有的挑战。传统的通信方式已经难以满足日益增长的数据传输需求&#xff0c;而InfiniBand技术的出现&#xff0c;为数据中心带来了全新的通信解决方…

使用xshell工具连接ubuntu的root账户被拒绝的解决方法

问题描述&#xff1a; 我在使用xshell工具远程连接Ubuntu虚拟机的过程中&#xff0c;如果连接的是的普通用户则xshell工具可以正常连接&#xff0c;但是当我向连接ubuntu系统的root用户&#xff0c;即便是密码输入正确但还是不能连接成功。不能连接成功的截图如下&#xff1a; …

requests库进行接口请求

请求的常规写法 requests.post() 、requests.get() 从中可以看出&#xff1a; 必填参数&#xff1a; url可缺省参数&#xff1a; data&#xff0c;json等、关键字参数 **kwargs 如下进行了一个post请求的登录&#xff0c;且请求体在body中 知识点1 当为post请求时&#xff1…

建堆时间复杂度

片头 嗨&#xff01;小伙伴们&#xff0c;大家好&#xff01; 在上一篇中&#xff0c;我们学习了什么是堆&#xff0c;以及如何实现堆。这一篇中&#xff0c;我将继续带领大家来深入学习堆&#xff0c;准备好了吗&#xff1f;我要开始咯&#xff01; 首先&#xff0c;大家还记…

opencv_17_翻转与旋转

一、图像翻转 1&#xff09;void flip_test(Mat& image); 2&#xff09;void ColorInvert::flip_test(Mat& image) { Mat dst; //flip(image, dst, 0); //上下翻转 flip(image, dst, 1); //左右翻转 // flip(image, dst, -1); //180度翻转 imsho…

VScode 无法连接云服务器

试了很多方法&#xff0c;比如更换VScode版本&#xff0c;卸载重装&#xff0c;删除配置文件 重启电脑&#xff0c;都无法成功。最后重置电脑后才连接上&#xff0c;但是重启服务器后又出现该问题。 方法一&#xff1a;修改环境 方法二&#xff1a;把vscode卸载干净重下

【快速入门】数据库的增删改查与结构讲解

文章的操作都是基于小皮php study的MySQL5.7.26进行演示 what 数据库是能长期存储在计算机内&#xff0c;有组织的&#xff0c;可共享的大量数据的集合。数据库中的数据按照一定的数据模型存储&#xff0c;具有较小的冗余性&#xff0c;较高的独立性和易扩展性&#xff0c;并为…

LabVIEW智能变电站监控系统设计与实现

LabVIEW智能变电站监控系统设计与实现 随着电力系统和智能化技术的快速发展&#xff0c;建立一个高效、可靠的变电站监控系统显得尤为重要。通过分析变电站监控系统的需求&#xff0c;设计了一个基于LabVIEW软件的监控平台。该平台利用虚拟仪器技术、传感器技术和无线传输技术…

数据结构中的栈(C语言版)

一.栈的概念 栈是一种常见的数据结构&#xff0c;它遵循后进先出的原则。栈可以看作是一种容器&#xff0c;其中的元素按照一种特定的顺序进行插入和删除操作。 压栈&#xff1a;栈的插入操作叫做进栈/压栈/入栈&#xff0c;入数据在栈顶。 出栈&#xff1a;栈的删除操作叫做…

2024年的十大技术趋势 - AI 等等

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

网优小工具-基站ID行列转换

网优小工具&#xff0d;基站ID行列转换 因在日常工作需要对基站ID批量行转列&#xff0c;以方便在网管上批量筛选指定网元&#xff0c;该小工具基于微软Power Query插件编写&#xff0c;工具方便、简洁、易用&#xff0c;共享出来以方便工作。 工作界面 &#xff11;.粘贴需筛…