最近在做一个文档问答的RAG系统,用的bge-large-zh,chunk大小设的512,重叠50。测试时发现,用户问“合同违约金怎么算”,检索出来的片段经常是其他条款,甚至把整个合同的开头部分都排前面了。我试过调chunk大小到256,稍微好一点但命中率还是不稳定。也试过混合检索(BM25+向量),结果反而把一些不相关但关键词重合的段落拉上来了。想问下各位老哥,这种情况一般是chunk切分粒度的问题,还是说我的embedding模型对长文档的语义理解不够?换更贵的模型(比如text-embedding-3-large)提升会很明显吗?还是说应该先做一下query改写或者rerank?目前就我一个人在搞,有点没方向了,求指点。