RAG没有银弹!四级难度,最新综述覆盖数据集解决方案,教你「LLM+外部数据」的正确使用姿势算法数据源上下文奥运会

【新智元导读】论文提出了一种RAG任务分类法,将用户查询分为四个级别,并讨论了将外部数据集成到LLMs中的三种主要方式。从简单的事实检索到复杂的推理任务,每个级别都有其独特的难点和解决方案,需要不同的技术和方法来优化性能。

在实践中,如果RAG效果不佳,通常是由于未能准确识别任务的核心问题,或者是因为该任务本身就需要混合多种技术才能解决,必须将复杂任务拆解开才能获得更好的表现。

文中还讨论了将外部数据集成到LLMs中的三种主要形式:上下文、小模型和微调,分析各自的优势、局限性以及适合解决的问题类型。

级别1:显式事实查询(explicitfactqueries)

例:2024年夏季奥运会将在何处举行?

Wherewillthe2024SummerOlympicsbeheld

常见的问题形式包括:

1.给定一系列学术论文:在论文X中使用了什么方法来解决Y问题?(WhatmethodwasusedinPaperXtosolveproblemY)

RAG主要难点

1.数据处理困难:外部数据通常是高度非结构化的,包含表格、图像、视频等多种模态,将数据进行分段(segmenting)或分块(chunking)处理时,仍然需要保持原始上下文和意义。

3.评估困难:如果评估RAG系统的性能,特别是组件级别的性能,是一项复杂的任务,需要开发出能够准确评估数据检索和响应生成质量的指标。

由于RAG已经算是一个相对成熟的领域,目前已经有大量的文献和工具来应对上述难题,文中介绍了一些实用和有影响力的RAG增强功能,以及可能在RAG之外采用的替代技术解决方案。

级别二:隐式事实查询(implicitfactqueries)

例:堪培拉所在的国家现在哪个党派占多数?

WhatisthemajoritypartynowinthecountrywhereCanberraislocated

解析:堪培拉位于澳大利亚,再检索澳大利亚的多数党。

查询仍然围绕事实性问题,但答案并没有明确地出现在任何某一个文本段落中,而是需要通过常识推理、结合多个事实来得出结论,所需的信息可能分散在多个段落中。

主要难点

1.适应性检索量(Adaptiveretrievalvolumes):不同的问题可能需要检索不同数量的上下文,具体检索量可能取决于问题和数据集,固定数量的检索可能会导致信息噪声或信息不足。

2.推理与检索之间的协调(Coordinationbetweenreasoningandretrieval):推理可以指导需要检索的内容,而从检索中获得的信息可以迭代地完善推理策略。

解决这些难点需要智能地整合和有选择性地利用外部数据,利用上大模型固有的推理能力,现有的解决思路包括迭代RAG、基于图/树的RAG以及带有SQL的RAG等。

级别三:可解释理由查询(interpretablerationalequeries)

例:

1.给定胸痛管理指南,如何诊断和治疗有胸痛和特定症状描述的患者?

Howshouldapatientwithchestpainandspecificsymptomdescriptionsbediagnosedandtreated

2.给定客户服务工作流程,在现实生活场景中,如何回应用户的问题?

Howtorespondtoauser’squestioninareal-lifescenario

例如,在制药领域,LLM必须解释FDA指南文件,以评估特定药物申请是否符合监管要求;在客户支持场景中,LLM必须导航预定义工作流程的复杂性,以有效处理用户查询;在医疗领域,模型需要遵循诊断手册,其中提供了权威和标准化的诊断标准,如管理急性胸痛患者的指南,通过有效遵循外部理由,可以开发出一个专门的LLM专家系统来管理胸痛。

上述过程涉及到理解程序步骤和决策树,指导支持智能体与客户的互动,确保回复不仅准确,而且符合公司的服务标准和协议。

研究人员根据所涉及理由的性质,将这些查询分为两类:基于可解释理由的查询和基于隐含理由的查询。

第一类查询通常更显式,辅助数据通常包括用于解决问题的思维过程的清晰解释,数据可以以多种形式进行组织:

1.纯文本,包括专业或官方文件,如手册或指南,以及特定领域的手册或操作指南,阐述了在复杂场景中促进决策的思维过程。如FDA针对制药厂的指南或医生的药物指南提供了专家(如FDA官员或医生)如何处理特定案例的见解。

