提升RAG检索回答质量: Shortwave的 4 大优化指南

news2024/9/21 14:42:23

这篇文章就针对 RAG 检索这个问题提供一些思路, 以 Shortwave 这家 AI 邮件助手公司的设计思路作为案例,真的很难有公司把产品详细技术机制公布出来

本文在01 部分还针对"微调和 RAG,到底选哪个? " , " 有了支持超长上下文窗口的 LLM,是否还需要 RAG"进行说明

01

现在支持超长上下文窗口long context LLM(如 10M tokens的 gemini 1.5)的模型已经出现,许多人认为 RAG 已经没有必要,因为可以将数百个文档直接上传给 LLM 进行阅读和处理。

但是,需要考虑以下三个关键问题:

相关性:上传如此多的文档,仍然需要考虑哪些文档与问题最相关,否则容易导致答案偏离

性能影响:上传大量文档对模型性能的影响有多大?模型是否能够高效地处理并回答相关问题?

算力成本:上传过多文档会导致算力成本显著增加,这也是为什么很多 LLM 目前仍然无法支持过多上下文窗口的原因。比如,GPT-4 在处理 30k 汉字内容时可能会出现宕机的情况

对于超长上下文窗口一个有趣的类比是:尽管我们的 RAM 内存足够大,但很多操作仍需在硬盘上进行读写传输,而不是全部存储在 RAM 中

图片我上传 3w 的文档, 结果 GPT-4 说他没有直接访问具体文章的权利??

RAG&Finetuning,都能用来优化大模型在下游任务的适应能力,选哪个, 有什么区别

https://arxiv.org/abs/2401.08406

https://arxiv.org/abs/2312.05934

上面两篇论文研究得出: RAG(检索增强生成)在生成质量上往往优于(有监督/无监督)微调的传统语言模型,特别是在需要外部知识回答的场景下

RAG 不仅在保持高效性能的同时使用更少的算力资源,还具备灵活应对信息检索准确性问题的能力。具体而言,当检索到的信息不准确或有害时,RAG 允许对索引进行调整或替换,而不需要重新训练整个模型

此外,RAG 的模块化设计使得不同的组织可以根据需求使用专属的知识库,避免了将所有数据混合在一个不可解释的黑箱模型中的问题,从而提高了模型的透明度和可定制性。这种架构对企业和研究机构尤其有吸引力,因为它能够更好地管理专有数据和知识

02

目前的 RAG 系统在知识库具备高相关性、高密度、以及包含丰富细节信息的情况下表现最佳

为了确保 RAG 的高效性,需要对初始检索器initial retrieve、重新排序机制(re-rank mechanism)、或者类似 EffectiveGPT(该链接文章最后一部分有提)的评估器进行严格的质量标准评估:

相关性 (Relevance) - 最重要的评估标准: 使用 Mean Reciprocal Rank (MRR) 来评估系统的相关度排名。系统应确保与问题最相关的内容排在最前面,这是衡量初始检索质量的关键指标

知识密度 (Density): 在相关性相同的情况下,应优先参考知识密度高的文档,即那些内容质量更高、信息更精炼的文档,例如由专家撰写的主题内容

细节 (Details): 特别是在涉及工具调用时,对知识库或工具进行详细描述能帮助 LLM 更好地理解每个知识库的用途,尤其是在处理如 SQL 数据库这类需要精确调用的场景

图片post processing将回答形成用户友好的格式,包括引用内容和相关问题

当前,基于向量的语义相似性搜索的结果在准确性上可能还不如传统的关键词搜索(如 BM25)。因此,类似 Sourcegraph 的 CTO 建议将语义相似性搜索与传统关键词搜索结合,以提升 RAG 检索的整体质量

现实可行的提升 RAG 的现实措施可参考 AI 邮件助手 Shortwave 的 AI Search 机制:

图片

问题重写 (Query Reformation): 对用户的原始查询进行重写或优化,使其更适合检索系统。例如,通过重新组织句子结构、消除歧义或补充上下文信息,来提高查询的清晰度和相关性。

关键信息提取 (Feature Extraction): 从用户问题中提取关键特征,如时间、地点、姓名等重要信息。这些特征可以帮助进一步定义检索范围,并提高匹配的准确性

Recency bias extractor 是一种用于识别和提升与当前时间点最相关信息的工具。在 Shortwave 的 AI 系统中,它根据查询中特征(如日期或时间)来判断信息的时效性,从而在初步检索后对更近期的内容给予更高的优先级。这种方法帮助系统快速筛选出与用户当前需求最相关的最新信息,适用于需要强调“近因效应”的场景

图片

关键词与嵌入结合的初步检索 (Keyword + Embedding Initial Retrieval):使用关键词搜索进行初步检索,找到最精准和明显的匹配项,确保高相关性。

