SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

把长文本切成块的大家族和其中按固定步长滑着切的那一种

分块是一个大类——固定长度切、按段落切、按语义边界切、滑动窗口切,只要把长文本切成若干小块都属于分块。滑动窗口分块是具体的子策略:窗口长度固定、步长固定,相邻块之间有重叠。把滑动窗口当成所有分块方法,会丢掉按语义边界切的好处;把按段落切当成滑动窗口,边界处会漏掉过渡信息。选什么刀法,要看材料和用途。

寓言

年糕铺里不止一把刀:推着切只是其中一种手法

年糕铺的老周是镇上公认的好刀工。他切年糕有三套手法。直刀切——一条年糕一刀一刀等宽切到底。绕馅切——顺着年糕里的红枣和蜜豆位置下刀,每块大小不均但每块包住一个完整的馅。推窗切——先切一块一寸长,往后挪半厘米再切下一块,块和块之间有重叠。

有个饭店订年糕做汤底,要求每碗两块、每块能挂住汤里的肉末和蘑菇。老周先试了绕馅切——每块包住了红枣,形最好看,但枣子在汤里一煮全散,捞出来剩糯米皮。饭店说味道不对。换了推窗切——每块有重叠面,肉末蘑菇挂在重叠处,汤喝起来浓。但出锅一看,每块等长,摆盘单调。

老周慢慢按订单分刀法。甜年糕——糖水泡的,要颜色和馅的完整,用绕馅切。咸汤年糕——底料挂块,要保证重叠面接住汤料,用推窗切。年糕拼盘——要整齐好看、摞着不塌,用直刀切。三种刀法都是切年糕,但下锅之后的命完全不同。

有次学徒把推窗切当成唯一的切法。遇到一块蜜枣年糕,一尺长的糕里只有三颗枣,学徒照推窗切。两颗枣落在重叠区,出锅后枣肉被反复加热散了架;另一颗被切成两半,渣滓混进汤底。老周让学徒把那块糕重切成绕馅切——顺着三颗枣各切一块,块有大有小但枣完好。

另一种错配发生在浆米糕上——糯米和粘米混合蒸的糕,质地松。学徒按推窗切,相邻块重叠面太多,下锅后全粘成了一坨。老周说这种糕要用直刀切,一刀切断不回头。

饭店主厨后来下单前会先讲用途。老周根据用途报刀法——甜还是咸、摆盘还是挂料、糕硬还是松。推窗切成了老周工具箱里最亮的一把刀,但不是唯一的一把。

年底老周给学徒总结:分块是一个门把手,推窗切是其中一把快刀。糕点硬的用刀,软的用手;有馅的绕着走,没馅的直着下。进门就问怎么用推窗切所有年糕的,先让他煮一百斤米。

分块

将长文本切分为若干短文本块的通用策略大类。包含固定长度切分、按段落切分、按语义边界切分、滑动窗口切分等多种子方法,选型取决于下游任务对块边界和块完整性的具体需求。

滑动窗口分块

分块的一种具体策略——固定窗口长度和步长,相邻块之间有重叠区域。优势是块间信息连续性强,适合需要保持上下文衔接的场景,但块可能切断语义单元,重叠也带来额外的存储和处理开销。

故事对应

  • 老周的年糕铺:分块策略的统一入口,刀法多种
  • 直刀切:固定长度分块,不考虑内容和语义边界
  • 绕馅切:按语义边界分块,保内容单元的完整性
  • 推窗切:滑动窗口分块,固定窗口和步长,块间有重叠
  • 学徒用推窗切蜜枣糕:把滑动窗口当成唯一方法的典型错误
  • 浆米糕推窗切全粘住了:材料质地不适合重叠策略,需要换刀法

落到 RAG 系统分块策略选型

一般文档用固定长度分块加段落边界修正就够了。需要保持段落语义完整性的法律和合同文本按语义边界分块。需要跨块边界做推理的技术文档用滑动窗口分块保证上下文衔接。不要上来就默认滑动窗口——先看清文档结构和下游检索需求,再定窗口长度和重叠率。重叠率高了确实能减少断句错误,但每多一寸重叠就多吃一块存储和推理预算,在百万级文档库上这个差距会放大。