首页 > 其他分享 >LLM大模型: RAG的上下文语义retrieval — RAPTOR

LLM大模型: RAG的上下文语义retrieval — RAPTOR

时间:2024-07-04 15:01:22浏览次数:16  
标签:检索 RAG chunk 节点 cluster LLM 聚类 retrieval RAPTOR

  1、RAG有很多优点,但是缺点也很明显,其中一个硬伤就是:只会“断章取义”!如果文本有明确的答案,现有的retrieve方式大概率能找到,但是如果文本没有明确的答案了?比如android逆向和windows逆向,哪个更有钱途?很多资料会介绍android逆向、windows逆向的原理和技术细节,但是没有哪个更有钱途的对比说明,这种总结性的问题怎么准确地回答了?这类问题的答案并不在某个特定的chunk中,要回答这类问题,可能要遍历很多个chunk(甚至要跨文本检索不连续的、主题分散的chunk),然后总结、提炼和归纳,这又该怎么查找了?

  问题1:文本内部可能有多个细分主题,并且散落在不同的段落;甚至有些细分主题还散落在不同的文本中,为了高效准确检索,肯定要把属于同样细分语义主题的token聚在一起,才能精准检索

  问题2:经过上面步骤,把散落的token按照细分主题聚集后,怎么高效检索?

  2、Stanford 2024.1月份发了篇论文:https://arxiv.org/pdf/2401.18059  提出了一种算法:RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL,处理的算法流程如下:

  • chunk:按照固定长度切分,每个chunk size = 100,简单粗暴!然后使用合适的embedding模型对每个chunk计算embedding。这一步得到了所有的叶节点。
  • 递归构建 RAPTOR 树:
    • 按照语义对chunk做聚类,形成多个cluster
    • 利用LLM给每个cluster内的文本生成摘要总结,并为对总结也生成 embedding,作为树的非叶节点;越接近root节点,语义越精简;
  • 检索retrieve,查询和query相关的cluster,有两种方式:
    • Tree Traversal Retrieval:从根级节点开始,基于向量相似性与父子关系,进行逐层向下检索,最后检索出全部相关的节点文档,作为最终输出的相关文档。(思路有点类似lanchain的ParentDocumentRetriever)
    • Collapsed Tree Retrieval:将树展开单层,然后直接对所有文档节点进行向量相似性检索,检索出所有的相关节点文档
    • 不论哪种retrieve方式,核心的要点就是:既召回了颗粒度大、概括性的chunk,又召回了颗粒度小、体现小细节的chunk!

   RAPTOR 树构建流程图示如下:

   

  RAPTOR 树查询流程:

    

   从作者实验的结果来看,貌似第二种collapsed tree retrieval效果更好,我猜测可能是因为第二种方式遍历每个节点,不会遗漏:

         

     3、作者用了BLEU (B-1, B-4), ROUGE (R-L), and METEOR (M) metrics等方法,测试了很多数据集,效果都还不错(效果不好可能也不会发出来了)

    传统的retrieve方式效果不如联合PARTOR后的retrieve:

        

     

  4、整个流程和原理很简单,没啥突出的新意,最大的亮点应该是聚类了!聚类效果好了,相当于语义提取地好,本质和sematic chunk是一样的【和sematic chunk相比,RAPTOR对每个cluster提取了摘要,对语义进一步做了抽象和总结】!这里聚类采用的是GMM高斯混合模型,每个样本都有一定的概率被划分到不同的cluster,实现了软聚类的效果,这一点非常符合业务直觉 : "我感到骄傲",这句话可能是褒义,也可能是贬义,所以以不同的概率被划分到不同的cluster是符合业务规律的!整个聚类的过程如下:

  • 数据降维:使用UMAP将高维数据降维到低维空间,便于后续处理和聚类
  • 初步聚类:在降维后的数据上应用初步聚类算法,生成初始聚类结果
  • 细化聚类:使用高斯混合模型(GMM)对每个cluster进行细化聚类,估计各子类的高斯分布参数
  • 参数选择:
    • 使用BIC选择最优的GMM模型,包括确定最优的cluster数量和参数估计
    • 计算不同cluster数量下的BIC值,选择BIC值最小的模型作为最终的聚类模型。

5、RAPTOR方案的优点总结

  • 在不同层次、不同颗粒度的多个级别上构建了语义表示并实施嵌入,粗细颗粒度都能匹配,提高了检索的召回能力
  • 可以有效且高效的回答不同层次的问题,有的问题在低阶叶子节点解决,有的则由高阶非叶子节点完成
  • 适合需要多个文档的理解才能回答的输入问题,因此对于综合性的问题有更好的支持

 

参考:

1、https://arxiv.org/pdf/2401.18059

2、https://blog.csdn.net/star1210644725/article/details/136241523   RAG中如何解决上下文知识连贯性问题 || 如何更好的切分和组织非结构化的文档数据