辅以向量搜索处理同义词、多模态信息,以及处理有语法错误的查询内容。嵌入方法有助于捕捉更广泛的语义关系,即使关键词不完全匹配。

启发式重新排序 (Heuristic Re-ranking):利用从问题中提取的特征缩小向量搜索的范围。例如,如果问题中提及了时间、姓名等特征,则这些信息在重新排序时应获得最高权重(boost),从而更加突出相关答案。对于次相关的内容则给予较低权重或惩罚(penalty),以避免无关信息干扰检索结果

最跟关键词符合的素材获得最高的 boost, 就是下面曲线的最高值

图片

利用 MS Marco MiniLM 进行 Cross-Encoder Re-ranking: MiniLM 模型在本地运行,能够根据 reformulated query 和上一步中排名靠前的信息,对其进行更精细的匹配评分

尽管 MiniLM 提供了更好的效果,但由于其计算量较大,为了节省资源,仅对通过启发式嵌入排名靠前的文档进行 re-ranking

Cross-Encoder 输入包括 reformulated query 以及上一步通过 heuristic embedding 排名靠前的文档。模型会对每个文档与 reformulated query 的匹配性进行评分,生成更精确的相关性分数

根据 cross-Encoder(MiniLM)给出的评分,进一步指导 heuristic re-ranking,完善对检索素材的排名。具体做法是对评分高的内容进行 boost,而对评分较低的内容进行 penalize。这一过程会对索引内容进行动态调整,确保最终评分反映文档与问题的精确相关性

输出最终排序结果: 最终将经过 cross-Encoder 和 heuristic re-ranking 双重优化的排序结果提供给 LLM

简要总结一下这 4 个机制:

高相关性、高密度、以及包含丰富细节信息的知识库(这3 个标准也可以作为评估器, 检索质量的评估标准) 对问题进行优化改写,让用户问题更清晰明确 提取问题相关特征,用关键词搜索先精准匹配 1 个或多个re-ranking 机制

03

通过Shortwave 这个例子, 我对 AI 产品更有感觉了, 大致是基于 LLM,根据用户场景需求,开发设计特定的 AI tool, 能一键满足用户需求的ai tool ,这个 ai tool 需要自己基于各种开源模型, 基于Prompt, 基于自定义的机制进行封装

像下面的 Summary 就很简单, 只是用了 Prompt 进行封装, 而 AI Search 就是 02部分的步骤, 涉及复杂的场景细化流程

图片

针对什么时候调用这些工具, 就需要做工具与用户问题的匹配

图片

后记

Shortwave 作为已经商业化的 AI 写作公司, 分享产品更符合目前AI 发展现状的RAG优化机制, 至少能帮助明确方向, 看到别人成熟的产品是怎样做的

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

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

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

相关文章

城市数字化转型中的机遇:中小型企业产品选型指南

随着城市数字化转型的浪潮席卷全球,中小型企业正面临着前所未有的机遇与挑战。如何精准选型,以最小的成本实现最大的效益,成为众多中小型企业关注的焦点。作为一款低代码开发平台,百数为中小型企业提供了一个高效、便捷、低成本的…

Aigtek功率放大器的参数是什么意思

功率放大器是电子电路中的一种重要组件,用于增加输入信号的幅度,以便驱动负载,如扬声器或天线。在设计和使用功率放大器时,有许多关键参数需要考虑,这些参数影响着功率放大器的性能和适用性。下面将详细介绍功率放大器…

视频合并怎么操作?这篇文章告诉你

当你手头有多个片段,想要将它们巧妙地拼接在一起,形成一个完整的故事时,你会怎么做呢? 手动逐帧调整?这显然是个耗时且复杂的过程。幸好,现在有许多优秀的视频合并模板软件可以帮助你轻松实现这一目标。 …

Power Automate向Power Apps传Table数据

Flow返回查询的数据表并返回Apps 场景介绍代码开发Power Automate开发数据库Power Automate调用存储过程 Power Apps开发代码开发 测试 场景介绍 我们通常会使用Flow 查询数据表然后Apps端将表中的数据显示出来,我们怎么来传呢,它自带的response for Po…

Arduino library for proteus 下载 安装 测试

Arduino library include: https://drive.google.com/uc?exportdownload&id1P4VtXaomJ4lwcGJOZwR_25oeon9Zzvwb 第一步: 也可从我的共享网盘当中下载: 第2步:解压文件: 第3步: copy lib and idx 到对应的…

Qt多媒体播放软件

1、项目背景 1.1、技术背景 随着数字媒体的普及,用户对于多媒体播放软件的需求日益增长。Qt作为一个功能强大且跨平台的应用程序开发框架,提供了一套完整的工具和库来支持多媒体内容的处理。Qt Multimedia模块特别为音频和视频播放、录制以及其他相关任…