2.结构化指导,包括更明确的推理关系或决策路径,可以表示为文本条件摩尔机或文本条件米利机。在计算理论中,摩尔机是一种有限状态机,其输出值仅由其当前状态决定,控制状态转换的条件通常以文本形式表达,与传统程序操作本地代码不同的是,大模型需要解释条件和转换理由。

1.提示优化成本,不同的查询需要量身定制的背景知识和决策标准,需要多样化的样例,如果是训练一个额外的模型为各种查询生成定制的提示,会显著增加计算开销。

2.可解释性不足,提示对LLMs的影响是不透明的,限制了对LLMs内部参数的访问,使得确定各种提示对这些模型的影响变得复杂。这种缺乏透明度阻碍了我们一致理解和验证LLM对不同提示回复的可解释能力。

级别四:隐式理由查询(HiddenRationaleQueries)

1.经济形势将如何影响公司未来的发展?(给定一系列财务报告,需要经济和财务理由)

2.如何使用数字5、5、5和1达到24点?(给定一系列24点游戏示例和相应的答案)

3.阿富汗是否允许父母将他的或她的公民身份传给在国外出生的孩子?(给定GLOBALCIT公民法数据集)

隐式理由查询是最难处理的类型,涉及特定领域的推理方法,且数量众多,无法穷尽,并且理由通常无法在上下文窗口内完全探索,隐含的领域专业知识包括但不限于:

1.领域内数据,如历史问答记录或人工生成的数据,包含了解决当前查询所需的推理技能或方法论。例如,在Python编程谜题的背景下,历史问题的解决方案通常包括可以帮助解决当前问题的古典算法和解决问题的策略。

2.预备知识,可能包含一个全面的公理系统,如构成法律判断基础的所有地方法律代码,或是包括简化数学证明等领域推理过程的经过验证的中间结论。在使用外部数据解决现实世界问题时,这种先验知识也可能来自于复杂的人类经验和经验总结的积累。

1.逻辑检索:对于涉及隐藏理由的问题,外部数据的有用性不仅仅取决于实体级或语义相似性,而是取决于逻辑一致性或主题对齐。

标准检索方法通常难以捕捉查询的真正目标或识别基于呈现的问题的具有逻辑相似性的文本段落,需要开发出更复杂的检索算法,以解析和识别潜在的逻辑结构,而不仅仅依赖于表面的文本相似性。

