最近在用LangChain + Chroma搭一个RAG问答系统,文档量大概几千条。检索时发现similarity_search_with_score返回的分数范围很奇怪,有时候0.2分的内容看起来相关,有时候0.8分的反而答非所问。我试过卡阈值0.5,但效果很不稳定,要么召回太少,要么塞一堆噪声给LLM,回答质量反而下降。想问问大家在实际项目里是怎么处理这个相似度分数的?是直接top-k固定数量,还是动态阈值?还是说应该换个检索策略比如MMR?有点迷茫,求指点。
最近在用LangChain + Chroma搭一个RAG问答系统,文档量大概几千条。检索时发现similarity_search_with_score返回的分数范围很奇怪,有时候0.2分的内容看起来相关,有时候0.8分的反而答非所问。我试过卡阈值0.5,但效果很不稳定,要么召回太少,要么塞一堆噪声给LLM,回答质量反而下降。想问问大家在实际项目里是怎么处理这个相似度分数的?是直接top-k固定数量,还是动态阈值?还是说应该换个检索策略比如MMR?有点迷茫,求指点。
暂无回复,快来抢沙发吧