偷渡美国做h网站/新型营销方式

偷渡美国做h网站,新型营销方式,网站图片上字体动态怎么做的,网站建设源文件RAG 的过程很复杂,包含许多组成部分。我们如何确定现有的 RAG 方法及其最佳组合,以确定最佳 RAG 实践? 论文 《Searching for Best Practices in Retrieval-Augmented Generation》给出了回答。 本文将从以下三方面进行介绍: 首先…

       RAG 的过程很复杂,包含许多组成部分。我们如何确定现有的 RAG 方法及其最佳组合,以确定最佳 RAG 实践?

      论文 《Searching for Best Practices in Retrieval-Augmented Generation》给出了回答。

本文将从以下三方面进行介绍:

  • 首先,介绍经典的 RAG 流程。

  • 然后,介绍RAG 的每个模块的最佳实践。

  • 最后,提供一个全面的评估。

一、经典的RAG流程

经典的 RAG 工作流程一般包括几个中间处理步骤:

  1. 查询分类(确定输入查询是否需要检索)

  2. 检索(高效获取相关文件)

  3. 重新排名(根据相关性优化检索到的文档的顺序)

  4. 重新打包(将检索到的文档组织成结构化格式)

  5. 摘要(提取关键信息以生成响应并消除冗余)

       实现 RAG 还涉及决定如何将文档拆分为块,选择用于语义表示的嵌入,选择合适的向量数据库以进行高效的特征存储,以及寻找有效的微调方法LLMs,如图 1 所示。

图 1:检索增强生成工作流程。每个组件考虑的可选方法以粗体表示,而带下划线的方法表示各个模块的默认选择。以蓝色字体表示的方法表示根据经验确定的性能最佳的选择。

二、每个步骤的最佳实践

2.1 查询分类

       为什么需要查询分类?并非所有查询都需要检索增强,某些LLMs功能也需要检索增强。虽然 RAG 可以提高准确性并减少幻觉,但频繁检索会增加响应时间。因此,我们首先对查询进行分类,以确定是否需要检索。通常,当需要超出模型参数的知识时,建议使用检索。

       我们可以根据任务是否提供足够的信息将任务分为 15 种类型,并显示具体的任务和示例。完全基于用户提供信息的任务被标记为“充分”,不需要检索;否则,它们将被标记为 “不足” ,可能需要检索。

图 2:不同任务的检索要求分类。在未提供信息的情况下,我们会根据模型的功能对任务进行区分

此分类过程是通过训练分类器自动执行的。

图 3:查询分类器的结果

2.2 分块

     将文档划分为较小的块对于提高检索准确性和避免 中的LLM长度问题至关重要。通常有三个级别:

  • Token-level令牌级分块很简单,但可能会拆分句子,从而影响检索质量。

  • Semantic-level语义级分块用于LLM确定断点,保留上下文但需要更多时间。

  • Sentence-level句子级分块在保留文本语义与简洁高效之间取得平衡。

     在这里,句子级分块用于平衡简单性和语义保留。分块过程从以下四个维度进行评估。

2.2.1 分块大小

     块大小会显著影响性能。较大的块提供更多的上下文,增强理解,但会增加处理时间。较小的块可以提高召回率并缩短时间,但可能缺乏足够的上下文。

图 4 :不同数据块大小的比较

     如图 4 所示,使用了两个主要指标:忠实度和相关性。忠实度衡量反应是幻觉还是与检索到的文本相匹配。Relevancy 衡量检索到的文本和响应是否与查询匹配。

块组织

2.3 Embedding模型

      如图 6 所示,LLM-Embedder 获得了与 BAAI/bge-large-en 相当的结果,但大小只有它的三分之一。因此,LLM选择 -Embedder 是为了平衡性能和大小。

图 6:namespace-Pt/msmarco 上不同嵌入模型的结果。

2.4 添加元数据

使用标题、关键字和假设问题等元数据增强块可以提高检索率。

该论文不包括具体的实验,但将它们留给未来的工作。

2.5 向量数据库

     图 7 提供了五个开源向量数据库的详细比较:Weaviate、Faiss、Chroma、Qdrant 和 Milvus。

      Milvus 在评估的数据库中脱颖而出,满足所有基本标准,并且在性能上优于其他开源选项。

图 7:各种矢量数据库的比较。

2.6 检索

       对于用户查询,检索模块会根据其相似性从预先构建的语料库中选择与查询最相关的前 k 个文档。