THE END
1.自制PascalVOC2007格式猫狗大战(dogsvsVOC猫狗数据集 VOC_cat_dog-dataset.zip VOC猫狗数据集,从VOC数据集中提取得到,可以用于猫狗检测 数量:3947 标签格式: txt和xml 类别:cat 、dog 上传者:weixin_51154380时间:2022-04-09 SSD-Caffe models_VGGNet_VOC0712Plus_SSD_512x512.tar.gz ...https://www.iteye.com/resource/weixin_44697100-11300158
2.基于Keras实现Kaggle2013【下载数据集】 下载链接--百度网盘 关于猫的部分数据集示例 关于狗的部分数据集示例 【整理数据集】 将训练数据集分割成训练集、验证集、测试集,目录结构如图所示: 在Pycharm中新建项目,创建split_dataset.py import os, shutil# 数据集解压之后的目录original_dataset_dir = 'D:\kaggle\dogsvscats\\train'# ...https://www.imooc.com/article/44038/
3.猫狗之争:从进化角度看猫科比犬科更好一直以来,“猫和狗哪个更好”这一问题将动物爱好者划分为两大阵营。现在科学家已经证实猫确实比狗更好——至少从进化的角度来看是这样。 A groundbreaking study of 2,000 ancient fossils reveals that felids – the cat family – have historically been much better at surviving than the "canid" dog clan...http://language.chinadaily.com.cn/2015-09/21/content_21933270.htm
1.深度学习猫狗分类模型建好后如何对模型进行验证数据集划分:通常,我们将数据集分为训练集、验证集和测试集。在本例中,假设我们已经使用Kaggle的猫狗数据集,并将其划分为60%的训练集、20%的验证集和20%的测试集。 导入所需库: importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromsklearn.metricsimportconfusion_matrix,classification_reportimporttensorflo...https://blog.51cto.com/u_16175494/12585534
2.数据集目标检测系列数据集-目标检测系列- 人与猫互动 猫 检测数据集 cat in the house >> DataBall DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 贵在坚持! 数据样例项目地址: * 相关项目 1)数据集可视化项目:gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview ...https://blog.csdn.net/weixin_42140236/article/details/143912623
3.基于TensorFlow的猫狗识别CNN代码技术栈: 采用Python编程语言,基于TensorFlow深度学习框架。模型结构: 使用CNN设计架构,高效地提取图像特征以区分猫狗。数据集: 需自行准备或使用公开的猫狗图像数据集,原项目未附带具体数据。运行环境: Linux系统推荐,确保兼容性和性能。快速上手: 下载后,调整文件路径即可尝试运行,适合快速原型验证或教学目的。 https://www.kuazhi.com/post/715685363.html
4.第T8周:Tensorflow实现猫狗识别(1)# ['cat', 'dog'] ###end output### # 检查一下数据 for image_batch, labels_batch in train_ds: print(image_batch.shape) print(labels_batch.shape) break # ###output### # (8, 224, 224, 3) ---每一批8张图片,长224,宽224,RGB彩色通道(3) # (8,) --- 标签就是一批8张图片的标...https://www.miaokee.com/2788279.html
5.whatisvs.zip码农集市源码下载平台《WhatIs: 向量检索与RAG实践:技术、实现与应用》深入探讨了基于向量的文本理解和信息检索技术,如基于词嵌入的相似度计算和用于生成问答系统(RAG,Retrieval-Augmented Generative Models)的混合方法。它详细解析了技术原理,如Word2Vec或BERT等模型的使用,以及如何整合检索模型与生成模型提升回答准确性和效率。书中还涵盖了...https://code.coder100.com/index/index/content/id/165203
6.python如何识别猫狗?对狗和猫的照片进行分类(准确率为97%)Dogs vs. Cats 数据集是一个标准的计算机视觉数据集,涉及将照片分类为包含狗或猫。 python如何识别猫狗?尽管这个问题听起来很简单,但直到最近几年才使用深度学习卷积神经网络有效地解决了这个问题。在有效解决数据集的同时,它可以作为学习和实践如何从头开始开发、评估和使用卷积深度学习神经网络进行图像分类的基础。 https://www.lsbin.com/7087.html
7....mlnddogsvs项目来源于 kaggle 在 2013 年组织的一场比赛,它使用25000张(约543M)猫狗图片作为训练集,12500张(约271M)图片作为测试集,数据都是分辨率400x400左右的小图片,目标是识别测试集中的图片是猫还是狗。赛题网址:https://www.kaggle.com/c/dogs-vs-cats。 https://github.com/midas-gufei/udacity-mlnd-dogs-vs-cats
8.深度学习图像识别技术:基于TensorFlowObjectDetectionAPI和...第一步,注册Kaggle账户。从https://www.kaggle.com/account/login?phase=startRegisterTab进入Kaggle账户注册网页,根据提示注册账户。注册完Kaggle账户后,可以直接进入猫狗数据集下载页面https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/data,单击Download All按钮下载全部数据集,如图3-7所示。 https://fanqienovel.com/reader/7109745732256533535
9.Python机器学习之基于Pytorch实现猫狗分类python看了许多关于PyTorch的入门文章,大抵是从torchvision.datasets中自带的数据集进行训练,导致很难把PyTorch运用于自己的数据集上,真正地灵活运用PyTorch,本文详细介绍了怎么利用Pytorch实现猫狗分类,需要的朋友可以参考下+ 目录 一、环境配置 安装Anaconda 具体安装过程,请点击本文 配置Pytorch 1 2 pip install -i https:...https://www.jb51.net/article/214392.htm
10.Dogsvs.CatsKaggleCreate an algorithm to distinguish dogs from catshttps://www.kaggle.com/c/dogs-vs-cats
11.小试牛刀:猫狗识别CatVSDog小试牛刀:猫狗识别 Cat VS Dog 技术标签:CatVsDog深度学习tensorflow分类 查看原文 JAVA系列:final、static关键字的使用注意事项 目录static小试牛刀1小试牛刀2小试牛刀3 final 在编译时就能确定的值,属于编译时常 final修饰的常量,不会触发类的初始化 final修饰的是在编译时不能确定值,只有在运行时才能确定的值,...https://www.pianshen.com/article/3880175041/
12.利用CNN进行猫狗分类竞赛介绍:Kaggle Dogs vs. Cats (https://www.kaggle.com/c/dogs-vs-cats) 要点: 1. 用kaggle API下载数据后,train文件夹下的猫狗图片须分别归入2个文件夹,即cat和dog,否则flow_from_directory会报错 2. 由于该竞赛项目已经结束,本示例没有对test文件夹下的图片进行分类,而是用train文件夹下的图片进行训练...https://www.jianshu.com/p/16883e70d389