RAG 和 Advanced 11 再优化 分类处置 对用户输入的内容启动

  • 电脑网络维修
  • 2024-11-14

作者 |Florian June

编译|岳扬

目录

01 Adaptive-RAG:依据疑问复杂水平分类处置(Adapt)的检索增强型 LLMs

1.1 Overall Process

1.2 构建分类器(Classifier)

1.3 构建数据集(Dataset)

1.4 Training and Inference

1.5 选用分类器模型的 Size(Selection of Classifier Size)

02 RQ-RAG: 一种 RAG 系统中的 Queries 优化技术打算

2.1 构建数据集

2.2 Training

2.3 Answer Selection

03 Insights and Thoughts

3.1 这些技术与 Self-RAG 和CRAG启动对比

3.2 技术通常环节中发现的一些疑问(About Engineering Implementation)

3.3 小模型(Small Model)亦可大放异彩

04 Conclusion

只管传统 RAG 技术能够有效降低 LLMs 回答内容中的失误出现率,但这种技术打算并不能优化用户最后提交的 query,如图 1 中白色框标志的内容所示。

图 1:传统 RAG 技术没有对 initial query 启动改良(图中白色框标志的局部),图片由原作者原创

这种方法或许会出现以下这些疑问:

本文将讨论两种进阶战略: query classification query refinement, 两者均经过训练小模型优化了系统的全体性能。文章最后,作者还将分享对这两个算法的了解与思索。

01 Adaptive-RAG:依据疑问复杂水平分类处置(Adapt)的检索增强型 LLMs

1.1 Overall Process

Adaptive-RAG 提出了一种翻新的 adaptive framework(译者注:该系统可以依据 query 的复杂水平灵活选用最适合的消息检索和生成战略。)。如图 2 所示,该系统可依据 query 的复杂度,灵活选用最适合的 LLMs 经常使用战略(蕴含从最便捷(the simplest)到最复杂(the most complex)的多种战略)。

图 2(A)描画的是一种 单步方法(single-step approach) ,这种方法会先检索出相关文档,而后生成答案。但这一方法关于那些须要多级逻辑推理(multi-step reasoning)的复杂 query 而言,或许精度无余。

图 2(B)是一种 分多个步骤启动处置(multi-step process) 的方法,包括迭代启动文档检索(document retrieval)及生成两边答案(generation of intermediate responses)等步骤。只管这种方法成果比拟好,但因为需屡次调用大言语模型(LLMs)和检索器(retrievers),处置便捷 queries 时效率不太高。

图 2(C)是一种(译者注:可依据详细状况选用详细的战略。)的方法,经过精心设计的分类器(classifiers),咱们能够更精准地判别、选用最佳检索战略(是选用迭代检索(iterative)、一次性性检索(single),还是不经常使用检索方法(no retrieval methods))。

为了协助大家更直观地理解 Adaptive-RAG 的上班流程,本文会联合详细代码来加以说明。目前,该技术存在四个不同版本的代码成功,它们区分是官网版本(official version)[2]、Langchain**版本[3]、LlamaIndex 版本[4]以及 Cohere 版本[5]。 本文将以 LlamaIndex 版本作为示例引见该技术。

想要了解更多详细消息,可以检查这份文档[6]。思索到代码量比拟大,在本文将着重形容其中的外围代码片段。

图 3:Different tools of Adaptive-RAG. Image by author, inspired by LlamaIndex version[4].

代码的运转模式会依据 query 的复杂水平而发生变动,并相应地调用不同的工具:

如图 2(C)所示,咱们可以经过火类器(classifier)来筛选适合的工具。但与官网版本不同, 此处经常使用的分类器并未针对该运行场景启动过针对性地训练,而是间接运行现成的 LLMs ,这一做法在图 4 中有明白形容。

图 4:Tools selection of Adaptive-RAG. Image by author, inspired by LlamaIndex version[4].

1.2 构建分类器(Classifier)

只管 LlamaIndex 版本的代码成功并没有分类器的构建这一环节,但深化了解分类器的构建环节,关于咱们的后续开发上班有着至关关键的作用。