B树和B+树总结

B树(B-Tree)和B树(B Tree)是两种广泛应用于数据库和文件系统中的自平衡树结构,主要用于存储和检索大量有序数据。它们都是多叉树,即每个节点可以有多个子节点,与二叉树不同。下面是对这两种树的…

每日刷题(图论)

P1119 灾后重建 P1119 灾后重建 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路 看数据范围知道需要用到Floyd算法,但是道路是不能直接用的,需要等到连接道路的两个村庄重建好才可以使用,所以这需要按照时间依次加入中转点&#xff0c…

并行数模转换器分辨率的扩展

在并行DAC中存在的一个普遍问题是随着DAC分辨率的提高需要的面积也越来越大。此外,MSB元件值与LSB元件值之比也在增大。我们知道元件的匹配精度随着元件和元件的比值的增大而降低,因此,本节将分析几种能够在元件比和分辨率之间进行权衡的方法…

基于LSTM-AutoEncoder的室内空气质量时间序列数据异常检测

基于LSTM-AutoEncoder的室内空气质量时间序列数据异常检测 LSTM-Autoencoder-Based Anomaly Detection for Indoor Air Quality Time-Series Data DOI: 10.1109/JSEN.2022.3230361 摘要——室内空气质量(IAQ)数据的异常检测已成为研究的重要领域&…

【SQL】跳过记录筛选第二名

目录 语法 需求 示例 分析 代码 语法 SELECT DISTINCT column1, column2, ... SELECT DISTINCT 语句用于返回唯一不同的值。SELECT DISTINCT 后面跟着想要获取唯一值的列名,列名之间用逗号分隔。当从数据库表中查询数据时,如果表中某列包含重复的…

星坤DDR5 SMT RDIMM金手指连接器:云端存储与高性能计算的未来

在当今数字化时代,数据的快速增长和处理需求对电子元器件提出了更高的要求。星坤电子以其创新的DDR5 SMT RDIMM【X9413 X9414 series】金手指连接器,为云端存储设备、伺服器、电源供应设备、通讯设备、工控主机以及3C电子产品等领域提供了卓越的连接解决…

【ComfyUI】Flux 提示词太难了?Flux Prompt 轻松提示增强!更详细、更具描述性!

前言 所有的AI设计工具,模型和插件,都已经整理好了,👇获取~ Flux真的太火了,小编日常也主要以Flux出图为主了。但每每写提示词时有没有人和老徐有类似的情况,就是经常为写提示词而穷思苦想呢?怎…

Google开发者账号个人身份验证经验分享

本文主要讲解Google Play 个人身份验证过程中的注意事项和完整的填写指导教程,为个人开发者身份验证提供参考指引,帮助大家快速通过谷歌的身份信息验证 个人身份验证注意事项 梳理了这段时间个人身份验证填写过程中遇到的问题和解决方案,先睹…

RocketMQ高级特性三-消费者分类

目录 前言 概述 区别 PullConsumer 定义与概述 原理机制 使用场景 优缺点 Java 代码示例 SimpleConsumer 定义与概述 原理机制 使用场景 优缺点 Java 代码示例 PushConsumer 定义与概述 原理机制 使用场景 优缺点 Java 代码示例 总结 前言 RocketMQ中的消…

SpringMVC 第一次复学笔记

服务器启动时,创建spring容器;dispatcherServlet启动时,直接创建springmvc容器初始化一次,实现了springmvc和spring的整合。 SpringMVC里的组件 处理器映射器(HandlerMapping)负责匹配映射路径对应的Handl…

小琳Python课堂:Python全局解释器锁(GIL)的深入解析与应用

小琳Python课堂开讲啦!今天我们来深入探讨Python中的一个重要概念——全局解释器锁(GIL)。🔒 技术细节角度 单线程执行保证:GIL确保了在任何时刻只有一个线程在执行Python字节码。互斥锁实现:GIL通过在解…

无人机之发动机篇

一、无人机发动机的分类 无人机发动机根据工作原理和应用场景的不同,主要分为以下几类: 电动马达: 特点:清洁、高效、体积小巧、重量轻便、噪音低、对环境影响小。 应用:多用于小型或微型无人机,因其续航…

Nature Microbiology|WISH标签技术:评估微生物组中单株水平的种群动态

微生态研究搞了n多年,益生菌还是那么几个,为什么? 一个共识是单一菌株的添加往往难以解决复杂问题。微生物群体的相互作用和平衡不应被忽视。实际上,我们需要在群体层面进行添加或干预,才能真正发挥益生菌的作用。然而…

AD原理图无法输入中文的问题及解决办法

电脑系统:Windows 11 专业版 AD版本:20.0.14 解决方法: 方法1、在word打好,复制到AD 方法2、尝试快捷键ctrlshift、ctrl空格、windows空格