RAG Fusion简明教程

随着 NLP 和生成 AI 领域的最新进展,RAG(检索增强生成)的引入有望通过结合基于检索的模型和序列到序列的强大功能,对 BERT Chat GPT 等现有技术进行改进。 架构。 RAG 是一个人工智能框架,旨在通过建立外部知识源模型来提供 LLM 的内部信息表示,从而提高 LLM 生成的响应的质量。

然而,由于 RAG 的一些缺点,它需要升级以实现其潜在的增强功能,这就是 RAG Fusion 的用武之地。让我们了解 RAG 和 RAG Fusion,它们都围绕着使用矢量搜索和生成式 AI 来彻底改变搜索和信息检索,以提供 基于真实数据的直接答案。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 

1、了解检索增强生成

检索增强生成(RAG)是一种将超大型预训练语言模型的功能与外部检索或搜索机制相结合的方法。 RAG 背后的想法是通过允许生成人工智能模型在生成过程中从大量文档中提取信息来增强生成人工智能模型的能力。

要了解 RAG 如何提高LLM即时响应生成的可信度,其工作原理如下:

  • 检索步骤——当用户输入提示或向生成式 AI 模型提出问题时,RAG 模型会从大型语料库中检索一组相关文档或段落。 它是通过通常基于文档和查询的密集向量表示的检索机制来实现的。
  • 生成步骤——检索到相关段落后,将其提供给生成式 AI 模型以及原始提示或查询。 该模型利用其预先训练的知识和从段落中检索到的信息来生成响应。
  • 训练 - 在此阶段,检索和生成组件都在下游任务上进行端到端微调,并且模型可以根据生成的响应质量学习改进和增强其检索选择。

来源:AWS

上图阐明了 RAG 模型的机制,需要注意的是,增强提示的外部数据可以来自多个数据源,例如文档存储库、数据库或 API。 然而,关键的步骤是将文档转换为兼容的格式以执行相关性搜索。

使用嵌入语言模型将文档集合或知识库以及用户提交的查询转换为数字表示,以使格式兼容。 嵌入是在向量空间中为文本提供数字表示的过程。 RAG 模型架构比较用户查询在知识库向量中的嵌入,并提取具有相似上下文的文档。 下图代表了最原始的检索增强生成模型架构。

RAG架构

与单独工作的大型语言模型相比,RAG 具有显着的优势,可以生成最佳的即时响应。 以下是检索增强生成的一些好处:

  • 使用最新的最新信息进行高质量响应。
  • 更少的计算和存储
  • 减少幻觉

尽管有很多优点,但 RAG 还存在一些需要解决的挑战,以确保答案符合道德事实和正确性:

  • RAG 依赖于外部知识,并且可能由于不正确的信息而产生不准确的结果。
  • 从外部资源获取数据可能会引发敏感数据的隐私和安全问题; 但是,使用文档级访问可以限制对特定文档的访问。
  • 现有的搜索技术,如基于检索的词汇搜索技术和向量搜索技术,对RAG 模型造成了限制。
  • 毫无疑问,人类在将所需内容写入搜索引擎时效率不高,拼写错误、模糊查询和有限词汇会导致错过顶级结果之外的大量信息。
  • 线性范式缺乏深入了解人类查询本质的效率。 线性方法无法捕获复杂的用户查询,导致搜索结果效率低下。

2、RAG Fusion简介

RAG Fusion (Raudaschl, 2023) 提供了解决 RAG 模型局限性的最佳解决方案。 不同的限制,例如人工搜索效率低下和搜索过于简单化,会导致相关性较低的结果; 然而,借助 RAG Fusion,人们可以轻松克服这些限制。 它通过生成多个用户查询并使用倒数排名融合等策略对结果进行排名来克服挑战。 这种临时技术弥合了用户查询与其预期含义之间的差距。

RAG Fusion 技术使用编程语言、向量搜索数据库、具有查询生成功能的LLM以及结果重新排名步骤。 倒数排名融合 (RRF) 是一种数据重新排名技术,用于无缝组合不同查询的结果。 其目的是将搜索结果组织成统一的排名,提高相关信息的准确性。

为什么选择 RAG 融合?

开发 RAG 更新模型(即 RAG Fusion)背后的核心概念是理解复杂人类查询的细微差别,而不需要更高级的LLM。 RAG Fusion 通过生成多个查询并对结果重新排名,轻松解决 RAG 固有的约束。 此外,它还利用 RRF 和自定义向量评分加权来获得全面且准确的搜索结果。

它渴望弥合用户明确提出的问题和他们打算做的事情之间的差距,向揭示隐藏的变革性知识又近了一步。

RAG Fusions 使用与 RAG 相同的技术:Python 语言、矢量搜索数据库(如 Elasticsearch 或 Pinecone)以及大型语言模型(如 ChatGPT)。 RAG Fusion的工作方法与RAG相同; 但是,还有一些额外的步骤(例如查询生成和结果重新排名)可以改善响应质量。

