changelist-2026-06-02.md
9.58 KB
Changelist / 2026-06-02
本次补充交付(2026-06-02 15:09 UTC)
目标
把当前状态从“仍在稳定推进”升级为“已确认异常退出、需要排查”的交接包。
本次纳入交付的内容
| 类别 | 内容 |
|---|---|
| 证据 |
PID=431703 与 PID=424691 均已退出 |
| 状态 | observable 目录仍停在 chromaprint_progress.json + chromaprint.pkl
|
| 风险 | 没有 reference_*,没有 evaluate.py,没有明确 traceback |
| 文档 |
CHANGELOG、changelist、delivery handoff、session handoff、AGENT memory
|
文件级变更
| 文件 | 说明 |
|---|---|
| ./CHANGELOG.md | 补记 build-index 异常退出 checkpoint |
| ./delivery-handoff-2026-06-02.md | 顶部改写为异常排查接管包 |
| ./session-handoff.md | 顶部快照切到“进程已退出、无下游产物” |
| ../AGENT.md | 更新长期记忆,避免新 session 误判为仍在运行 |
当前最重要的 fresh evidence
- 观测时间:
2026-06-02 15:09:19 UTC -
ps -p 431703:无存活进程 -
ps -p 424691:无存活进程 -
pgrep -af 'run_demo.py build-index|evaluate.py ...':未发现接续进程 - observable 目录仅有:
chromaprint.pklchromaprint_progress.json
- 末次 progress:
status=buildingrefs_done=4420/8000
- 未出现:
reference_*evaluate.py
重要决策
- 当前已不应继续把它描述成“仅仅线性慢”。
- 下一轮工作应转向 build-index 异常退出排查。
- 新提交已经有意义,因为状态从“运行中”变成了“已退出且无下游产物”。
本次追加交付(2026-06-02 15:18 UTC)
新增代码修复
| 文件 | 变更 |
|---|---|
| ../acr-engine/run_demo.py |
build-index / demo 关键日志统一 flush=True
|
| ../acr-engine/src/engines/chromaprint_matcher.py | chromaprint 阶段 progress 日志 flush=True
|
| ../acr-engine/src/engines/ecapa_embedder.py | embedding/reference 阶段关键日志 flush=True
|
新增验证证据
- 极小样本复现:
/tmp/chroma_repro_tiny12 - 结果:
RC=1 - 现在日志已实时落盘,不再是
0 bytes:[build-index] starting chromaprint index ...[build-reference-index] start: refs=12 ...ValueError: No reference embeddings were produced ...
结论
- 当前已修复“失败时日志完全不可见”的可观测性问题。
- 下一轮 root cause 排查可以直接依赖实时日志,而不再需要盲等。
本次追加交付(2026-06-02 15:22 UTC)
新增代码修复
| 文件 | 变更 |
|---|---|
| ../acr-engine/src/engines/chromaprint_matcher.py | 坏音频/缺失音频跳过;progress 增加 skipped_refs
|
| ../acr-engine/src/engines/ecapa_embedder.py | 坏音频/缺失音频跳过;progress 增加 skipped_refs
|
新增验证证据
- 最小容错复现:
/tmp/chroma_skip_repro - 输入:
1 good mp3 + 1 bad mp3 - 结果:
RC=0 - 验证点:
- 日志可见
skip decode failure -
chromaprint_progress.json为status=complete -
reference_progress.json为status=complete - 两个 progress 文件都记录
skipped_refs=1 - 最终成功产出
reference_embs.npy/reference_ids.npy
- 日志可见
结论
- 当前已验证:单个坏 MP3 不再拖垮整轮
build-index。 - 下一轮应回到真实路径复现,确认主问题是否就是由坏 MP3 触发。
本次追加交付(2026-06-02 15:29 UTC)
新增运行证据
| 类别 | 内容 |
|---|---|
| rerun | fixed real-path 200-ref rerun 仍在前台运行:session 19709
|
| chromaprint |
200/200 完成,skipped_refs=0
|
| reference | 已进入 embedding/reference 阶段,并完成 25/200 checkpoint |
| 产物 | 已落盘 reference_progress.json、reference_embs.partial.npy、reference_ids.partial.npy
|
当前最重要的 fresh evidence
- 观测时间:
2026-06-02 15:29:17 UTC - 输出目录:
/tmp/fma_realpath_small_rerun_index2 -
chromaprint_progress.json:status=completerefs_done=200/200hashes=57577postings=187446skipped_refs=0
-
reference_progress.json:status=buildingrefs_done=25/200windows_done=256skipped_refs=0
- 已出现:
reference_embs.partial.npyreference_ids.partial.npy
结论
- 这次 fixed rerun 已经证明:修复后的真实路径样本不再卡死在 chromaprint 阶段。
- 当前最有价值的下一步,变为继续盯
reference_*完成或捕获新的明确失败证据。
本次追加交付(2026-06-02 15:35 UTC)
新增运行证据
| 类别 | 内容 |
|---|---|
| chromaprint |
200/200 完成,skipped_refs=0
|
| reference |
200/200 完成,windows_done=2068
|
| 产物 |
reference_embs.npy、reference_ids.npy 已完整落盘 |
| shape | embedding_shape=[2068, 192] |
当前最重要的 fresh evidence
- 观测时间:
2026-06-02 15:35:19 UTC - 输出目录:
/tmp/fma_realpath_small_rerun_index2 -
reference_progress.json:status=completerefs_done=200/200windows_done=2068embedding_shape=[2068, 192]skipped_refs=0
- 最终产物:
-
reference_embs.npy(1588352 bytes) -
reference_ids.npy(74576 bytes)
-
- stdout 明确出现:
Built reference index: 2068 windows, embeddings shape (2068, 192)[done] embedding index built: 2068 refs
结论
- 当前已确认:修复后的真实路径 rerun 不仅能进入 reference 阶段,而且能完整产出最终 embedding index。
- 下一轮最高价值工作应切到:评测链是否自动衔接,以及必要时补显式 evaluate smoke。
本次追加交付(2026-06-02 15:40 UTC)
新增运行证据
| 类别 | 内容 |
|---|---|
| evaluate | 显式 evaluate.py smoke 已完成 |
| query 规模 |
num_queries=35(overlap 中全部非 reference query) |
| 指标 |
top1=0.8571, topk=1.0
|
| by_type | clean: n=35, top1=0.8571, topk=1.0 |
当前最重要的 fresh evidence
- 观测时间:
2026-06-02 15:40:30 UTC - 结果文件:
/tmp/fma_realpath_small_rerun_eval/eval_top50.json - 评测结果:
split=testnum_queries=35top1=0.8571topk=1.0
- query 数说明:
- overlap test items =
235 - 非
referencequery =35 - 所以
--max-queries 50实际评到35条
- overlap test items =
结论
- 当前已不只是建索引成功,而是已经拿到首份真实路径
build-index -> evaluate闭环证据。 - 下一轮应把重点切到:更大评测规模与 hard case / confusion 评测。
本次追加交付(2026-06-02 15:43 UTC)
新增运行证据
| 类别 | 内容 |
|---|---|
| hard-case smoke |
synthetic_v2 + models_v6 + index_v6 显式评测完成 |
| 总体 |
num_queries=16, top1=0.6875, topk=1.0
|
| hard case |
humming_like top1=0.25, confused top1=0.0
|
| 结论 | 当前短板已明确落在 hard-case top1,而不是 clean/topk |
当前最重要的 fresh evidence
- 观测时间:
2026-06-02 15:43:17 UTC - 结果文件:
/tmp/synthetic_v2_eval_v6_top16.json - 评测结果:
top1=0.6875topk=1.0humming_like: n=4, top1=0.25, topk=1.0confused: n=1, top1=0.0, topk=1.0
- manifest 审计结果:
- real-path FMA external smoke 只有
cleanquery - synthetic_v2 才包含
augmented/humming_like/confused
- real-path FMA external smoke 只有
结论
- 当前已经不仅知道“系统能跑通”,还知道“最该优化哪里”:hard-case 的 top1。
- 下一轮更有价值的是围绕
humming_like/confused做输入层、切片、混淆增强与 hard negative 优化。
本次追加交付(2026-06-02 15:45 UTC)
新增运行证据
| 类别 | 内容 |
|---|---|
| baseline sweep |
v3~v6 已完成统一 hard-case sweep |
| 总体最佳 |
v6: top1=0.65, topk=0.95
|
| humming_like 最佳 |
v5: top1=0.5
|
| confused 最佳 |
v3 / v6: top1=0.25
|
当前最重要的 fresh evidence
- 观测时间:
2026-06-02 15:45:18 UTC - 汇总文件:
/tmp/synth_v2_baseline_sweep/summary.json - 统一评测集:
data/synthetic_v2 - 结果摘录:
-
v3: overall0.6/0.75, hard-casehum=0.0,conf=0.25 -
v4: overall0.4/0.8, hard-casehum=0.0,conf=0.0 -
v5: overall0.6/0.9, hard-casehum=0.5,conf=0.0 -
v6: overall0.65/0.95, hard-casehum=0.25,conf=0.25
-
结论
- 当前最合理的下一轮实验基线是
v6,因为总体最稳。 - 但
v5在humming_like上明显更强,值得做 targeted diff / 吸收。
本次追加交付(2026-06-02 15:46 UTC)
新增差异审计证据
| 类别 | 内容 |
|---|---|
| v5 来源 | type-aware hard-case weighting |
| v6 来源 | sample-level confused-priority weighting |
| 解释 |
v5 更利于 humming_like,v6 更利于 confused
|
| 决策 | 下一轮应做双轴 hard-case weighting / 分治,而不是单轴加权 |
当前最重要的 fresh evidence
-
docs/CHANGELOG.md:2954+:v6= sample-level confused-priority weighting -
docs/CHANGELOG.md:6805+:v5= type-aware hard-case weighting -
docs/sota-research-2026.md:113-114:-
v5:overall=0.60,humming_like=0.50,confused=0.00 -
v6:overall=0.65,humming_like=0.25,confused=0.25
-
结论
- 现在已经不仅知道
v5/v6哪个更强,还知道“为什么”。 - 下一轮应把
humming_like与confused分开建模或分开加权。