RAG 涨点小技巧——RAG上下文召回

昨天Claude团队发了一个关于RAG的博客,介绍了上下文召回的思路,可以看看。先看看标准的RAG(检索增强生成)是怎么做的?

  • 将用于检索的知识库(文档)拆为小(几百个token)的文本块
  • 对文本块进行 TF-IDF 编码以及语义嵌入
  • 使用 BM25 检索最相似的文本块
  • 使用文本嵌入检索语义相似的文本块
  • 合并、去重、排序两种方式检索得到的文本块
  • 将 top k 个文本块放进提示词中辅助 LLM 生成回答

img

因为需要对文本进行切块,所以经常遇到上下文被不合理分割的情况

举个例子,如果LLM的知识库里有一堆财务信息(比如美国SEC的文件),然后问题是:“ACME公司2023年第二季度的收入增长了多少?”这时候可能会有一个相关的信息是:“这家公司的收入比上个季度涨了3%。”但是呢,这句话没说是哪家公司,也没提具体的时间,这就让模型很难找到准确的信息,也很难有效地利用这个信息。

上下文召回通过在每个文本块前添加特定于该文本块的解释性上下文来解决这个问题。

下面是一个示例展示了原始文本块和包含上下文的文本块的区别

original_chunk = "The company's revenue grew by 3% over the previous quarter."contextualized_chunk = "This chunk is from an SEC filing on ACME corp's performance in Q2 2023; the previous quarter's revenue was $314 million. The company's revenue grew by 3% over the previous quarter."

具体怎么做呢?

作者写了一个提示词,指导模型提供简洁的、特定于文本块的上下文,使用整体文档的上下文来解释该文本块:

<document>
{{WHOLE_DOCUMENT}} 
</document>
Here is the chunk we want to situate within the whole document 
<chunk>
{{CHUNK_CONTENT}} 
</chunk> 
Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else. 

生成的上下文信息通常在50-100个tokens,会被拼接到原始文本块之前。

下面是完整的流程图

img

性能提升有多少?

我们的实验表明:

  • 上下文嵌入将前20个块的检索失败率降低了35%(从5.7%降至3.7%)。
  • 结合上下文嵌入和上下文BM25将前20个块的检索失败率降低了49%(从5.7%降至2.9%)。

一些实验过程可以关注的细节:

  • 文本块边界:考虑如何将文档分割成块。块大小、块边界和块重叠的选择会影响检索性能。
  • 嵌入模型:不同的模型使用上下文嵌入的提升可能不一样,在作者的实验中Gemini和Voyage嵌入特别有效。
  • 自定义上下文提示:虽然提供的通用提示词效果良好,但可能能够通过针对特定领域或用例定制的提示获得更好的结果(例如,包括知识库中仅在其他文档中定义的关键术语词汇表)。
  • 块数量:将更多块添加到上下文窗口会增加包含相关信息的机会。然而,更多的信息可能会分散模型的注意力,因此存在一定的限制。尝试了传递5、10和20个块,发现使用20个块在这些选项中表现最佳,但在您的用例中进行实验是值得的。

结合重排性能更佳!

重排是一种常用的过滤技术,以确保只有最相关的片段被传递给模型。

  • 执行初始检索以获取最有可能相关的片段(我们使用了前150个);
  • 将前N个片段与用户的查询一起传递给重排模型;
  • 使用重排模型,根据每个片段与提示的相关性和重要性为其打分,然后选择前K个片段(我们使用了前20个);
  • 将前K个片段作为上下文传递给模型以生成最终结果。

img

结合重排后 top-20 的召回失败率减少了67% (5.7% → 1.9%)

在这里插入图片描述

如何学习大模型

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

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

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

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

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

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

五、结束语

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

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

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

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

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

相关文章

商业银行应用安全架构设计实践

传统的信息安全工作通常偏向于事中或事后检测漏洞,随着敏捷开发工作的逐步推进,商业银行认识到安全架构设计在实现IT降本增效方面的独特优势。近几年,商业银行逐步构建了安全架构设计工作体系,在组织人员、安全技术与管控流程方面,与企业IT架构密切协同,着力建设安全公共…

GPU与国产芯片异构通信方案,异构万卡集群 初步调研

视频分享在这&#xff1a; 3.1异构万卡集群&#xff0c;GPU与国产计算卡芯片异构通信_哔哩哔哩_bilibili 国内已经有三家&#xff0c;实现了异构集群&#xff0c;GPU与国产芯片异构通信方案&#xff0c;初步调用结果如下。 异构集群的挑战 异构芯片间的混训主要面临两大挑战…

《概率论与数理统计》学渣笔记

文章目录 1 随机事件和概率1.1 古典概型求概率随机分配问题简单随机抽样问题 1.2 几何概型求概率1.3 重要公式求概率 2 一维随机变量及其分布2.1 随机变量及其分布函数的定义离散型随机变量及其概率分布&#xff08;概率分布&#xff09;连续型随机变量及其概率分布&#xff08…

Java之线程篇六

目录 CAS CAS伪代码 CAS的应用 实现原子类 实现自旋锁 CAS的ABA问题 ABA问题导致BUG的例子 相关面试题 synchronized原理 synchronized特性 加锁过程 相关面试题 Callable 相关面试题 JUC的常见类 ReentrantLock ReentrantLock 和 synchronized 的区别: 原…

《大学操作系统课程:开启计算机世界的关键之门》

在大学的计算机科学与技术专业中&#xff0c;操作系统课程犹如一把钥匙&#xff0c;为学子们打开了深入了解计算机系统运行机制的大门。 操作系统课程首先会带领你探索操作系统的基本概念。你会明白操作系统是一种系统软件&#xff0c;它管理着计算机的硬件资源和软件资源&…