它的工作原理如下:

  • 通过LLM将用户的查询翻译成相似但不同的查询来执行查询重复
  • 初始化原始查询及其生成的相似查询的向量搜索,多个查询生成。
  • 使用RRF 合并并细化所有查询结果。
  • 选择新查询的所有热门结果,为LLM提供足够的材料,以根据所有查询和重新排序的结果列表创建输出响应。

3、RAG Fusion 背后的复杂性 — RRF

RRF(即倒数排名融合)是一种围绕组合多个搜索结果以产生单个统一排名的技术。 单个查询无法涵盖用户查询的所有方面,并且可能过于狭窄而无法提供全面的结果; 这就是为什么多个查询生成必须考虑所有不同的元素并提供精心策划的答案。

RRF 的工作原理是结合不同搜索查询的排名,并增加所有相关文档出现在最终结果中的机会。 此外,它不依赖于搜索引擎分配的绝对分数,而是依赖于相对排名,因此将具有不同尺度或分数分布的结果组合起来变得实用。

来源:: Adrian H. Raudaschl

上图由 Raudaschl,2023 年拍摄,代表了倒数排名融合位置重排名系统算法。 如图所示,函数 reciprocal_rank_fusion 接受一个搜索结果字典,其中每个键都是一个查询。 该键对应的值是一个文档 ID 列表,按其与查询的相似度进行排序。 RRF 算法根据每个文档在不同列表中的排名计算新分数,并对它们进行排序以创建最终的重新排名结果。

来源:Reciprocal Rank Fusion outperforms Condorcet and individual Rank Learning Methods

RRF 根据简单的评分公式对文档进行排序。 上式中,集合D代表给定的待排序文档和一组排序R,每个排序都是1..|D|上的排列,k设置为60。

计算融合分数后,该函数根据分数对文档进行降序排序,并返回最终的重新排名列表。

为了确保多个查询不会偏离用户的意图,模型被指示在提示工程中给予原始查询比后续多个查询更多的权重。 重新排序的文档和查询将提供给 LLM,其工作原理与 RAG 类似,通过要求响应或摘要来生成生成输出。

4、RAG Fusion 的优缺点

与 RAG 模型相比,RAG Fusion 具有以下优势:

  • 随着搜索深度的扩大,源材料的质量也会提高。
  • 它提供与用户的输入查询产生共鸣的整体输出,以响应其信息需求的多方面表示。
  • 它通过从不同文档中提取信息来创建组织良好且富有洞察力的答案。
  • 它执行隐式拼写和语法检查并细化搜索查询以提供准确的搜索结果。
  • 该系统充当语言催化剂,将复杂的查询分解为易于矢量搜索管理的小块。
  • 它增加了发现用户无意的信息的可能性,但它很有帮助。

每一个强大的事物或算法都伴随着一系列限制,RAG Fusion 也不例外。 缺点只有两个:

  • RAG Fusion 模型通过生成多个查询来达到查询深度的能力可以提供详细的答案,更像是一个过度解释的答案。
  • 多查询输入和多样化的文档集会给语言模型的上下文窗口带来压力,导致输出不太连贯。

5、结束语

将 RAG Fusion 模型与 LLM(大语言模型)集成是一种创新方法,可以通过可靠的引用即兴做出即时反应。 RAG Fusion 轻松克服 RAG 模型的局限性并提高其性能。 Adrian H. Raudaschl 提出的 RAG Fusion 想法仍处于实验阶段,旨在使搜索更加智能和上下文感知,帮助获取手动或使用传统LLM无法找到的更丰富、更深入的信息层。 此外,一些道德问题与 RAG Fusion 相关,因为操纵用户的原始查询来改善结果可能就像步入道德灰色地带。 这就是为什么必须保持人工智能模型的透明性,并控制投入人工智能的数量和成本。


原文链接:RAG Fusion简明教程 - BimAnt

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

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

相关文章

SpringBoot+Redis如何实现用户输入错误密码后限制登录(含源码)

点击下载《SpringBootRedis如何实现用户输入错误密码后限制登录(含源码)》 1. 引言 在当今的网络环境中,保障用户账户的安全性是非常重要的。为了防止暴力破解和恶意攻击,我们需要在用户尝试登录失败一定次数后限制其登录。这不…

Python武器库开发-武器库篇之FTP服务暴力破解(五十三)

Python武器库开发-武器库篇之FTP服务暴力破解(五十三) FTP (File Transfer Protocol) 是一种用于在网络上传输文件的协议。它允许用户通过一个客户端应用程序连接到远程服务器,并通过该服务器传输文件。FTP 服务是在互联网上广泛使用的一种服务,它使用户…

postman用法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、postman怎么使用json输出 总结 前言 提示:这里可以添加本文要记录的大概内容: 提示:以下是本篇文章正文内容&#xff0…

人工智能时代:AI提示工程的奥秘 —— 驾驭大语言模型的秘密武器

