Commit 0d40b05c 0d40b05c42e1ec04ee3b34f5bc10aa90cd7ed652 by cnb.bofCdSsphPA

Preserve restartable delivery state before the long benchmark finishes

Constraint: The cap48 seed=999 benchmark is still running, so this checkpoint must avoid unverified algorithm conclusions
Rejected: Wait for the CPU benchmark to finish | Would delay handoff and leave the next session without a clean restart package
Confidence: high
Scope-risk: narrow
Directive: Keep future doc-only checkpoints surgically staged and do not add data/raw, external_smoke, /tmp outputs, or model artifacts
Tested: Verified staged diff only includes AGENT memory, handoff, changelog, and changelist docs; confirmed /tmp cap48 seed=999 report is not ready yet
Not-tested: The in-flight cap48 seed=999 benchmark result and any follow-up aggregate metrics
1 parent ae0d14a5
1 # AGENT Memory / 开发续跑记忆
2
3 > 更新:2026-06-02
4 > 目的:让新 session 在 1~3 分钟内接上当前开发节奏。
5
6 ## 1. 用户长期偏好
7
8 - 默认使用中文输出。
9 - 尽量自主推进,不要频繁停下来询问。
10 - 每完成一个阶段性 checklist:
11 1. 更新 `docs/CHANGELOG.md`
12 2. `git commit`
13 3. `git push origin main`
14 - Python 固定使用:`/usr/local/miniconda3/bin/python`
15 - 文档优先级:图 > 表 > 文字 > 细节附录。
16 - 文档要浓缩分类,避免同层级文档过多。
17 - 外部/内部文档链接优先使用相对路径跳转,不要只用反引号包裹地址。
18 - 严禁误提交大体积数据、训练产物、`/tmp` 结果、`__pycache__`
19
20 ## 2. 当前项目主线
21
22 这是一个正在工业化的音乐 ACR / 检索项目,主线是:
23 - 开放数据集接入
24 - 音频切片策略优化
25 - 训练 / 建索引 / 评测闭环
26 - 准确率与混淆鲁棒性提升
27 - 文档与交接体系完善
28
29 ## 3. 当前已完成重点
30
31 - 已实现多种切片策略:
32 - `random`
33 - `silence_aware`
34 - `high_energy`
35 - `onset_aware`
36 - `beat_aware`
37 - `repeated_section_aware`
38 - `hybrid`
39 - 已实现公平评测控制:
40 - `evaluate.py --max-queries --seed`
41 - `smoke-local --max-test-queries`
42 - `scripts/ab_smoke_segmentation.py --max-test-queries`
43 - 已补强数据规范、pgvector 指南、FMA/开放数据工作流文档。
44
45 ## 4. 当前经验结论
46
47 - 小样本真实 FMA smoke 下,多策略都可能接近满分,不能据此定默认策略。
48 - cap48 规模下结果对 seed 敏感。
49 - 当前已知两轮 cap48 聚合里:
50 - `high_energy` 稳定性更强
51 - `hybrid` 上限更高但波动更大
52 - 默认策略决策应基于 multi-seed aggregate,而不是单次跑分。
53
54 ## 5. 当前续跑优先级
55
56 1. 完成/确认 `cap48 top2 seed=999` 结果。
57 2. 汇总 3-seed aggregate。
58 3. 更新:
59 - `docs/open-dataset-workflow.md`
60 - `docs/session-handoff.md`
61 - `docs/CHANGELOG.md`
62 4. 提交并推送。
63 5. 下一轮再推进:
64 - cap64 benchmark
65 - bucket/style-aware benchmark
66 - 工业级 hard negative / confusion 集设计
67
68 ## 6. 高风险注意事项
69
70 - `git status` 中通常会有大量:
71 - `acr-engine/data/raw/...`
72 - `acr-engine/data/external_smoke/...`
73 - 模型 checkpoint
74 - `__pycache__`
75 - 提交时必须显式 `git add` 目标文档文件,不能使用宽泛全量暂存。
76
77 ## 7. 关键文档入口
78
79 - `docs/README.md`
80 - `docs/open-dataset-workflow.md`
81 - `docs/dataset-spec.md`
82 - `docs/training-data-and-pgvector-guide.md`
83 - `docs/session-handoff.md`
84 - `docs/CHANGELOG.md`
85
1 ## 2026-06-02 交付检查点:handoff / changelist / agent memory
2
3 完成项:
4 - 新增根目录 `AGENT.md`,固化当前开发偏好、提交习惯、续跑优先级与避坑约束。
5 - 新增 `docs/changelist-2026-06-02.md`,用于本次交付文件级变更说明。
6 - 新增 `docs/delivery-handoff-2026-06-02.md`,用于新 session 快速接管。
7 - 补充 `docs/session-handoff.md`:明确当前卡点、运行中的 benchmark、下一步命令与禁止误提交项。
8
9 当前卡点:
10 - `cap48 top2 seed=999` benchmark 仍在运行中,尚未产出最终 `report.json`
11 - 仓库存在大量未跟踪数据与模型产物,当前阶段只适合提交文档。
12
13 交付说明:
14 - 本次提交以“可续跑交接”为目标,不等待长时 CPU benchmark 完成。
15 - 下一 session 进入后应优先检查:
16 - `/tmp/ab_smoke_seg_cap48_top2_seed999/report.json`
17 - 相关 `eval.json`
18 - 进程是否仍在运行
19
1 # Changelog 20 # Changelog
2 21
3 ## 2026-06-02 22 ## 2026-06-02
......
1 # Changelist / 2026-06-02
2
3 ## 本次交付目标
4
5 在不等待长时间 benchmark 完成的前提下,交付一套足够完整的续跑文档,让新 session 能立刻知道:
6 - 已完成什么
7 - 正在卡在哪里
8 - 下一步跑什么
9 - 哪些文件能提,哪些不能提
10
11 ## 文件级变更
12
13 | 文件 | 变更说明 |
14 |---|---|
15 | [../AGENT.md](../AGENT.md) | 新增开发偏好与续跑记忆 |
16 | [./session-handoff.md](./session-handoff.md) | 增补当前卡点、待办与续跑命令 |
17 | [./delivery-handoff-2026-06-02.md](./delivery-handoff-2026-06-02.md) | 新增快速接管摘要 |
18 | [./CHANGELOG.md](./CHANGELOG.md) | 记录本次交付检查点 |
19
20 ## 不在本次提交中的内容
21
22 - FMA / MTG-Jamendo 原始数据
23 - `data/external_smoke` 中的音频与模型产物
24 - `/tmp` benchmark 输出
25 - `__pycache__`
26 - checkpoint / index 目录
27
28 ## 当前运行中的任务
29
30 - `cap48 top2 seed=999`
31 - 启动命令:
32
33 ```bash
34 cd /workspace/acr-engine
35 /usr/local/miniconda3/bin/python scripts/ab_smoke_segmentation.py \
36 --dataset fma \
37 --input-dir data/raw/fma_small_audio \
38 --work-root /tmp/ab_smoke_seg_cap48_top2_seed999 \
39 --subset-size 48 \
40 --query-duration 8 \
41 --train-epochs 1 \
42 --batch-size 2 \
43 --device cpu \
44 --strategies hybrid high_energy \
45 --max-test-queries 24 \
46 --seed 999 \
47 --output-json /tmp/ab_smoke_seg_cap48_top2_seed999/report.json
48 ```
49
50 ## 下一步建议
51
52 1. 检查 `seed=999` 是否完成。
53 2. 生成 3-seed aggregate。
54 3. 回写 workflow / handoff / changelog。
55 4. 提交推送。
56 5. 再开启 cap64 或 bucket benchmark。
1 # Delivery Handoff / 2026-06-02
2
3 ## 一页接管
4
5 当前可以直接交付的不是“最终算法结论”,而是“可持续续跑的工程状态”:
6 - 文档主结构已成型
7 - 数据规范/输入输出/pgvector 说明已补齐
8 - 切片策略与公平评测能力已落地
9 - 最新大一点的 benchmark 还在跑,结果未最终封板
10
11 ## 已完成
12
13 - 多种音乐感知切片策略已接入训练与 query 生成。
14 - 真实 FMA mini-subset smoke A/B 已多轮验证。
15 - `high_energy``hybrid` 已成为当前最强候选。
16 - cap48 结果已明确存在 seed sensitivity。
17 - 文档已经浓缩为可导航结构。
18
19 ## 当前卡点
20
21 ### 卡点 1:seed=999 benchmark 未完成
22
23 待检查:
24 - `/tmp/ab_smoke_seg_cap48_top2_seed999/report.json`
25 - `/tmp/ab_smoke_seg_cap48_top2_seed999/hybrid/fma_reports_smoke/eval.json`
26 - `/tmp/ab_smoke_seg_cap48_top2_seed999/high_energy/fma_reports_smoke/eval.json`
27
28 ### 卡点 2:工作区噪音很大
29
30 当前有大量未跟踪或变更的数据/产物文件,提交时必须精准暂存文档文件。
31
32 ## 建议接手顺序
33
34 1. 检查进程是否仍在运行。
35 2. 如果完成,计算 3-seed aggregate。
36 3. 回写结论到:
37 - [open-dataset-workflow.md](./open-dataset-workflow.md)
38 - [session-handoff.md](./session-handoff.md)
39 - [CHANGELOG.md](./CHANGELOG.md)
40 4. 单独提交文档。
41 5. 再继续下一轮 benchmark。
42
43 ## 推荐检查命令
44
45 ```bash
46 pgrep -af 'ab_smoke_seg_cap48_top2_seed999|external_adapters.py smoke-local fma /tmp/ab_smoke_seg_cap48_top2_seed999|evaluate.py --data /tmp/ab_smoke_seg_cap48_top2_seed999|run_demo.py build-index --data /tmp/ab_smoke_seg_cap48_top2_seed999|train.py --data /tmp/ab_smoke_seg_cap48_top2_seed999'
47 ```
48
49 ```bash
50 test -f /tmp/ab_smoke_seg_cap48_top2_seed999/report.json && cat /tmp/ab_smoke_seg_cap48_top2_seed999/report.json || echo NO_REPORT
51 ```
...@@ -209,6 +209,26 @@ ...@@ -209,6 +209,26 @@
209 209
210 --- 210 ---
211 211
212 ## 0. 当前交付状态(本次 checkpoint)
213
214 ### 已可交付
215 - 文档体系、数据规范、切片策略、评测公平性控制已成型。
216 - 新 session 已可依据本文件和 `AGENT.md` 继续推进。
217
218 ### 当前卡点
219 - `cap48 top2 seed=999` 仍在运行或待收尾,尚未写回最终 3-seed aggregate 结论。
220 - 工作区存在大量数据与模型产物,当前只建议精确提交文档文件。
221
222 ### 最优先待办
223 1. 检查 `/tmp/ab_smoke_seg_cap48_top2_seed999/report.json` 是否生成。
224 2. 如已生成,计算 `default + 123 + 999` 三个 seed 的 aggregate。
225 3. 更新 `open-dataset-workflow.md / session-handoff.md / CHANGELOG.md`
226 4. 提交并推送。
227
228 ### 续跑时不要做的事
229 - 不要 `git add .`
230 - 不要提交 `data/raw``data/external_smoke``/tmp``__pycache__`、模型与索引产物
231
212 ## 7. 当前最重要的待办 232 ## 7. 当前最重要的待办
213 233
214 ### 优先级 A:真实开放数据替换 234 ### 优先级 A:真实开放数据替换
...@@ -618,3 +638,13 @@ seed123 最终结论: ...@@ -618,3 +638,13 @@ seed123 最终结论:
618 - FMA 下载完成后可直接执行:[acr-engine/scripts/fma_postdownload_ready.py](../acr-engine/scripts/fma_postdownload_ready.py) 638 - FMA 下载完成后可直接执行:[acr-engine/scripts/fma_postdownload_ready.py](../acr-engine/scripts/fma_postdownload_ready.py)
619 639
620 - 若需要等待下载完成并自动切到解压/就绪检查,可直接执行:[acr-engine/scripts/wait_for_fma_and_prepare.py](../acr-engine/scripts/wait_for_fma_and_prepare.py) 640 - 若需要等待下载完成并自动切到解压/就绪检查,可直接执行:[acr-engine/scripts/wait_for_fma_and_prepare.py](../acr-engine/scripts/wait_for_fma_and_prepare.py)
641
642 ## 99. 本次 checkpoint 的明确结论
643
644 - 本次已经完成“交接可续跑化”交付。
645 - 本次没有等待 `seed=999` 长时 CPU benchmark 完成,因此算法默认策略不做新结论跳变。
646 - 当前最新稳妥表述仍然是:
647 - `high_energy` 在已知两轮 cap48 aggregate 中更稳
648 - `hybrid` 上限更高但波动更大
649 - 最终默认策略要看更多 seed 聚合结果
650
......