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

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

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

一、RAG存在的问题

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

复制代码
"师兄们见了,鼓着掌称赞他。"

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

二、上下文embedding

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

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

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

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

提示语:

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

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

三、大模型Cache

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

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

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

只要前缀相同,就会命中缓存[8](以下是官方文档中的事例代码):

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

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

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

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

bash 复制代码
	{当前chunk}
</chunk>

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

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

四、写在最后

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

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

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

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


附上测评报告:

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

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

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

参考文献:

  • 1\] The best RAG's technique yet? Anthropic's Contextual Retrieval and Hybrid Search:[levelup.gitconnected.com/the-best-ra...](https://link.juejin.cn?target=https%3A%2F%2Flevelup.gitconnected.com%2Fthe-best-rag-technique-yet-anthropics-contextual-retrieval-and-hybrid-search-62320d99004e "https://levelup.gitconnected.com/the-best-rag-technique-yet-anthropics-contextual-retrieval-and-hybrid-search-62320d99004e")

  • 3\] deepseek访问页面: [chat.deepseek.com/](https://link.juejin.cn?target=https%3A%2F%2Fchat.deepseek.com%2F "https://chat.deepseek.com/")

  • 5\]在线字数统计: [www.eteste.com/](https://link.juejin.cn?target=https%3A%2F%2Fwww.eteste.com%2F "https://www.eteste.com/")

  • 7\]智谱清言: [chatglm.cn/main/alltoo...](https://link.juejin.cn?target=https%3A%2F%2Fchatglm.cn%2Fmain%2Falltoolsdetail%3Flang%3Dzh "https://chatglm.cn/main/alltoolsdetail?lang=zh")

  • 9\]deepseek的MLA缓存实现:[blog.csdn.net/yutianzuiji...](https://link.juejin.cn?target=https%3A%2F%2Fblog.csdn.net%2Fyutianzuijin%2Farticle%2Fdetails%2F142372022 "https://blog.csdn.net/yutianzuijin/article/details/142372022")

相关推荐
猫头虎1 小时前
OpenClaw-VSCode:在 VS Code 里玩转 OpenClaw,远程管理+SSH 双剑合璧
ide·vscode·开源·ssh·github·aigc·ai编程
种时光的人1 小时前
CANN 生态安全防护:cann-security 筑牢 AIGC 大模型全生命周期安全防线
aigc
阿杰学AI2 小时前
AI核心知识92——大语言模型之 Self-Attention Mechanism(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·transformer·自注意力机制
猫头虎2 小时前
如何使用Docker部署OpenClaw汉化中文版?
运维·人工智能·docker·容器·langchain·开源·aigc
猫头虎4 小时前
手动部署开源OpenClaw汉化中文版过程中常见问题排查手册
人工智能·langchain·开源·github·aigc·agi·openclaw
多恩Stone4 小时前
【3D AICG 系列-9】Trellis2 推理流程图超详细介绍
人工智能·python·算法·3d·aigc·流程图
猫头虎4 小时前
OpenClaw开源汉化发行版:介绍、下载、安装、配置教程
运维·windows·开源·aigc·ai编程·agi·csdn
EdisonZhou5 小时前
MAF快速入门(15)Agent调试利器:DevUI
llm·aigc·agent·.net core
种时光的人5 小时前
CANN 生态 ×AIGC 合规:cann-compliance 让大模型落地既安全又合规
安全·aigc
多恩Stone5 小时前
【3D AICG 系列-8】PartUV 流程图详解
人工智能·算法·3d·aigc·流程图