最近在做一个RAG项目,用的Milvus存了大概50万条文档向量(OpenAI的1536维embedding)。目前测试下来,top-10召回率只有可怜的62%左右,但用余弦相似度直接暴力计算(numpy)能到85%以上。我确认了索引类型(IVF_FLAT)、nlist和nprobe都调过了,甚至试了HNSW,效果还是差一截。数据分布应该没问题,因为暴力检索的结果是准的。感觉是不是我哪里理解错了?比如参数设置和向量归一化是不是有关系?或者查询时是不是要加什么粗排精排的策略?有没有大佬遇到过类似情况,或者能分享下你们生产环境里的调优经验?另外,有没有必要上rerank模型?先谢过了。