3、https://cloud.tencent.com/developer/article/2423159  文档树:如何提升长上下文、非连续文档、跨文档主题时的检索效果

4、https://www.cnblogs.com/gzyatcnblogs/p/18011582   RAPTOR:递归摘要与树形检索的结合,提升RAG检索性能

5、https://mp.weixin.qq.com/s/KqJt4-Yhab5chi8YJglMiw  长文本的高效处理:RAPTOR 检索技术及其在 RAG 中的应用

6、https://github.com/parthsarthi03/raptor/blob/master/raptor/cluster_tree_builder.py   raptor的官方实现

标签:检索,RAG,chunk,节点,cluster,LLM,聚类,retrieval,RAPTOR
From: https://www.cnblogs.com/theseventhson/p/18281227

相关文章

  • RAG 案框架(Qanything、RAGFlow、FastGPT、智谱RAG)对比
    各家的技术方案有道的QAnything亮点在:rerankRAGFLow亮点在:数据处理+index智谱AI亮点在文档解析、切片、query改写及recall模型的微调FastGPT优点:灵活性更高下面分别按照模块比较各框架的却别功能模块QAnythingRAGFLowFastGPT智谱AI知识处理模块pdf文件解析是......
  • LLM应用:推荐系统
    随着信息的不断丰富,搜索和推荐成为了我们日常最长用到的两个功能,搜索是用户主动发起的信息查找需求,推荐则是平台根据用户标签/行为或用户query推荐给用户信息,用户是被动消费内容。比如在百度上搜索“周杰伦”时,搜索结果会给你推荐“大家都在搜”和“相关推荐”的query;再比如在......
  • WPF AllowsTransparency DragMove
     //xaml<Windowx:Class="WpfApp191.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas......
  • CVD-Risk-Prevent 个性化心血管健康推荐系统:基于医学指南的规则框架与 LLM 的结合
    CVD-Risk-Prevent个性化心血管健康推荐系统:基于医学指南的规则框架与LLM的结合提出背景推荐算法的选择选择疑问健康指标管理心血管风险因素目标设定实现目标的计划推荐的多维性算法关键点:如何将心血管健康指标转换为多维推荐?确定风险因素和类别生成多维推荐CVD-Ri......
  • Activity和Fragment有什么区别
     Activity和Fragment是Android应用开发中两个非常重要的组件,它们都有各自的生命周期方法,包括onCreate。然而,它们有一些关键的区别:Activity独立性:Activity是一个独立的、可直接启动的组件。它通常代表应用的一个单一屏幕(界面)。生命周期:Activity有自己的完整生命周期......
  • 【LLM大模型】一本书通关LLM大模型!成功通关大模型,看这本书足够了... (附PDF)
    哈喽大家好!最近有粉丝朋友喊我推荐一些大模型的学习书籍,我给大家推荐这么一本书,基于gbt3、gbt4等transform架构的自然语言处理。这是一本对transform工作原理感兴趣的人必读的书籍。亚马逊的评分是九点七分,内行人在睡不着的时候恨不得把全书都背诵完毕。本书的写作目的是......
  • 2024爆火全网的LLM大语言模型黑书!入门大模型大家全都在学~(附pdf)
    今天给大家推荐一本4月份才新出的大型语言模型(LLM)的权威教程《基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理》!Google工程总监AntonioGulli作序,一堆大佬推荐!这含金量不用多说,不多bb开始介绍!本教程内容主要内容•了解用于解决复杂语言问题的新技术•将GP......
  • 深度学习与NLP | 全面回顾最先进:AI大模型+RAG的综述!
    本文来源公众号“深度学习与NLP”,仅用于学术分享,侵权删,干货满满。原文链接:全面回顾最先进:AI大模型+RAG的综述!1 介绍本文全面回顾了当前最先进的RAG技术,包括朴素RAG、进阶RAG和模块RAG等范式,并置于LLM背景下。文章讨论了RAG过程中的核心技术,如“检索”、“生成”和“增强”......
  • LLM大模型: RAG的最优chunk方法 — 利用本地离线LLM的embedding实现Semantic Chunking
     1、RAG整个流程的核心节点如下:第一个重要的节点就是chunk。chunk最核心的目的就是把相同语义的token聚集在一起,不同语义的token互相分开,利于后续的retrieve和rerank。举个例子:今天天气很好,我和小明在一起打篮球。隔壁老王在家里看电视。小明的妈妈在家里做晚饭,晚上我......
  • LLM大语言模型知识点整理
    大模型知识点总结1.基础概念1.1大模型定义大模型(LargeModel)通常指参数量级达到数亿甚至数千亿的深度学习模型。这些模型通常基于Transformer架构,如GPT、BERT等。1.2常见大模型GPT系列(GenerativePre-trainedTransformer)BERT(BidirectionalEncoderRepresentations......