RAG拉满-上下文embedding与大模型cache

news2024/10/18 19:47:41

无论怎么选择RAG的切分方案,仍然切分不准确

最近,anthropics给出了补充上下文的embedding的方案,RAG有了新的进展和突破。

从最基础的向量查询,到上下文embedding,再到rerank的测试准确度都有了明显的改善,测试结果数据如下[2]:

测试方案Pass@5Pass@10Pass@20
基础RAG80.92%87.15%90.06%
加了上下文的embedding86.37%92.81%93.78%
BM25测试和上下文embedding86.43%93.21%94.99%
双路召回的基础上,增加了rerank91.24%94.79%96.30%

( 备注:Pass@k 检查每个查询检索到的前 k 个文档中是否存在“最佳文档”)

在这里插入图片描述

(智谱清言[7]绘制的图)

一、RAG存在的问题

比如有西游记这本书中(第一回 惊天地美猴王出世),一个文档的chunk拆分如下:

“师兄们见了,鼓着掌称赞他。”

很难知道更多关于这个chunk的基本信息,它的上下文不够清晰,那很难让LLM总结得到更准确的总结和回答。

二、上下文embedding

假设根据所属的文档,补充完善这个chunk的上下文信息,就变成这样的chunk:

”孙悟空在菩提祖师门下学成七十二般变化和筋斗云后,展示给师兄们看,变出一棵大树,师兄们对此表示赞赏。“

这样,一个chunk的上下文信息就变得更加完整了。

使用这样的chunk信息,可以让LLM得到更准确的回答。

提示语:

<document>
	{原始文档}
</document>
	  
你的任务是改写一下这个chunk:提供一个简短的上下文补充完整chunk在整个文档中的含义,以便改进chunk的搜索检索。 只回答简洁的上下文,不要回答其他内容。
 以下是文档中我们想要的部分chunk。
<chunk>
	{当前chunk}
</chunk>

使用deepseek的测试结果如下[3][4]:

在这里插入图片描述

三、大模型Cache

通过字数统计来看,如果每一个chunk都需要传入整个文档,则费用是巨大的。
整个文档(西游记 第一回)的字数统计如下:
在这里插入图片描述

那为什么要使用DeepSeek?
从能力的各个方面看,deepseek表现的都很好[6]。
除此之外有一个更大的优点–价格便宜。

在这里插入图片描述

除了普通的输入输出价格之外,deepseek提出了一个缓存价格的概念:
如果你传入给模型的前缀内容是相同的,则会命中缓存。命中缓存的费用降低了10倍。
在这里插入图片描述

只要前缀相同,就会命中缓存[8](以下是官方文档中的事例代码):
在这里插入图片描述

上图中我划线的部分都是缓存命中的。

再回到我们补充chunk上下文的案例,提示语如下:

<document>
	{原始文档}
</document>
	  
你的任务是改写一下这个chunk:提供一个简短的上下文补充完整chunk在整个文档中的含义,以便改进chunk的搜索检索。 只回答简洁的上下文,不要回答其他内容。
 以下是文档中我们想要的部分chunk。
<chunk>
	{当前chunk}
</chunk>

原始文档部分以及提示语部分都是一致的,只有如下片段是缓存不命中的:

	{当前chunk}
</chunk>

这样,我们的费用就大大降低了,通过大模型补充chunk的上下文就成为了可能。

感谢deepseek的创新和实现[9],让模型的使用变得便宜,让我们可以从更多的场景去探索和尝试。

四、写在最后

补充完善chunk上下文这个方案在之前来做是不可能的,因为一个文档要重复让模型进行读取,这个费用太高了。

从豆包的首次降价,到百度的免费模型,到智谱的免费模型,再到各种本地构建的ollama免费模型

随着模型的普及,价格变的便宜,大胆的尝试它与场景的结合就成为了可能。

所以,未来的模型使用,要 更多的考虑场景,而不是价格

参考文献:

[1] The best RAG’s technique yet? Anthropic’s Contextual Retrieval and Hybrid Search:https://levelup.gitconnected.com/the-best-rag-technique-yet-anthropics-contextual-retrieval-and-hybrid-search-62320d99004e

[2] anthropic-cookbook例子: https://github.com/anthropics/anthropic-cookbook/blob/main/skills/contextual-embeddings/guide.ipynb

[3] deepseek访问页面: https://chat.deepseek.com/

