chatchat-space / Langchain-Chatchat

Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain
Apache License 2.0
32.26k stars 5.6k forks source link

[BUG] 新版本地知识库搜索算法有问题 #4416

Open xqxls opened 5 months ago

xqxls commented 5 months ago

新版langchain-chatchat的本地知识库搜索算法有问题,同样的搜索条件,我用老版的余弦相似度算法拿到的切片相似度还可以,但是新版bm25+向量库检索的方式,感觉搜索到的切片相关度比较低,而且只有bm25有效果,将ensemble切换到vectorstore,直接搜索不出来

kwunhang commented 4 months ago

I think probably due to score_threshold config?

umbraclet16 commented 4 months ago

我试了下ensemble换成vectorstore后,score_threshold越大返回的条目越少。

eric1932 commented 4 months ago

我这边的测试结果是 相同的文档库和 embedding 模型,分别使用不同的数据库初始化(faiss/milvus/es) 得到的搜索质量 faiss >> milvus = es 看代码只有 faiss 用到 bm25,其它两个 db 都没用到,感觉算法有问题 不知道和楼上说的有没有关系

powerbuildre commented 4 months ago

我的也是,0.3.1.3版本,本地向量数据库大约不到50M,但是每次回答都得10秒以上。不用知识库几乎秒回答。不懂和faiss-cpu是否有关,我看网上有faiss-gpu版本的,奈何我试过直接报错。

Sn-HIT commented 3 months ago

我也发现这个问题了,提了一个类似的bug #4844。现象是:同一个向量库,用新版本的知识库检索算法的效果差很多,首字母从大写变为小写后就搜不到了。就算把把bm25的权重改为1,检索效果也不好。看了源码,新老版本在初始BM25实例时对text的预处理不一样。具体哪里的问题,还要进一步分析。另外,后续还要比对一下关键字检索和向量匹配的效果