1.3 构建数据集(Dataset)

在该技术的成功环节中面临一个严重应战,咱们缺乏带有 query-complexity pairs(译者注:query 与其相应的复杂度(complexity)的配对数据。)的训练数据集。那么,咱们该如何应对这一疑问呢?Adaptive-RAG 驳回了两种战略,以智能化的模式创立所需的训练数据集(training src="https://oscimg.oschina.net/oscnet/up-490f1452f0b064bc8d942b5fcc6231c0713.png" alt="Advanced RAG 11:对用户输入的内容启动「分类处置」和「再优化」-AI.x社区">

图 5:Adaptive-RAG 数据集的样本示例,截图出自原文作者

倘若上述三种方法均未能生成正确答案,则说明有些疑问仍未被标注分类。这种状况下,咱们会间接依据地下数据集启动分类。详细而言,单步数据集(single-hop> 1.4 Training and Inference

训练方法驳回交叉熵损失函数(cross-entropy loss),基于这些智能搜集的 query-complexity pairs(译者注:query 与其相应的复杂度(complexity)的配对数据。)来训练分类器。

而后,在推理环节中,咱们将 query 输入至分类器,即可判定 query 的复杂度等级,该等级标签可为 ‘A’、‘B’ 或 ‘C’ 中的恣意一种:o = Classifier(q)。

1.5 选用分类器模型的 Size(Selection of Classifier Size)

图 6:不同规模(size)分类模型的试验结果。起源:Adaptive-RAG[1]从图 6 可以看出, 无论分类器模型的 size 如何,其性能体现并无显著差异。 即使是小型模型也能维持相反水平的性能,无利于提高资源应用效率。

接上去,咱们将引见一种 query 优化技术:RQ-RAG。

02 RQ-RAG: 一种 RAG 系统中的 Queries 优化技术打算

针对上述应战,RQ-RAG 提出了三项优化方法,如图 7 所示。

这种方法确保了检索到的消息既片面又精准,从而愈加有效地回答疑问,如图 7 底部所示。

RQ-RAG 经过端到端(end-to-end)的模式 training(译者注:Llama2 是一个预训练模型,此处的 training 应当是指微调。)一个 Llama2 7B 模型。使得该模型能够灵活地经过重写(rewriting)、合成(decomposing)和消弭 query 中的歧义来增强 query 的检索成果。

因为 RQ-RAG[9]的代码目前正处于重构阶段[10],某些配置尚未齐全成功,因此本文暂不可启动演示。

2.1 构建数据集

思索到 RQ-RAG 系统的端到端(end-to-end)特性,关注数据集的构建流程至关关键。

数据集的构建[11]关键包括以下几个步骤:

1. 首先 ,搜集一个涵盖多种经常使用场景的语料库(如图 9 所示),包括但不限于多轮对话(multi-turn dialogues)、需合成的 query 语句及需消解歧义的 query 语句。依据该语料库,构建一个义务池(task pool)。

2. 第二步 ,义务池中的义务被划分为三大类型:多轮对话(multi-turn dialogue)、合成 query 语句(decomposition)和消弭query 中的歧义(disambiguation)。例如,多轮对话数据集中的每一个样本都会被纳入为多轮对话类型(multi-turn dialogue category)。

3. 第三步 ,首先经常使用ChatGPT**对各类 query 启动优化。接着,经常使用这些优化后的 query 语句向外部数据源检索消息。普通状况下,DuckDuckGo 是关键的消息检索起源,而这个检索环节被视为一个不透明的“黑盒”(black box)。

4. 第四步 ,批示 ChatGPT 依据优化后的 query 及相应的高低文,生成批改后的模型照应。经过重复口头这一流程,咱们得以积攒了总计约 40,000(40k) 个实例。

图 10、11 及 12 出现了与 ChatGPT 交互时所经常使用的揭示词模板。其中,蓝色文字局部代表了应依据详细状况输入的详细内容。

当上述步骤所有成功后,咱们将失掉图 13 右侧所示的训练样本。

每个训练样本实质上都是一个带有特定 tokens(special tokens)的操作序列(operation sequence),其中:

2.2 Training

在失掉训练数据集后,咱们便能以惯例的自回归模式(auto-regressive)[12]来训练大言语模型(LLM)。详细的训练指标函数(Training objective)如图 14 所示。

说白了,训练的外围在于微调模型参数,确保在每一个步骤 i 中,面对原始的输入 x 、优化后的 query qi 及检索出的文档 di 时,模型 M 能够对模型照应 y 给出最大化的概率预测(highest probability)。

2.3 Answer Selection

每次迭代时,该模型都会针对特定需求生成多种用于检索的 query 语句,比如对 query 启动重写、合成或消弭其歧义。这些 query 反上来又能取得不同的高低文,有助于模型更片面、更灵敏地处置复杂义务(leading to the diversification of expansion paths)。

正如图 15 所示,RQ-RAG 研发了一套树形解码战略(tree decoding strategy),并经常使用了三种选用机制[13]: 基于困惑度(PPL)的选用方法 基于置信度(Confidence)的选用方法 以及 基于集成学习(Ensemble)的选用方法

在基于困惑度(PPL)的选用方法中,模型会选用一切输入中困惑度(PPL)最低的答案。基于置信度(Confidence)的选用办规律是选用一切置信度最高的结果。而基于集成学习的选用方法,则偏差于选取累积置信度分数(confidence score)最高的最终结果。

03 Insights and Thoughts

3.1 这些技术与 Self-RAG 和 CRAG 启动对比

不同于 Adaptive-RAG 和 RQ-RAG 在检索前对原始 query 启动优化的做法,Self-RAG[14]和 CRAG[15]的关器重点在于判别何时口头检索(retrieval)操作以及如何优化检索操作之后的消息处置效率。特意值得一提的是,CRAG 经过重写用于网络检索的 query 语句,优化了检索结果的消息品质。

RQ-RAG 和 Self-RAG 均经过训练小型言语模型的模式来代替原有的大模型(LLMs)。相比之下,Adaptive-RAG 和 CRAG 保管了原有模型,仅是新增了对 query 启动分类或评价的两个配置层。

后起之秀 Adaptive-RAG 和 RQ-RAG 都宣称自己的性能优于 Self-RAG,在它们的论文中都有对应的试验报告。

从生成流程(generation process)的角度考量,Self-RAG、CRAG 及 Adaptive-RAG 因未驳回复杂的树形解码战略(tree decoding),显得更为繁复明快。

3.2 技术通常环节中发现的一些疑问(About Engineering Implementation)

当 query 转化为多轮对话的状况时,应用大言语模型处置简短的揭示词数据或许会形成照应延时。依据我目前的了解,驳回并行处置技术(parallelization)或许能有效处置这一疑问。

此外,无论是 Adaptive-RAG 还是 RQ-RAG 技术,它们都对 query 启动了分类。但这些分类模式能否真正到达了最优形态?它们能否能完美实用于特定的消费场景?有没有或许驳回其余分类战略能取得更好的成果?须要经过一系列对比试验(comparative experiments)来验证这些观念。

3.3 小模型(Small Model)亦可大放异彩

RQ-RAG 的通常环节标明,即使是一个 7B 参数量的模型,只需数据集构建切当、生成流程精细, 7B 参数量的模型也能发明出色的性能体现。

自觉谋求模型规模的宏大并不必定同等于更高的性价比。关于那些资源有限的团队而言,专一于优化数据集与精进算法或许是更为理智的选用。

04 Conclusion

在本文中,咱们讨论了 query classification 与 query refinement 这两项技术打算,并经过代码实例加以阐释,同时还在本文中引见了作者对这些技术的了解和思索。

倘若您对检索增强生成(RAG)技术感兴味,请随时阅读本系列其余文章

Thanks for reading!

Hope you have enjoyed and learned new things from this blog!

Florian June

AI researcher, focusing on LLMs, RAG, Agent, Document AI, target="_blank">

参考资料

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[14]

[15]

原文链接:

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/5392.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号