[4]西游记白话文: https://github.com/gugug/pyltp-books/blob/master/mybooks/Book/%E8%A5%BF%E6%B8%B8%E8%AE%B0%E7%99%BD%E8%AF%9D%E6%96%87/1.txt

[5]在线字数统计: https://www.eteste.com/

[6]中文模型测评排行榜:https://github.com/jeinlee1991/chinese-llm-benchmark?tab=readme-ov-file#3%E4%BF%A1%E6%81%AF%E6%8A%BD%E5%8F%96%E8%83%BD%E5%8A%9B%E6%8E%92%E8%A1%8C%E6%A6%9C

[7]智谱清言: https://chatglm.cn/main/alltoolsdetail?lang=zh

[8]deepseek文档-缓存策略: https://api-docs.deepseek.com/zh-cn/guides/kv_cache

[9]deepseek的MLA缓存实现:https://blog.csdn.net/yutianzuijin/article/details/142372022

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

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

相关文章

【无标题】如何在Costura.Fody生成时排除掉某些dll

有个场景需要排除掉某些dll让他不要打包到exe中,这样做,修改FodyWeavers.xml

配合工具,快速学习与体验electron增量更新

有任何问题&#xff0c;都可以私信博主&#xff0c;共同探讨学习。 正文开始 前言一、如何使用源码1.1 下载代码1.2 下载资源1.3 运行项目 二、如何使用工具2.1 打包新版本更新包2.2 创建nginx文件服务器2.3 在文件服务器保存软件更新包 三、如何测试更新3.1本地运行低版本3.2 …

九、PESocket通信

知识点&#xff1a;高并发 1、下载PESocket 地址&#xff1a;PlaneZhong/PESocket: A C# Network Library. (github.com) 2、示例代码 发过去一个Hello&#xff0c;返回一个hello 当一个客户端关闭了&#xff0c;会出现一个提示 当一个客户端开启&#xff0c;会显示已连接 3…

运放类公式计算

简介 很多运放的GAIN采用dB的方式表达放大倍数&#xff0c;然而我们有时候习惯使用电压的倍数代表运放放大关系&#xff0c;本章主要简单介绍dB与电压转换的关系。 例如某运放的放大倍数如下&#xff1a; G1G2GAIN(dB)0029.60119.110131116 以上放大倍数我们无法知道输入的信号…

有趣的在线可视化网站:探索神经网络与矩阵运算

有趣的在线可视化网站&#xff1a;探索神经网络与矩阵运算 文章目录 有趣的在线可视化网站&#xff1a;探索神经网络与矩阵运算一 TensorFlow Playground 神经网络二 Symbolab 的矩阵迹计算器三 Matrixmultiplication 可视化教学工具 本文推荐了几个非常有趣且实用的在线可视化…

sql实战解析-sum()over(partition by xx order by xx)

该窗口函数功能 sum( c )over( partition by a order by b) 按照一定规则汇总c的值&#xff0c;具体规则为以a分组&#xff0c;每组内按照b进行排序&#xff0c;汇总第一行至当前行的c的加和值。 从简单开始一步一步讲&#xff0c; 1、sum( )over( ) 对所有行进行求和 2、sum(…

静态站点生成器哪家强?

有一种方法&#xff0c;让你写好文档后&#xff0c;快速地让同事、用户和合作伙伴看到&#xff0c;这就是静态站点生成器。 静态站点生成器是一种软件&#xff0c;用于创建不需要服务器端脚本的网站。这些网站由纯HTML文件组成&#xff0c;可能还包括CSS和JavaScript来增强功…

【PhpSpreadsheet】ThinkPHP5+PhpSpreadsheet实现批量导出数据

目录 前言 一、安装 二、API使用 三、完整实例 四、效果图 前言 为什么使用PhpSpreadsheet&#xff1f; 由于PHPExcel不再维护&#xff0c;所以建议使用PhpSpreadsheet来导出exlcel&#xff0c;但是PhpSpreadsheet由于是个新的类库&#xff0c;所以只支持PHP7.1及以上的版…

如何激活Windows server服务器

步骤&#xff1a; 一、用VMware虚拟机安装了Windows server服务器之后的状态 图1-1 查看Windows server2019 系统信息 图1-2 在桌面上查看个性化&#xff0c;提示系统未激活 二、激活的步骤&#xff1a; 1.找激活工具 图1-2 寻找激活工具并准备拖拽到虚拟服务器中 2.解压…

