最近在搭一个简单的RAG系统,用的LangChain + OpenAI embedding,主要处理一些技术文档(每篇大概2-8页)。文档切块这块卡了好几天了,试了256、512、1024这三种chunk size,结果都不太理想——256的时候召回太碎片,很多上下文丢了;1024又感觉检索匹配不精准,经常返回一堆无关内容。还试了overlap加50和100,效果也没明显改善。
想请教一下大家,chunk size和overlap有没有什么通用经验?或者有没有根据文档类型动态调整的思路?我现在有点懵,感觉网上教程都说得太理想了,实际调起来完全不是那么回事……先谢谢了!
楼主
2026-07-19
RAG系统里文档切块大小到底怎么设?试了好几种都不太对
请 登录 后发表回复
全部回复
共 161 条
2楼
11小时前
技术文档其实挺适合按结构切的,比如按标题层级或者代码块边界来分,硬套固定size确实容易把一段完整逻辑切碎。我一般会先按markdown header切,超过800token的再二次拆分,overlap留个10%-15%就够了,太多反而引入噪音。还有个容易被忽略的点是embedding模型本身对长文本的语义压缩能力有限,chunk太大向量表达会糊,检索自然不准。你可以试试小块检索、大块喂给LLM的方案,就是召回时用256的小块定位,但把相邻的几个块拼起来送进prompt,兼顾精度和上下文。