返回 Bug 清单
BUG-0789project-66高已修复backend-logic

搜索质量评测不可复现 —— hash() 每进程随机化 + 仅 10 锚点

发现:2026-10-09验证:2026-10-31置信度:70%

症状

commit 22092722ceeb (2026-10-02) fix(craftforge): 搜索质量评测不可复现 —— hash() 每进程随机化 + 仅 10 锚点

根因

commit message 描述: fix(craftforge): 搜索质量评测不可复现 —— hash() 每进程随机化 + 仅 10 锚点

修复方案

修复 97 行,删除 44 行。改动文件: docs/指标可信度清单_20261002.md, scripts/craftforge_metric_audit.py, scripts/sbert_distill.py

错误签名

fix(craftforge): 搜索质量评测不可复现 —— hash() 每进程随机化 + 仅 10 锚点 【起因】上一轮指标审计把「Top-10 近邻一致率」判为可信,但它从 68% 掉到 53%
        —— 这是唯一一个动了的真指标,本轮追查其归因。

【🔴 找到评测本身的 bug】
  sbert_distill.py L464: anchor_idx = hash(q) % n
  ★ Python 的字符串 hash 【每进程随机化】(PYTHONHASHSEED 未固定)
    实测 3 个进程给出 3 组完全不同的 hash 值
  ⇒ 同一模型、同一数据、两次运行得到【不同】的重叠率
  ⇒ 指标不可复现;68% 与 53% 的差值可能只是换了评测锚点

【干净重测(2000 条抽样 · 现算教师编码 · 按 id 精确对齐 · 400 锚点)】
  seed=0  Top-10 重叠 = 47.3%  95%CI [45.1%, 49.5%]
  seed=1              = 47.1%  95%CI [45.0%, 49.3%]
  se

技术信息

来源项目

project-66

涉及文件

docs/指标可信度清单_20261002.md, scripts/craftforge_metric_audit.py, scripts/sbert_distill.py

标签

git-sweep, auto-ingested, project-66, mcp-reported, source-agent