自己搭了个RAG问答系统,用的bge-large做embedding,faiss存向量,chunk大小设的512,重叠128。测试时发现一个问题:用户问“合同里违约金怎么算”,检索回来的top5里居然有三个chunk都是讲“合同变更”的,语义上看着沾边但就是不含违约金条款。我试过调低top_k、加MMR分散,甚至接了个bge-reranker重排,但答案还是不对。后来手动翻源文档,发现违约金条款其实散落在好几个不同章节里,每个chunk又都只截了一半。想请教下各位,这种跨章节信息是不是只能做父子chunk或者加摘要索引?还是说我的切分策略本身就不适合长文档?另外有没有比较实用的chunk大小调参经验,感觉网上说法太玄学了。