项目中如何高效切分长文本适配大模型?

我现在处理长文档,最怕的不是模型“看不懂”,而是文本在进入模型前就被切坏了。合同条款切到一半、客服对话把用户问题和解决方案拆开,后面的检索再聪明也很难救回来。以前我图省事,按固定长度硬切,结果召回内容总像“差半句话”,看得人直挠头。

我后来把切分顺序改成了“先尊重语义,再控制长度”。先按章节、标题、段落做粗划分;段落太长时,再沿着句号、问号、分隔符这类自然边界细切。这样做的核心不是追求块越整齐越好看,而是让每个文本块都能独立表达一个相对完整的意思。

别把重叠当成浪费

相邻文本块保留一部分重叠内容,真的很有用。它像接力赛里的交接区:上一块没讲完的对象、条件或结论,可以被下一块接住。重叠太少,语义会断;重叠太多,又会让索引膨胀、检索结果重复。我一般不会先纠结具体数值,而是拿真实问题去试:用户的提问命中边界处信息时,答案是否还连贯。

用真实查询反推切分策略

切分没有万能模板。客服记录适合按轮次和话题切,法律合同更该保住条款、定义和例外条件,普通长文则优先维护章节与段落结构。最实用的办法,是先收集一批真实查询,看看召回的内容是不是完整、有没有跑题、关键依据是否总被切到隔壁块。

如果结果不理想,我通常先检查边界,而不是急着换模型或堆更复杂的索引。很多“模型回答不准”,根源其实只是文本块把一句关键限定语丢在了前一段。先把切分这道地基打稳,后面的向量检索、压缩和排序,才不会像在松土上盖楼。

参与讨论

0 条评论

延伸阅读