返回 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