win系统接入google_auth实现动态密码,加强保护

开源代码地址&#xff1a;windows动态密码: 针对win服务器进行的动态密码管控&#xff0c;需要配合谷歌的身份认证APP使用 (gitee.com) 为什么要搞个动态密码呢&#xff1f; 首先云服务器启用了远程访问&#xff0c;虽然更换了端口以及初始用户名&#xff0c;不过还是是不是被…

核心复现—计及需求响应的区域综合能源系统双层优化调度策略

目录 一、主要内容&#xff1a; 二、摘要介绍&#xff1a; 三、综合能源系统结构&#xff1a; 四、实际仿真运行结果&#xff1a; 五、 代码及数据下载&#xff1a; 一、主要内容&#xff1a; 在模型构建部分&#xff1a;建立了一个综合能源系统双层优化调度模型&#xf…

南京服务器测评【浪浪云】

前言 优质的服务器对于企业来说无疑是一把快速实现科技化成长的利剑。而南京&#xff0c;作为中国科技龙头之一的城市&#xff0c;也对服务器的需求愈发旺盛。而作为国内领先的云服务商&#xff0c;浪浪云致力于用科技培植企业的成长&#xff0c;其在南京的服务器便是企业数字化…

计算机毕业设计springboot+vue项目分享在线服务平台

目录 功能和技术介绍系统实现截图开发核心技术介绍&#xff1a;使用说明开发步骤编译运行需求分析系统设计软件测试核心代码部分展示详细视频演示源码获取 功能和技术介绍 本项目包含程序源码和MySql脚本和文档,idea开发,支持Eclipse。使用vue的本质是SpringFramework【IoC&am…

0基础跟德姆(dom)一起学AI 数据处理和统计分析07-分组和会员数据分析

向量化函数及Lambda表达式 * 分组操作相关 * 分组聚合 * 分组转换 * 分组过滤 * DataFrameGroupBy对象介绍 * 会员分析案例-数据透视表 --- 1.向量化函数 * 分析代码 python def avg_test2(x,y): if x20: return np.NaN else: retu…

【OSS安全最佳实践】对OSS内身份证图片中身份证号进行脱敏

为确保存储在私有OSS Bucket特定文件夹中包含中国内地身份证信息的PNG、JPG、JPEG、BMP或WEBP格式图片&#xff0c;在与其他用户共享时身份证信息不被泄露&#xff0c;可使用数据安全中心 DSC&#xff08;Data Security Center&#xff09;的图片脱敏功能。DSC目前仅支持对身份…

react hooks--useRef

基本用法 在类组件中获取一个dom元素实例&#xff0c;可以通过React.CreateRef或者回调函数的方式去获取。语法&#xff1a;const refContainer useRef(initialValue);使用场景&#xff1a;在 React 中进行 DOM 操作时&#xff0c;用来获取 DOM作用&#xff1a;返回一个带有 …

构建高可用和高防御力的云服务架构第五部分:PolarDB(5/5)

引言 云计算与数据库服务 云计算作为一种革命性的技术&#xff0c;已经深刻改变了信息技术行业的面貌。它通过提供按需分配的计算资源&#xff0c;使得数据存储、处理和分析变得更加灵活和高效。在云计算的众多服务中&#xff0c;数据库服务扮演着核心角色。数据库服务不仅负…

【C++高阶】深入理解C++ I/O流:标准库中的隐藏宝石

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C 特殊类 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ C IO流 &#x1f4d2;1. C语言的输入…

Stable Diffusion 优秀博客转载

初版论文地址&#xff1a;https://arxiv.org/pdf/2112.10752 主要流程图&#xff1a; Latent Diffusion Models&#xff08;LDMs&#xff09; DDPM是"Denoising Diffusion Probabilistic Models"的缩写&#xff0c; 去噪扩散概率模型 博客&#xff1a; 【论文阅读…

单发超快光场成像技术研究进展

摘要&#xff1a;单发超快光场成像技术能够在更广泛的条件下表征瞬态事件&#xff0c;为探索不可重复和难以再现的超快现象打开了大门&#xff0c;是探索未知领域必不可少的工具&#xff0c;具有巨大的科学技术应用价值。介绍近年来单发超快光场成像技术的研究进展&#xff0c;…

【Finetune】(三)、transformers之P-Tuning微调

文章目录 0、P-Tuning基本原理1、代码实战1.1、导包1.2、加载数据集1.3、数据集预处理1.4、创建模型1.5、P-tuning*1.5.1、配置文件1.5.2、创建模型 1.6、配置训练参数1.7、创建训练器1.8、模型训练1.9、模型推理 0、P-Tuning基本原理 P-Tuning的基本思想是在prompt-tuning的基…

预付费计量系统实体模型

1. 预付费计量系统实体模型 A generic entity model for electricity payment metering systems is shown in Figure 2. Although it provides a limited perspective, it does serve to convey certain essential concepts. 关于电子式预付费电表系统的实体模型见图 2…

如何选购笔记本电脑?要看哪些参数?

如何选购笔记本电脑&#xff1f;要看哪些参数&#xff1f; 文章目录 如何选购笔记本电脑&#xff1f;要看哪些参数&#xff1f;1、CPU&#xff08;中央处理器&#xff09;2、GPU&#xff08;显卡&#xff09;3、RAM&#xff08;内存&#xff09;4、硬盘5、屏幕6、散热7、接口8、…

前端工程化4:从0到1构建完整的前端监控平台

前言 一套完整的前端监控系统的主要部分&#xff1a; 数据上报方式数据上送时机性能数据采集错误数据采集用户行为采集定制化指标监控sdk 监控的目的&#xff1a; 一、数据上报方式 本文的方案是&#xff0c;优先navigator.sendBeacon&#xff0c;降级使用1x1像素gif图片…