跳到主内容

什么是语义分块?为什么切得对才检索得准

2026-10-06 发布 来源:我告诉你AI导航 阅读

搭知识库问答系统的人都有体会:把一本文档交给大模型前,头一件事是把它切成小块。切得好不好,直接决定后面检索准不准。语义分块就是按「讲一件事」的边界来切,不用固定字数硬切。

搭知识库问答系统的人都有体会:把一本文档交给大模型前,头一件事是把它切成小块。切得好不好,直接决定后面检索准不准。语义分块就是按「讲一件事」的边界来切,不用固定字数硬切。

为什么要切

检索的单位是「块」。模型不可能每次把整本书读一遍再回答,只能先找出相关的几块,再基于这几块作答。分块之后,每个块会被转成向量存进向量库,用户提问时再按相似度召回最相关的若干块。所以「块」是检索与生成之间传递信息的最小包裹。

一个可带走的判断:分块质量决定了召回的上下文质量,进而决定了答案质量。想理解「块」最终喂给了谁,可以先看什么是大语言模型。

切得不好会怎样

分块的坑主要有三种。切太碎,一句话被拦腰截断,检索到的内容缺主语、缺前提,单独看不懂;切太大,一块里塞了太多主题,检索命中后还得自己找重点;切断逻辑,把「结论」和「前提」分到两块,单独看哪块都不完整。这三种问题的共同点是:单个块脱离了完整语境后,无法独立成立。

两种切法

按长度切是简单粗暴的做法:按固定字数、句子数或段落数切。它快、成本低,但容易切断语义边界。按语义切则根据内容的主题变化来切,让每一块尽量只讲一件事,更准,但实现更复杂,通常要借助模型的语义判断。

两类切法的取舍没有标准答案,要结合内容形态和检索方式。下面的表把典型做法与问题对应起来。

切分方式优点风险
按固定字数切快、实现简单切断语义边界
按段落切尊重自然分段段落可能跨主题
按语义切每块讲一件事实现复杂、成本更高

常见的补救手段

即便选对了切法,边界处仍可能漏掉关键信息。常见补救有三招:重叠,让相邻两块之间留一部分重复内容,避免关键信息落在边界上;加标题,给每块带上所属章节的标题,让它在被单独检索出来时仍有上下文;保留层级,小块用于精确检索,大块用于提供背景。

其中「加标题」和「保留层级」本质上是给小块补充缺失的上下文,和前面讲的「切断逻辑」正好是相反方向的两件事:一个制造断裂,一个修复断裂。

它做不到什么

语义分块有明确的边界。它不负责理解内容的对错,只负责划分边界;如果原文本身结构混乱、一个段落里同时讲三件事,任何切法都救不回来。对于表格、代码、多轮对话这类非连续文本,语义边界更难判断,分块容易出错。

还有一类失效场景:切块质量再高,也弥补不了检索和生成环节的问题。分块解决的是「上下文完整」,如果向量召回本身不准,或者模型生成能力不足,切得再好也答不好。分块是链条里的一环,不能单独背起整条链的质量。边界判断依赖模型的语义理解能力,分块本身不具备这种能力。类似地,运镜词是怎么被模型理解的也说明,把自然表达映射成机器可执行的语义,靠的是模型而非切分规则。

速查

  • 检索单位是「块」,切错边界等于召回残缺上下文。
  • 两种切法:按长度切、按语义切。
  • 补救三招:重叠、加标题、保留层级。
  • 检验方法:随机挑几块单独看,能看懂才合格。

一个实用的检验方法

判断分块好不好,方法很朴素:随机挑几块,单独看它,能不能看懂。如果看不懂——缺主语、缺前提、被截断——那检索出来也没用。这个标准很直接,也最接近真实使用场景,因为检索召回的就是「单独的一块」。

分块是检索增强生成系统里最容易被忽略、又最影响效果的环节之一。当知识库问答效果不好时,先检查「切得对不对」,再考虑换模型。这和语音合成的文本前端做的事有相通之处:都是在上游把文本处理好,避免下游出错。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]