下面评估了三种与检索相关的技术及其组合:

  • 查询重写 :此技术改进了查询以更好地匹配相关文档。受 Rewrite-Retrieve-Read 框架的启发 ,我们提示LLM重写查询以提高性能。

  • 查询分解:此方法根据从原始查询中提取的子问题检索文档。这些子问题通常更复杂,更难理解和处理。

  • 伪文档生成 :此方法根据用户的查询生成假设文档,并使用假设答案的嵌入来检索类似的文档。一个值得注意的实现是 HyDE。

图 8:TREC DL19/20 上不同检索方法的结果。每种方法的最佳结果都用粗体显示,第二种方法用下划线表示。

     图 8 显示,监督方法的性能明显优于无监督方法。通过将 HyDE 和混合搜索相结合,LLM-Embedder 获得了最高分。

     因此,建议使用 HyDE + 混合搜索作为默认检索方法。混合搜索结合了稀疏检索 (BM25) 和密集检索 (原始嵌入),实现了高性能和相对较低的延迟。

2.7 重排序

       初始搜索后, 重新排名阶段会增强检索到的文档的相关性,确保最相关的信息显示在列表顶部。考虑了两种主要方法:

  • DLM 重排序:此方法使用深度语言模型 (DLM) 进行重新排名。这些模型经过微调,可将文档与查询的相关性分类为“true”或“false”。在微调期间,使用带有相关性注释的查询和文档对模型进行训练。在推理过程中,根据 “true” 标签的概率对文档进行排序。

  • TILDE 重排序:TILDE 通过预测模型词汇中每个词的概率来独立计算每个查询词的可能性。通过将查询词的预计算对数概率相加来对文档进行评分,从而在推理过程中实现快速重新排名。TILDEv2 通过仅对文档中存在的术语进行索引、使用 NCE 损失和扩展文档来改进这一点,从而提高效率并减小索引大小。

图 9:MS MARCO Passage 排名数据集的开发集上不同重新排名方法的结果。对于每个查询,将对 BM25 检索到的前 1000 个候选段落进行重新排序。延迟以每个查询的秒为单位。

       如图 9 所示, 建议使用 monoT5 作为平衡性能和效率的综合方法。 RankLLaMA 非常适合那些寻求最佳性能的人,而 TILDEv2 适合在固定集上快速实验。

2.8 重新包装

       后续流程(如LLM响应生成)的性能可能会受到文档提供顺序的影响。

       为了解决这个问题,我们在重新排名后的工作流程中加入了一个紧凑的重新打包模块,有三种方法:

  • “forward” 方法根据重新排序阶段的相关性分数按降序重新打包文档。

  • “reverse”方法将它们按升序排列。

  • 受 Lost in the Middle 启发的 “sides” 选项在相关信息位于输入的开头或结尾时表现最佳。

     由于这些重新打包的方法主要影响后续模块,因此在下面的 review 部分介绍它们的评估。

三、总结

       检索结果可能包含冗余或不必要的信息,这可能会阻止 生成LLM准确的响应。此外,较长的提示可能会减慢推理过程。因此,在 RAG 过程中,汇总检索到的文档的有效方法至关重要。

       提取式压缩器将文本分割成句子,根据重要性对它们进行评分和排名。Generative Compressor 综合来自多个文档的信息,以重新措辞并生成连贯的摘要。这些任务可以是基于查询的,也可以是非基于查询的。

主要评估三种方法:

  • Recomp: 它具有抽取式和生成式压缩机。提取式压缩器选择有用的句子,而生成式压缩器则综合来自多个文档的信息。

  • LongLLMLingua:它通过关注与查询相关的关键信息来改进 LLMLingua。

  • 选择性上下文 :它通过识别和删除输入上下文中的冗余信息来提高效率 LLM。

图 10:不同摘要方法之间的比较。

     如图 10 所示, 建议使用 Recomp, 因为它的性能非常出色。虽然 LongLLMLingua 表现不佳,但它在没有经过这些实验数据集训练的情况下表现出更好的泛化能力。因此,我们可以将其视为一种替代方法。

四、生成器微调

       图 11 显示,使用混合相关和随机文档 (Mgr) 训练的模型在提供黄金文档或混合上下文时表现最佳。

       因此, 在训练过程中混合相关和随机上下文可以提高生成器对不相关信息的鲁棒性,同时确保有效使用相关上下文。

图 11:生成器微调的结果。

五、综合评估

     以前的评估是针对每个模块单独进行的,但现在这些模块被整合在一起以进行综合评估。

图 12:寻找最佳 RAG 实践的结果。正在调查包含在盒装模块中的模块,以确定最佳方法。带下划线的方法表示所选的实现。“Avg”(平均分数)是根据所有任务的 Acc、EM 和 RAG 分数计算的,而平均延迟是每个查询的秒数。最佳分数以粗体突出显示。

