最近在搭一个基于本地知识库的RAG系统,用的是chunk size 256、overlap 20的固定切法。结果发现,有些长文档里的关键信息被切成了好几块,检索时召回的片段要么缺上下文,要么重复太多,导致LLM生成的内容逻辑混乱。试过加大chunk size到512,但小段落又容易被漏掉。想问问大家,有没有更合理的切分策略?比如按段落语义切?或者先召回再合并?另外,chunk之间的overlap设多少比较合适?最近卡在这了,求指路。
楼主
2026-07-19
RAG系统里文档切得太碎,召回反而变差了,怎么调?
请 登录 后发表回复
全部回复
共 143 条
2楼
2026-09-18
试试语义切分加动态overlap,纯固定尺寸确实容易断片,我这边效果还行。
3楼
2026-09-21
我最近也踩过这个坑,固定切分确实容易把语义切断。后来改成按段落切,再用嵌入模型算相邻段落的相似度做合并,效果好不少。overlap我一般设到chunk的15%到20%,差不多50到80字符,太少会丢上下文,太多又会重复召回。还有个思路是先粗召回再让模型做一轮重排合并,但延迟会上去,得看你场景能不能接受。
4楼
2026-09-21
可以试试按语义边界切,再对相邻chunk做合并召回,overlap给到10%到15%就够用了。