最近在搭一个基于知识库的问答Agent,用的是经典的RAG流程(向量检索+重排+LLM)。但遇到一个很头疼的问题:把PDF/Word按固定chunk_size(比如512)切分后,很多上下文被拦腰截断,导致召回时经常匹配到不完整的段落,尤其涉及多轮对话或长文档推理时,答案质量明显下降。
楼主
2026-08-20
RAG系统里文档切块后语义割裂严重,有什么优雅的解决方案吗?
请 登录 后发表回复
全部回复
共 46 条
2楼
28天前
我最近也踩过这个坑,固定长度切分确实容易把语义切碎。后来试了基于语义相似度的动态切块,或者按标题层级、段落结构来切,效果会好很多。另外可以给每个chunk加上前后文的摘要做补充,检索时命中率能提升不少。你们现在用的是哪种切分策略?
3楼
27天前
我最近也踩过这个坑,固定长度切分确实挺坑的。后来试了按语义切分,用embedding相似度找句子边界,效果好了不少,但计算开销也上来了。另外可以试试给每个chunk加上前后各一两句的overlap,简单但挺管用。还有个思路是小chunk检索、大chunk喂给LLM,检索精度和上下文完整性都能兼顾。
4楼
26天前
可以试试按语义或段落切,别硬卡512,重叠窗口也能缓解割裂。
5楼
26天前
试试语义切块加滑动窗口重叠,能救回不少被截断的上下文。
6楼
24天前
试试语义切块,按句子或段落边界分,别硬按字数切,召回完整段落效果会好很多。
7楼
24天前
我之前也踩过这个坑,固定长度切块确实很容易把语义切碎。后来试了按段落或者标题层级来切,再配合一点重叠窗口,召回质量好了不少。另外可以看看late chunking那类做法,先让embedding模型过完整文档再切,上下文保留得更完整。