Train ATI-HO and finalize project outputs

This commit is contained in:
2026-09-26 16:05:44 +08:00
parent a86560da64
commit 9cdd604117
358 changed files with 10540 additions and 173 deletions
+36 -34
View File
@@ -11,12 +11,12 @@
| `q1/` | Q1 原生特征提取、物理时间特征包构建、五折对照和可视化 |
| `q2/math/` | 数学方案 C0–C7、训练、缺失控制评估及附件 3 预测 |
| `q2/deep_learning/q2/` | EarlyConcat + BiGRU、MoFE-7 + MLP Router 及训练协议 |
| `q3/` | Q3 验证、附件 4 全量预测和逐样本解释卡片 |
| `q3/` | ATI–HO Q3 训练、结构审计、归因与附件 4 推理 |
| `output/q1/` | 已整理的 Q1 100 个特征文件、对齐审计和已有结果 |
| `output/q2/` | 已整理的 Q2 未对齐数据模型对比结果表 |
| `output/q3/` | Q3 运行后生成的预测、解释和验证结果 |
| `output/q3/` | ATI–HO 附件 4 题目输出;验证结果和实验审计放在 `experiments/q3/` |
| `experiments/q2/` | 本项目最新未对齐 Q2 对比运行、权重和审计结果 |
| `REPORTS.md` | Q1、Q2 实验结果和方法说明 |
| `REPORTS.md` | Q1、Q2、Q3 实验结果和方法说明 |
| `data_paths.py` | 官方附件的默认位置与外部数据根目录设置 |
## 准备官方附件
@@ -137,6 +137,19 @@ python -m final.q2.deep_learning.q2.train_math_protocol \
数学方案默认会用附件 3 未对齐样本生成 30 条 `attachment3_predictions.csv` 和 `attachment3_audit.csv`,预测文件包含极性、情感强度及类别概率。如只检查训练流程,可以增加 `--skip-attachment3`。深度学习运行会输出两模型的官方测试指标、验证缺失情景、AURC-MAE、Bootstrap 区间、权重和运行清单。为满足总附件大小限制,随项目提供的 Q2 归档保留逐情景指标和模型参数;逐行遮蔽/测试门控审计及官方测试单样本明细可由完整重训重新生成,未放入紧凑归档。
若已存在数学分支检查点、只需重新生成附件 3 预测而不重训,可运行:
```bash
export FINAL_DATA_DIR="/path/to/E题数据"
python -m final.q2.math.predict_attachment3 \
--input-version unaligned_50 \
--results-dir final/experiments/q2/unaligned_math_all_b128 \
--output-dir final/output/q2 \
--device auto
```
该入口读取保存的模型、校准与预处理参数,输出 `attachment3_predictions.csv`、`attachment3_audit.csv` 和 `attachment3_prediction_manifest.json`;不会覆盖模型检查点目录中的运行清单。
把两次运行的结果重新汇总到统一对比表:
```bash
@@ -148,47 +161,36 @@ python final/compare_unaligned_q2.py \
结果文件包括 `comparison_validation.csv`(全模型验证对比)、`comparison_test.csv`(预先选出的数学模型及两种深度模型测试结果)、`comparison_aurc.csv`(四种缺失模式的 AURC-MAE)。指标定义、已有对比数值和边界说明见 [REPORTS.md](REPORTS.md)。
## Q3:分层反事实证据归因
## Q3:ATI–HO 训练、评估与附件 4 预测
Q3 复用 Q2 已训练的 EarlyConcat + BiGRU、MoFE-7 + MLP Router 检查点和同一套训练集 robust scaler,不重新拟合模型。第一轮含三个解释方案:E0 对 EarlyConcat 做精确三模态 Shapley 与局部遮蔽;E1 把 MoFE Router 当作待检验的内部信号;E2 对同一个 MoFE 检查点做精确 Shapley、交互和局部遮蔽。E1/E2 的预测完全相同,比较的是解释方式。
Q3 的当前方案是 ATI–HO。模型定义集中在 `model/ati_ho.py` 和 `model/ati_ho_config.py`,训练、结构审计、Shapley/Owen 归因与附件 4 推理入口位于 `q3/ati_ho/`。附件 4 只用于最终预测和解释,不参与训练、选型或指标计算。
在项目根目录设置附件位置后运行。项目默认查找 final/data/;也可以将 FINAL_DATA_DIR 指向包含附件 2、附件 4 文件夹的根目录:
训练与验证读取官方 `unaligned_50.pkl`,使用统一 Q1 adapter 投影到 50 个 Relative-Progress 槽,并复用只由 Q2 训练集拟合的 robust scaler。训练/验证/测试按来源视频组隔离;相对进度不是物理时间同步。
~~~powershell
$env:FINAL_DATA_DIR = "D:\task-data"
python -m final.q3.run_experiments --output-dir final/output/q3/first_round --device auto
~~~
在项目根目录设置官方附件位置后,运行两阶段训练:
~~~bash
export FINAL_DATA_DIR="/data/task-data"
python -m final.q3.run_experiments --output-dir final/output/q3/first_round --device auto
~~~
```bash
export FINAL_DATA_DIR="/path/to/E题数据"
python -m final.q3.ati_ho.train --phase all --device auto
```
完整运行使用官方验证集生成预测指标、误差归因和分类 margin 的 Shapley。只想快速检查附件 4 可增加 --skip-validation;不抽取候选视频帧可增加 --no-frames。每次运行请给一个新的空输出目录。
Stage I 以 seed 42 训练 A0/A1/A2/A3 和未锚定诊断 D0,执行结构与 8 联盟 Shapley 检查。Stage II 以 seeds 42、3407、2026 训练 EarlyConcat + BiGRU、MoFE-7 + MLP Router、初选 ATI 方案和两项消融。检查点和运行记录写入 `final/experiments/q3/ati_ho/`。重训已有模型时显式加 `--force`。
主要产物:
训练完成后生成验证审计和附件 4 文件:
- attachment4_predictions.csv:20 个附件 4 样本在 E0/E1/E2 下的预测和类别概率。
- attachment4_modal_shapley.csv、attachment4_pairwise_interactions.csv:分类 logit 与强度回归的模态贡献、绝对贡献比例、配对交互和 Shapley 完备性残差。
- attachment4_local_evidence.csv、attachment4_router_local_evidence.csv:1/3/5 个相对进程 bin 的局部遮蔽响应与 MoFE Router 位置分数。
- attachment4_evidence_segments.csv:每个方案的代表性文本、音频和视觉证据段;evidence_frames/ 中保存由进度比例估算位置抽取的候选帧。
- faithfulness_by_sample.csv、q3_method_comparison.csv:删除/保留检验、0–70% 删除曲线、尺度稳定性和 Router–Shapley 一致性汇总。
- validation_predictions.csv、validation_errors.csv、validation_error_attribution.csv:官方验证集预测、误差样本和分类 margin 归因。
- explanation_cards/、typical_explanation_card.md、evidence_profiles/:逐样本解释卡、代表卡和 3×50 局部证据图。
```bash
export FINAL_DATA_DIR="/path/to/E题数据"
python -m final.q3.ati_ho.evaluate --device auto
```
想先查看文本、音频波形、视频帧中的遮蔽位置,再查看对应时间 bin 上七个 MoFE expert 的 Router 权重热力图,可运行:
评估按 A0/A1/A2 三 seed 固定验证情景损失选择最终 ATI 方案,计算来源视频组配对 Bootstrap、验证集 Shapley、结构审计、Owen 稳定性、删除/保留诊断和计算成本。题目输出放在 `final/output/q3/ati_ho/`:
~~~powershell
python -m final.q3.plot_router_heatmaps --output-dir final/output/q3
~~~
- `attachment4_predictions.csv`:20 个样本的预测类别、强度和类别概率。
- `attachment4_explanations.csv`:五个参数的主效应、pairwise 参数项、分类 Shapley 和强度 Shapley。
- `attachment4_local_evidence.csv`:分模态、分相对进度片段的 Owen 贡献与标准误。
- `attachment4_prediction_manifest.json`:数据、adapter/scaler、模型权重哈希和无标签推理信息。
它输出附件 4 样本 02、03 的完整输入和受控残缺对照图:蓝色斜线表示输入被遮蔽,下面按 T、A、V、TA、TV、AV、TAV 顺序显示 expert 的 α[t,e]。详细定义与限制见 [Q3 实验说明](q3/README.md#router-热力图样例),实验图也已收录在 [REPORTS.md](REPORTS.md)。
三种输入模态只有 8 个 coalition,脚本完整枚举而非近似 SHAP。分类解释固定使用完整输入的预测类别 logit,回归解释使用情感强度输出。局部证据是单模态窗口被遮蔽前后的 logit 差;正值表示该窗口支持当前预测,负值表示该窗口反对当前预测。Router 权重只描述路由机制,不能直接解释成预测贡献。
附件 4 特征行没有物理时间戳。文本可以回溯到 tokenizer token 和来源行;音频/视觉证据保留来源行与归一化进程。若视频可读,候选帧位置由相对进程乘视频时长估算,供人工回看,不表示特征已经物理时间对齐。删除/保留检验使用模型训练时见过的 mask 接口,但孤立稀疏遮蔽仍可能偏离训练分布;报告会把 10% 保留结果标为诊断,主要删除曲线范围限制在最多删除 70%。
细节和解释边界见 Q3 实验说明(q3/README.md)与 REPORTS.md。
完整指标和实验审计位于 `final/experiments/q3/ati_ho/results/ati_ho/`,主要报告为 `ATI_HO_RESULTS.md`、`ATI_HO_PAPER.md` 和 `EXECUTIVE_SUMMARY.md`。方法细节、训练协议与文件边界见 [Q3 说明](q3/README.md);Q1/Q2/当前 Q3 的合并结果写在 [REPORTS.md](REPORTS.md)。
## 模型与对齐约定