[Question]: Getting all 0 vector similarity in retrieval testing by adding a reranker model

该问题通常发生在 RAGFlow 检索测试中配置本地 reranker 模型(如 bge-reranker-v2-m3)后,所有 chunk 的向量相似度(实际为 reranking 分数)显示为 0。优先检查模型在后端配置中的注册名称是否与界面一致、Base URL 格式是否正确,并确认 rera

快速结论:该问题通常发生在 RAGFlow 检索测试中配置本地 reranker 模型(如 bge-reranker-v2-m3)后,所有 chunk 的向量相似度(实际为 reranking 分数)显示为 0。优先检查模型在后端配置中的注册名称是否与界面一致、Base URL 格式是否正确,并确认 reranker 是否真的被调用并返回有效分数。

适用环境:RAGFlow,本地部署的 reranker 模型(bge-reranker-v2-m3),通过 API 调用模型正常。Issue 未明确操作系统、Python、CUDA 或显卡版本。

最快修复方案:暂无确认的一步修复方案。可优先尝试:确认模型名称与后端配置完全一致(必要时添加 `___VLLM` 等后缀)、去除 Base URL 末尾斜杠并删除手动拼接的 `/rerank` 路径、重启 RAGFlow 后再次测试。

注意事项:上述方案部分仅为社区推测,尚未在 Issue 中逐一验证。若后端日志出现 `KeyError: ‘results’` 等解析错误,需检查 reranker 返回格式与 RAGFlow 解析逻辑的兼容性。

问题场景

用户在 RAGFlow 的检索测试(Retrieval Testing)中,添加了本地托管的 reranker 模型 bge-reranker-v2-m3。此时界面中所有 chunk 的向量相似度(理论上应显示 reranking 分数)全部变为 0。用户已确认通过 API 直接调用该模型时工作正常,因此怀疑是 RAGFlow 配置或代码层面的问题。用户同时设置关键词相似度权重为 0.7,混合相似度计算为 `0.7 * 20 + 0.3 * 0`,即关键词部分正常,rerank 部分贡献为 0。

报错原文

[Question]: Getting all 0 vector similarity in retrieval testing by adding a reranker model
0 vector similarity (I assume this should be reranking score based on the instruction below) for all chunks
0.7 * 20 + 0.3 * 0 = 14 hybrid similarity

原因分析

可能原因包括:

  • 模型注册与名称不一致:reranker 模型在后端配置中的注册名称与界面下拉框显示的名称不一致。对于 VLLM 部署,API 调用时应使用 rerank_model 键而非 rerank_id(后者用于 Xinference)。有时需要在模型名称后添加供应商后缀(如 ___VLLM)才能正确解析。
  • Base URL 格式问题:Base URL 末尾多余斜杠,或手动拼接了 /rerank 路径(RAGFlow 会自动追加),可能导致请求失败或返回异常。部分情况下去除 http:// 前缀、直接使用 hostname:port 可解决。
  • 代码兼容性问题:近期的代码变更调整了 reranker 模型构造函数(接受 **kwargs)和分数归一化逻辑(见 PR #9252、PR #8936)。如果自定义部署未适配这些变更,可能导致分数计算异常。
  • 后端解析失败:后端日志中可能出现 KeyError: 'results',表示 RAGFlow 解析 reranker 响应时未找到预期字段,导致所有分数为 0。

环境排查

  • 确认 RAGFlow 后端配置中 reranker 模型的注册名称(区分大小写),与界面下拉框显示的名称完全一致。
  • 确认 Base URL 格式:不应包含尾部斜杠,不应手动添加 /rerank 路径。
  • 检查 VLLM 部署时 API 调用参数键名是否为 rerank_model(而非 rerank_id)。
  • 查看后端日志,确认 reranker 被调用时是否有报错或警告(如 KeyError: 'results')。
  • 核对当前 RAGFlow 版本是否包含 PR #9252、PR #8936 的变更,评估与自定义模型的兼容性。
  • 确认关键词相似度权重与向量/重排权重的设置是否合理。

解决步骤

  1. 在后端配置中重新核对并注册 reranker 模型,确保名称与界面完全一致;若为 VLLM 部署,尝试在名称后添加供应商后缀(如 ___VLLM)。
  2. 检查并修正 Base URL:删除末尾斜杠,去掉手动添加的 /rerank 路径;若使用 http:// 前缀导致请求异常,尝试改用纯 hostname:port 格式。
  3. 重启 RAGFlow 服务,使配置生效,然后重新进入检索测试界面测试。
  4. 查看后端日志,确认 reranker 请求是否成功发送并收到响应;若出现 KeyError: 'results',检查 reranker 返回的 JSON 结构是否包含 RAGFlow 期望的字段。
  5. 若以上步骤无效,检查当前 RAGFlow 版本与 reranker 模型代码的兼容性,必要时调整自定义模型代码以适配最近的构造函数和归一化逻辑变更。
  6. 确认检索测试中的权重设置,确保 rerank 分数被正确纳入混合相似度计算。

验证方法

在 RAGFlow 检索测试界面重新运行测试,观察所有 chunk 的向量相似度(reranking 分数)是否不再为 0,且混合相似度数值符合权重公式预期(如关键词 0.7、rerank 0.3 的计算结果)。同时检查后端日志确认 reranker 请求和响应处理均无报错。

参考来源

infiniflow/ragflow #9388

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18787

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注