文章目录 一、引言二、提示工程与大语言模型三、大语言模型的应用实践四、策略与技巧五、结语《AI提示工程实战:从零开始利用提示工程学习应用大语言模型》亮点内容简介作者简介目录获取方式 一、引言 随着人工智能技术的飞速发展,大语言模型作为一种新…

如何在FBX剔除Lit.shader依赖

1)如何在FBX剔除Lit.shader依赖 2)Unity出AAB包(PlayAssetDelivery)模式下加载资源过慢问题 3)如何在URP中正确打出Shader变体 4)XLua打包Lua文件粒度问题 这是第371篇UWA技术知识分享的推送,精…

VueFire:一个一流的 Vue 和 Firebase 体验,包括对 Nuxt 的支持,现在已经稳定了

VueFire,一个一流的 Vue 和 Firebase 体验 — 包括对 Nuxt 的支持,现在已经稳定了。 Vue 和 Firebase 现在比以往任何时候都更好了。 构建更好的VueFire 去年,我们宣布与 Eduardo San Martin Morote 合作,构建一个成熟的 Vue 和…

算法面试八股文『 基础知识篇 』

博客介绍 近期在准备算法面试,网上信息杂乱不规整,出于强迫症就自己整理了算法面试常出现的考题。独乐乐不如众乐乐,与其奖励自己,不如大家一起嗨。以下整理的内容可能有不足之处,欢迎大佬一起讨论。 PS:…

前端封装websocket类,实现消息注册和全局回调

实现消息注册和回调函数,实现全局使用同一个webscoket对象,并实现断线重连和心跳连接等功能,可以实现全局使用唯一实例,可以另外进行拓展配置 // WebSocket类对象 class WebSocketCli {// 构造函数constructor(url: string, opts…

Android悬浮窗实现步骤

最近想做一个悬浮窗秒表的功能,所以看下悬浮窗具体的实现步骤 1、初识WindowManager 实现悬浮窗主要用到的是WindowManager SystemService(Context.WINDOW_SERVICE) public interface WindowManager extends ViewManager {... }WindowManager是接口类&#xff0c…

如何判断 LM358 芯片是否损坏或故障?

LM358 芯片是一种流行的低功耗双运放,广泛应用于各种电子电路中,包括放大器、滤波器、积分器、比较器等。它以其低成本、高性价比和广泛的工作电源范围(3V至32V单电源或1.5V至16V双电源)而被广泛使用。 然而,像所有电…

【Docker与微服务】基础篇

1 Docker简介 1.1 docker是什么 1.1.1 问题:为什么会有docker出现? 假定您在开发一个项目,您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依…

Vue中使用定义的函数时,无法访问到data()里面的数据

const translateItems1 () > {this.translatedItems this.items1.map(item > {return {...item,label: this.$t(item.labelKey)};}); items1是我们data()里面的数据,无法访问到 解决办法 把箭头函数替换为普通函数 const translateItems1 function() {th…

Prometheus的监控告警

前言 alter是一个单独的模块,需要单独的配置 需要声明邮箱地址。配置以configmap进行配置。 altermanager也是pod部署。部署在k8s集群当中。 alertmanager设置告警邮件 apiVersion: v1 kind: ConfigMap metadata:name: alertmanagernamespace: monitor-sa data:al…

blender 画笔的衰成曲线Falloff Curve

Blender画笔是用来在雕刻模式或绘画模式下对物体进行修改的工具。画笔有不同的类型和设置,可以影响画笔的效果和外观。你提到的选项是画笔的衰减曲线(Falloff Curve)的预设,它们决定了画笔的强度如何随着距离中心的距离而变化。 …

【web | CTF】攻防世界 easyupload

天命:好像也不太easy 目录 步骤一:准备文件 步骤二:上传文件 本条题目有好几个防御点: 后缀名防御:只能上传图片格式内容防御:内容不能有php图片头防御:检测文件的头部信息,是否是…

LM Studio-简化安装和使用开源大模型 | OpenAI API 文字转语音本地运行程序分享

原文:LM Studio-简化安装和使用开源大模型 | OpenAI API 文字转语音本地运行程序分享 - 知乎 实测在Mac上使用Ollama与AI对话的过程 - 模型选择、安装、集成使用记,从Mixtral8x7b到Yi-34B-Chat 官网:https://lmstudio.ai/ 最近用上了LM St…

软件工程知识梳理6-运行和维护

软件维护需要的工作量很大,大型软件的维护成本高达开发成本的4倍左右。所以,软件工程的主要目的就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。 定义:软件已经交付使用之后,…

java面向对象基础(面试)

一、面向对象基础 1. 面向对象和面向过程的区别 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。 2.创建一个对象用什么运算符?对象实体与对象引用有何不同? n…

数据防泄密方案公司(dlp数据防泄密厂商排名)

在当今数字化时代,数据已经成为了企业最重要的资产之一。然而,随着企业信息化的不断深入,数据泄露的风险也越来越大。为了保护企业的核心数据,越来越多的企业开始重视数据防泄密工作,并寻求专业的数据防泄密方案提供商…

4-MongoDB索引知识

4.1 概述 索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要…