如图 12 所示,得出了以下关键见解:

  • 查询分类模块: 该模块不仅提高了效果和效率,而且将总分从 0.428 分提高到平均分 0.443,并将查询延迟从 16.41 秒降低到 11.58 秒。

  • 检索模块: 虽然 “Hybrid with HyDE” 方法的 RAG 得分最高,为 0.58,但其计算成本很高 ,每次查询需要 11.71 秒。 因此,建议使用 “Hybrid” 或 “Original” 方法,因为它们可以减少延迟,同时保持可比的性能。

  • 重排序模块: 缺少重新排名模块会导致性能显著下降。MonoT5 获得了最高的平均分,证明了它在提高检索文档的相关性方面的有效性。这表明重新排名在提高生成响应的质量方面发挥着关键作用。

  • 重新包装模块: 反向配置表现出卓越的性能,RAG 得分为 0.560。这表明,将更相关的上下文放在更靠近查询位置的位置会产生最佳结果。

  • 摘要模块:Recomp 展示了卓越的性能,尽管删除摘要模块可以以更低的延迟获得类似的结果。尽管如此,Recomp 仍然是首选,因为它解决了生成器的最大长度限制。

六、结论

总体而言,推荐了两种不同的 RAG 系统实施策略:

  • 最佳性能实践:为了获得最佳性能,包括查询分类模块,使用 “Hybrid with HyDE” 方法进行检索,采用 monoT5 进行重新排序,选择 “Reverse” 进行重新打包,并使用 Recomp 进行汇总。

  • 平衡效率实践:为了平衡性能和效率,包括一个查询分类模块,实施 Hybrid 方法进行检索,使用 TILDEv2 进行重新排序,选择 “Reverse” 进行重新打包,并使用 Recomp 进行汇总。

     需要注意的是,上面提到的评估主要基于公共数据集,它在其他数据集(比如私有企业数据集)上的表现需要进一步评估。

本文的主要价值在于它为研究 RAG 最佳实践提供了有价值的想法和方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用knn算法实现手写数字分类

利用knn算法实现手写数字分类 1.作者介绍2.KNN算法2.1KNN(K-Nearest Neighbors)算法核心思想2.2KNN算法的工作流程2.3优缺点2.4 KNN算法图示介绍 3.实验过程3.1安装所需库3.2 MNIST数据集3.3 导入手写数字图像进行分类3.4 完整代码3.5 实验结果 1.作者介…

好吧好吧,看一下达梦的模式与用户的关系

单凭个人感觉,模式在达梦中属于逻辑对象合集,回头再看资料 应该是一个用户可以对应多个模式 问题来了,模式的ID和用户的ID一样吗? 不一样 SELECT USER_ID,USERNAME FROM DBA_USERS WHERE USERNAMETEST1; SELECT ID AS SCHID, NA…

python socket模块学习记录

python黑马程序员 通过python内置socket模块,在电脑本地开发一个服务器,一个客户端,连接后进行连续的聊天。服务器和客户端均可输入exit,主动退出连接。 服务器开发.py import socket# 创建Socket对象 socket_server socket.s…

chap1:统计学习方法概论

第1章 统计学习方法概论 文章目录 第1章 统计学习方法概论前言章节目录导读 实现统计学习方法的步骤统计学习分类基本分类监督学习无监督学习强化学习 按模型分类概率模型与非概率模型 按算法分类按技巧分类贝叶斯学习核方法 统计学习方法三要素模型模型是什么? 策略损失函数与…

爬虫案例-爬取某站视频

文章目录 1、下载FFmpeg2、爬取代码3、效果图 1、下载FFmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。 点击下载: ffmpeg 安装并配置 FFmpeg 步骤: 1.下载 FFmpeg: 2.访问 FFmpeg 官网。 3.选择 Wi…

车载以太网网络测试-22【传输层-DOIP协议-5】

目录 1 摘要2 DoIP时间参数2.1 ISO 13400定义的时间参数2.2 参数示例 3 DoIP节点内部状态机4 UDSonIP概述5 总结 1 摘要 本文继续对DOIP协议进行介绍,主要是DOIP相关的时间参数、时间参数定义以及流程示例。推荐大家对上文专题进行回顾,有利于系统性学习…

(论文总结)思维链激发LLM推理能力

研究背景&动机 背景:扩大模型规模已被证实具有提升模型性能和模型效率的功效,但是LLM对于完成推理、算术任务仍有较大不足。 动机:从之前的应用和研究中得知,可以用生成自然语言解释、使用神经符号等形式语言的方法来提高大模型的算术推理能力&…