【服务器虚拟化是什么?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

微信小程序使用MQTT连接阿里云

目录 一、新建项目和项目整体配置​ 二、MQTT 下载引入和配置连接​ 三、阿里云配置 1、创建产品及设备 2、数据进行云流转 四、创建 MQTT 连接​ 五、微信小程序配置 六、效果展示 1、微信小程序发送控制命令 2、LED台灯反馈LED状态 七、微信小程序项目完整代码 一…

不同晶圆厂的简单分析

以下是各类晶圆厂的投资情况、技术特点、应用场合、代表性公司以及建厂难度分析: 1. 先进逻辑芯片制造商: ->投资情况:台积电在美国亚利桑那州凤凰城的5nm半导体厂,三年总投资约120亿美元。 ->技术特点:使用最先进的制程技术,如5nm、3nm等,包括极紫外(EUV)光…

《太吾绘卷》风灵月影游戏辅助好不好用?《太吾绘卷》风灵月影游戏辅助功能 全解析

太吾绘卷风灵月影修改器可调整游戏多项数据&#xff0c;助力玩家轻松过关。启动游戏后&#xff0c;按数字键1开启无敌模式&#xff0c;数字键2锁定时间&#xff0c;数字键3实现物品不消耗&#xff0c;Ctrl数字键1则能获得无限银钱等功能&#xff0c;为玩家提供全方位的游戏辅助…

如何删除Maven

1.找到Maven安装路径 方法一&#xff1a; 可以直接在文件资源管理器里面选中“此电脑”然后右上角搜“apache-maven”&#xff0c;这个过程可能长达几分钟甚至更久 方法二&#xff1a; 这里推荐一个名叫“Everything”的软件&#xff0c;能够快速的查找到需要的文件 2.找到本…

登录前端笔记(二):vuex管理用户数据;跨域;axios封装;环境;请求响应拦截;权限;用户资料Vuex共享

一、Vuex登录流程之用户模块&#xff1a; 简言之&#xff1a;点击登录调用actions且得到token&#xff0c;把得到的token提交给mutations从而修改state里的数据。 原视频 &#xff08;1&#xff09;Vuex用户模块流程 组件页面里点击登录后&#xff0c;调用stores里的actions&…

罹患眼肿瘤艰难求医,爱尔眼科“眶护光明”公益助力患者解除眼疾

来自达川区管村镇高寨村的冉启珍&#xff0c;家庭人口共4人&#xff0c;家里户主丈夫吴让洪于2018年患脑梗&#xff0c;又于2021年复发脑溢血&#xff0c;致肢体二级残疾&#xff0c;患有高血压等慢性病&#xff0c;需要长期服药&#xff0c;完全丧失劳动能力&#xff0c;长期需…

开源OpenStack

1.查询HCS基于OpenStack哪个版本开发 2.九大核心组件 OpenStack可以对接FC也可以对接KVM主机&#xff1b;&#xff08;OpenStack 对接华为FusionCompute&#xff0c;一个集群对应 openstack 一台计算主机&#xff09;-引申出nova compute 2.1nova nova两个核心组件nova contro…

期刊论文投稿指南:如何利用ChatGPT精准选择合适的期刊?

知学术AIPaperGPT&#xff0c;论文写作神器~ https://www.aipapergpt.com/ 在学术论文的写作与发表过程中&#xff0c;选择合适的期刊往往是投稿成功的关键一步。面对众多期刊&#xff0c;研究者常常感到迷茫&#xff0c;不知道该如何匹配期刊与自己的研究方向。这时&#xf…

AD服务器超过180天未使用导致数据同步复制失败

问题描述 【适用版本】&#xff1a;FusionAccess 所有版本 环境在操作域站点间执行AD复制副本时出现如下错误&#xff1a;“AD不能与此服务器复制&#xff0c;因为距上一次与此服务器复制的时间已经超过了tombstone生存时间&#xff0c;此操作不能继续。”导致其他服务器、虚拟…

Xshell上Linux的基础指令

目录 1、Xshell的使用 2、Linux的常用命令 2.1 位置跳转命令 1、ls 2、cd 3、pwd 2.2 文件操作 1、touch 2、cat 3、echo 4、vim 2.3 目录操作 1、mkdir 2、rm 2.4 移动操作 1、mv 2、cp 2.5 命令手册 2.6 查找操作 2.7 进程展示 2.8 网络信息 3、搭建w…