正文
切分chunk策略
名词解释——证据:
在 RAG 的上下文中,“证据”指的是知识库中能够直接或间接支持回答用户查询的关键信息片段。
个人理解:就是一大段特别长的chunk中,用于回答问题的那几个关键词、关键句。
名词解释—— 证据被拦腰截断 :
这是由不合适的切分策略导致的问题,指的是一个完整的、语义连贯的关键证据,由于切分边界的不合理设置,被硬生生地分割到了两个或多个相邻的切块中。
名词解释—— 稀疏证据 QA :
稀疏证据QA是RAG系统中面临的一种难以解决情景挑战。这表示支撑完整答案所需的证据在知识库中被分散、稀疏地存储在多个不相邻的切块(Chunk)中。
个人理解:某个问题,需要用到多个chunk的内容进行回答,单独使用某一个chunk是稀疏、不完整的。
例如,Q : “珠穆朗玛峰的高度是多少,并且告诉我第一个攀登者是谁?”
chunk1: 珠穆朗玛峰的高度是xxxx米。 chunk2:第一个攀登者是xxx。
名词解释—— 多层级语义树 :
指的是一种用于文档切分(Chunking)和索引的分层结构模型。它的核心目的是通过构建文档的逻辑和语义层次,来解决传统固定大小切分方法导致的上下文丢失和证据截断问题。
通常由根节点、父节点、子节点这样的层级组成。
- 根节点 / 全局摘要:整个文档(如整份计划书)的简短概括。
- 父节点 / 章节摘要:文档中特定章节或主题的完整段落或摘要。
- 子节点 / 细节切块(与向量化的Query最初匹配):构成第二层父节点(章节)的原始、细小的文本切块,包含具体数据和论点。
个人理解:
- 使用多层级语义树的方式构建chunk,并进行检索召回的RAG策略是一种比较复杂、高级的RAG技术。和GraphRAG一样,都是用于解决上下文丢失、复杂多跳问题的RAG技术。
- GraphRAG解决复杂问题是通过找到指定实体,返回该实体连接的关系、属性,以获取与该实体相关的全部信息。
- 多层级语义树,则是通过找到粒度最细的子节点,逐个获取其兄弟节点或父节点。其父节点可能包含着全部相关信息,从而避免证据稀疏问题。
名词解释—— 层次漂移:
层次漂移指 RAG 系统在切分和检索时,打破了文档原始的逻辑结构和语义层次,导致检索到的切块(Chunk)虽然在向量空间上可能相似,但在文档的实际逻辑中却是错位、不连贯的。
举例说明:
原文:一、第一章LLM原理 LLM是基于Transformer架构的大规模参数的深度学习模型,具有极强的泛化性,在各项任务中都替代了传统NLP模型。 二、第二章 LLM应用案例 浦发银行应用LLM改善了其原始客服助手,性能得到明显提高。 三、第三章 LLM劣势 LLM虽然具有很强的能力,但极度依赖GPU资源,而GPU资源又是非常昂贵的,导致很多企业没有办法自己部署,只能购买云资源,这使得其数据安全性得不到保障。
chunk1:一、第一章 LLM原理 LLM是基于Transformer架构的大规模参数的深度学习模型,具有极强的泛化性,在各项任务中都替代了传统NLP模型。 二、第二章 LLM应用案例 浦发银行应用LLM改善了其原始客服助手,性能得到明显提高。
chunk2:三、第三章 LLM劣势 LLM虽然具有很强的能力,但极度依赖GPU资源,而GPU资源又是非常昂贵的,导致很多企业没有办法自己部署,只能购买云资源,这使得其数据安全性得不到保障。
个人理解:
层次漂移就是某些结构化/半结构化文档,由于切块策略限制,在某个chunk中,插入与其他语句完全不相关的内容。这会导致的问题:
- 当询问LLM原理的Query时,在后续与chunk1进行 向量相似度匹配时,可能会因为chunk1中包含了部分LLM应用案例信息,而导致语义不聚焦,进而影响相似度分数,导致漏检。
- 如果chunk1被召回, LLM 必须处理一个逻辑混乱的上下文,增加了幻觉(Hallucination)或回答不完整的风险。