Langchain-Chatchat [BUG] 知识库匹配相关度阈值问题

fumotvh3  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(52)

配置文件中对于SCORE_THRESHOLD的描述是“score越小,相关度越高,取到2相当于不筛选”。
根据langchain的源码,检索时distance越小越相似是正确的,但在使用threshold进行过滤时,score是转换过的,比如faiss默认应该用了_euclidean_relevance_score_fn(),即:
1 - distance / sqrt(2)
因此,实际是SCORE_THRESHOLD阈值越高越严格。设为2.0时,日志中也打出了警告信息:No relevant docs were retrieved using the relevance score threshold 2.0,实际返回的知识库信息都是bm25的检索结果。

  • 版本:v0.3.x
  • 是否使用 Docker 部署:是,AutoDL 0.3.0版本镜像
  • 使用的模型:Qwen2-instruct
  • 使用的 Embedding 模型:bge-large-zh-v1.5
  • 使用的向量库类型: faiss
gv8xihay

gv8xihay1#

配置文件中对于SCORE_THRESHOLD的描述是“score越小,相关度越高,取到2相当于不筛选”。
根据langchain的源码,检索时distance越小越相似是正确的,但在使用threshold进行过滤时,score是转换过的,比如faiss默认应该用了_euclidean_relevance_score_fn(),即: 1 - distance / sqrt(2)
因此,实际是SCORE_THRESHOLD阈值越高越严格。设为2.0时,日志中也打出了警告信息:No relevant docs were retrieved using the relevance score threshold 2.0,实际返回的知识库信息都是bm25的检索结果。

  • 版本:v0.3.x
  • 是否使用 Docker 部署:是,AutoDL 0.3.0版本镜像
  • 使用的模型:Qwen2-instruct
  • 使用的 Embedding 模型:bge-large-zh-v1.5
  • 使用的向量库类型: faiss

我也遇到了和你一样的问题,向量根本没检索到,返回答案的时间特别长足足100秒,这到底是哪里的问题?

相关问题