anythingLLM结合searXNG实现联网搜索

1、docker-compose 部署searXNG GitHub - searxng/searxng-docker: The docker-compose files for setting up a SearXNG instance with docker. cd /usr/local git clone https://github.com/searxng/searxng-docker.git cd searxng-docker 2、修改 .env文件 # By default…

ArkUI-List组件

列表是一个复杂的容器,当列表项达到一定数量,使得列表内容超出其范围的时候,就会自动变为可以滚动。列表适合用来展现同类数据类型。 List的基本使用方法 List组件的构建声明是这个样子的 List(value?: {space?:number | string, initial…

Ubuntu实时读取音乐软件的音频流

文章目录 一. 前言二. 开发环境三. 具体操作四. 实际效果 一. 前言 起因是这样的,我需要在Ubuntu中,实时读取正在播放音乐的音频流,然后对音频进行相关的处理。本来打算使用的PipewireHelvum的方式实现,好处是可以直接利用Helvum…

【TI MSPM0】Timer学习

一、计数器 加法计数器:每进入一个脉冲,就加一减法计算器:每进入一个脉冲,就减一 当计数器减到0,触发中断 1.最短计时时间 当时钟周期为1khz时,最短计时时间为1ms,最长计时时间为65535ms 当时…

从WebRTC到嵌入式:EasyRTC如何借助大模型提升音视频通信体验

随着人工智能技术的快速发展,WebRTC与大模型的结合正在为音视频通信领域带来革命性的变革。WebRTC作为一种开源实时通信技术,以其低延迟、跨平台兼容性和强大的音视频处理能力,成为智能硬件和物联网设备的重要技术支撑。 而EasyRTC作为基于W…

自由学习记录(45)

顶点片元着色器(important) 1.需要在Pass渲染通道中编写着色器逻辑 2.可以使用cG或HLSL两种shader语言去编写Shader逻辑 3.代码量较多,灵活性较强,性能消耗更可控,可以实现更多渲染细节 4.适用于光照处理较少&#xf…

Quartus + VScode 实现模块化流水灯

文章目录 一、通过VScode编写Verilog代码二、模块化编程三、代码示例 一、通过VScode编写Verilog代码 1、下载Vscode 2、下载相关插件 搜索Verilog就会弹出有如图所示的插件,下载并安装 3、创建Quartus项目 4、创建完成后点击Tools,选择Options 然后在…

tryhackme——The Lay of the Land

文章目录 一、网络基础设施1.1 内网1.2 DMZ区1.3 网络枚举(Network Enumeration) 二、域环境三、用户和组管理四、安全解决方案4.1 基于主机的安全解决方案4.1.1 防病毒软件4.1.2 Microsoft Windows Defender4.1.3 主机防火墙4.1.4 安全事件记录与监控4.…

STM32---FreeRTOS消息队列

一、简介 1、队列简介: 队列:是任务到任务,任务到中断、中断到任务数据交流的一种机制(消息传递)。 FreeRTOS基于队列,实现了多种功能,其中包括队列集、互斥信号量、计数型信号量、二值信号量…

2025年了,5G还有三个新变化

最近舆论开始讨论5G为什么不火了?5G是不是停滞发展了。 实际上,5G不仅在发展,还迎来了它的升级版5G-A。 在今年西班牙举行的世界移动通信大会上,5G-A就是焦点之一。 被誉为全球通信领域风向标的MWC,汇聚了华为、中兴通…

SQLMesh SCD-2 时间维度实战:餐饮菜单价格演化追踪

场景背景:动态菜单价格管理 考虑某连锁餐厅的菜单管理系统,需要记录食品价格的历史变更轨迹。业务需求包括: 记录每次价格调整的时间点支持历史价格查询(如"2020年1月2日汉堡多少钱")维护当前有效价格清单…

失物招领|校园失物招领系统|基于Springboot的校园失物招领系统设计与实现(源码+数据库+文档)

校园失物招领系统目录 目录 基于Springboot的校园失物招领系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、 管理员功能实现 (1) 失物招领管理 (2) 寻物启事管理 (3) 公告管理 (4) 公告类型管理 2、用户功能实现 (1) 失物招领 (2) 寻物启事 (3) 公告 …

基于BClinux8部署Ceph 19.2(squid)集群

#作者&#xff1a;闫乾苓 文章目录 1.版本选择Ceph版本发布历史目前官方在维护的版本 2.部署方法3.服务器规划4.前置配置4.1系统更新4.2配置hosts cat >> /etc/hosts << EOFssh-keygenssh-copy-id ceph01ssh-copy-id ceph02ssh-copy-id ceph034.5 Python34.6 Syst…