Add competing-risk evaluation and align ICASSP story

This commit is contained in:
Xin Wang
2026-09-10 11:12:02 +08:00
parent 0abefd6f77
commit 4b7d2c0c20
30 changed files with 3420 additions and 724 deletions

View File

@@ -6,6 +6,7 @@ readers to the right comparison.
| Result record | Question answered |
|---|---|
| [easycom_oracle_pooled_wearer_audit_2026-09-10/](easycom_oracle_pooled_wearer_audit_2026-09-10/README.md) | Fixed-four-epoch three-seed oracle test results and the limited wearer gains of historical pooled AV |
| [`easycom_open_stream_vs_causal_prefix_2026-08-19/`](easycom_open_stream_vs_causal_prefix_2026-08-19/README.md) | How prepared-media open-stream and causal-prefix features compare |
| [`easycom_open_stream_8s_vs_20s_2026-08-23/`](easycom_open_stream_8s_vs_20s_2026-08-23/README.md) | Frozen open-stream context-length comparison |
| [`easycom_sparse_supervision_vs_lora_2026-08-24/`](easycom_sparse_supervision_vs_lora_2026-08-24/README.md) | Sparse supervision versus LoRA comparison |

View File

@@ -0,0 +1,159 @@
# EasyCom dense last-8 Thinker LoRA with a frozen head
Recorded on **2026-08-25** from user-reported remote evaluation output. This is
a single-run diagnostic result, not a multi-seed paper number.
## Experiment contract
- Model: Qwen2.5-Omni-3B Thinker.
- Inputs: dense cached AV phases, 2 FPS video, raw-audio tower embeddings, and
an 8-second causal memory budget.
- Prediction/label rate: 5 Hz with ten horizons from 0.2 to 2.0 seconds.
- LoRA scope: `q_proj`, `v_proj`, and `o_proj` in Thinker layers 28--35 only.
- LoRA configuration: rank 8, alpha 16, dropout 0.05, learning rate `5e-6`,
weight decay 0.01.
- Head: the trained frozen 8-second head, loaded from
`checkpoints/easycom_open_stream_2fps_8s_head_seed0.pth` and kept frozen.
- LoRA training: dense Sessions 4--11, global batch 16, five continuous epochs.
- Development selection: Session 12, primary metric 0.2-second full-timeline
mAP and mean mAP as tie-breaker.
- Formal evaluation: epoch 3 was first evaluated on official EasyCom test
Sessions 3, 2, and 1 after development selection. Epoch 1 was subsequently
evaluated as a diagnostic before fixing the one-epoch full-training recipe.
- Selected checkpoint: epoch 3, step 11910.
The selected remote checkpoint was:
```text
checkpoints/omni_turn_lora_dense_8s_last8_qvo_frozen_head_epoch5/
checkpoint-step-11910/
```
The diagnostic epoch-1 checkpoint was:
```text
checkpoints/omni_turn_lora_dense_8s_last8_qvo_frozen_head_epoch5/
checkpoint-step-3970/
```
## Development selection on Session 12
All values are percentages.
| Epoch | Step | 0.2s mAP | Mean mAP |
|---:|---:|---:|---:|
| 1 | 3970 | 70.80918 | 63.06487 |
| 2 | 7940 | 70.96876 | **63.09318** |
| 3 | 11910 | **70.99153** | 63.01294 |
| 4 | 15880 | 70.87364 | 62.85465 |
| 5 | 19850 | 70.83634 | 62.81744 |
Epoch 3 was selected by the preregistered 0.2-second criterion. The five-run
range is only 0.18235 points at 0.2 seconds and 0.27574 mean points, indicating
that the restricted low-learning-rate LoRA is much more stable than the prior
full-Thinker sparse-LoRA runs. Epochs 4--5 nevertheless show mild overfitting.
## Official Sessions 1--3 results
Epoch 1 and epoch 3 are close at 0.2 seconds, but epoch 1 preserves the longer
horizons better and therefore has the higher mean mAP.
| Checkpoint | 0.2s mAP | Mean mAP | 0.2s delta vs frozen | Mean delta vs frozen |
|---|---:|---:|---:|---:|
| Frozen dense control | **71.69695** | **58.16091** | -- | -- |
| LoRA epoch 1 / step 3970 | 71.59585 | 58.01500 | -0.10110 | -0.14591 |
| LoRA epoch 3 / step 11910 | 71.65000 | 57.88833 | -0.04695 | -0.27258 |
Epoch 1 is only `0.05415` below epoch 3 at 0.2 seconds and is `0.12667`
higher in mean mAP. Relative to epoch 3, it improves every horizon from 0.6
through 2.0 seconds. This supports fixing one epoch and retraining once on all
official training Sessions 4--12, without development checkpoint selection.
### Epoch 1 / step 3970
| Horizon | LoRA mAP | Frozen dense mAP | Delta | Background AP | Wearer AP | Others AP |
|---:|---:|---:|---:|---:|---:|---:|
| 0.2s | 71.59585 | 71.69695 | -0.10110 | 54.40604 | 76.39165 | 83.98987 |
| 0.4s | 66.37987 | 66.46468 | -0.08481 | 47.56313 | 70.58803 | 80.98845 |
| 0.6s | 61.91962 | 62.03503 | -0.11541 | 42.34205 | 64.79174 | 78.62507 |
| 0.8s | 58.62537 | 58.77409 | -0.14872 | 39.04030 | 59.81340 | 77.02241 |
| 1.0s | 56.30013 | 56.43606 | -0.13593 | 37.19759 | 55.95535 | 75.74744 |
| 1.2s | 54.86526 | 55.00306 | -0.13780 | 36.31219 | 53.41217 | 74.87142 |
| 1.4s | 53.59386 | 53.73114 | -0.13728 | 35.39635 | 51.13887 | 74.24635 |
| 1.6s | 52.86682 | 53.04042 | -0.17360 | 35.19829 | 49.67869 | 73.72348 |
| 1.8s | 52.23019 | 52.42454 | -0.19435 | 34.71486 | 48.59750 | 73.37822 |
| 2.0s | 51.77300 | 52.00315 | -0.23015 | 34.68133 | 47.63528 | 73.00237 |
| **Mean** | **58.01500** | **58.16091** | **-0.14591** | **39.68521** | **57.80027** | **76.55951** |
### Epoch 3 / step 11910
The fair control is the frozen Thinker evaluated from the same dense AV cache
path with the same frozen head. `Delta` is selected LoRA minus that control.
| Horizon | LoRA mAP | Frozen dense mAP | Delta | Background AP | Wearer AP | Others AP |
|---:|---:|---:|---:|---:|---:|---:|
| 0.2s | 71.65000 | 71.69695 | -0.04695 | 54.59245 | 76.13410 | 84.22345 |
| 0.4s | 66.38669 | 66.46468 | -0.07799 | 47.57127 | 70.36283 | 81.22596 |
| 0.6s | 61.87698 | 62.03503 | -0.15805 | 42.33591 | 64.49864 | 78.79640 |
| 0.8s | 58.51356 | 58.77409 | -0.26053 | 38.97583 | 59.42986 | 77.13498 |
| 1.0s | 56.13447 | 56.43606 | -0.30159 | 37.07515 | 55.55303 | 75.77523 |
| 1.2s | 54.69993 | 55.00306 | -0.30313 | 36.20847 | 53.01781 | 74.87352 |
| 1.4s | 53.41760 | 53.73114 | -0.31354 | 35.30111 | 50.71685 | 74.23484 |
| 1.6s | 52.64243 | 53.04042 | -0.39799 | 35.00690 | 49.21422 | 73.70616 |
| 1.8s | 52.00887 | 52.42454 | -0.41567 | 34.55009 | 48.10873 | 73.36779 |
| 2.0s | 51.55275 | 52.00315 | -0.45040 | 34.55502 | 47.13447 | 72.96877 |
| **Mean** | **57.88833** | **58.16091** | **-0.27258** | **39.61722** | **57.41705** | **76.63071** |
The class-mean comparison is:
| Class | LoRA mean AP | Frozen dense mean AP | Delta |
|---|---:|---:|---:|
| Background | 39.61722 | 39.68434 | -0.06712 |
| Camera wearer speaking | 57.41705 | 58.04423 | **-0.62718** |
| Other people speaking | 76.63071 | 76.75417 | -0.12346 |
At 0.2 seconds specifically, background and other-person AP increase by
`+0.10051` and `+0.09021`, but wearer AP falls by `-0.33157`; the net mAP is
therefore `-0.04695`. The negative gap grows almost monotonically with horizon
and reaches `-0.45040` at 2.0 seconds.
## Interpretation
1. **Restricted LoRA nearly eliminates the short-horizon collapse but does not
create positive transfer.** The prior frozen-head initialized sparse LoRA
scored 71.08589 at 0.2 seconds and 56.19608 mean; the new recipe improves
those by `+0.56411` and `+1.69225`, respectively, but remains below the
frozen dense control.
2. **The remaining negative transfer is horizon-dependent.** The 0.2-second
representation is essentially preserved, while longer anticipation is
progressively damaged. This is inconsistent with a simple global
calibration error.
3. **Camera-wearer speech is the main failure mode.** Its average AP decreases
by 0.62718 points, much more than background or other-person speech.
4. **More epochs are not justified.** Epoch 1 is already within 0.05415 points
of epoch 3 at 0.2 seconds and is 0.12667 points better in mean mAP on the
official test sessions. The remaining official-split experiment therefore
fixes one epoch and trains on Sessions 4--12 without checkpoint selection.
5. **This checkpoint is an ablation, not a headline improvement.** It does not
beat frozen Omni, the 58.51937 open-stream frozen-8s result, or EgoSpeak GRU
A+V at 60.6 mean mAP.
The next defensible post-training diagnostic is adapter scaling/interpolation
on a clean development protocol. It should not be tuned from the already-seen
Sessions 1--3 result. For publication, retrain the frozen head without the
chosen development session; the reused frozen head was originally trained on
the official training split and may already have seen Session 12.
## Provenance and limitations
- Source: user-reported remote `eval_omni_turn_lora.py` console tables.
- Raw remote `metrics.json` archived here: no.
- Strict causal-valid table supplied: no.
- Exact remote git revision confirmed: no; the relevant implementation commits
include `7acab44`, `7fdda29`, and `aa4278e`.
- Multi-seed: no.
- Test-use caveat: epoch 1 was inspected after the epoch-3 test result; their
comparison is diagnostic rather than untouched test-set model selection.
- Development caveat: the frozen head may have been trained with Session 12;
this is adequate for diagnosis but is not a clean publication dev split.
- Publication status: negative-transfer ablation only.

View File

@@ -0,0 +1,93 @@
{
"schema_version": 1,
"recorded_date": "2026-08-25",
"status": "single_run_negative_transfer_ablation",
"dataset": "EasyCom",
"prediction_step_seconds": 0.2,
"video_fps": 2,
"context_seconds": 8,
"train_sessions": [4, 5, 6, 7, 8, 9, 10, 11],
"development_sessions": [12],
"test_sessions": [3, 2, 1],
"configuration": {
"model": "Qwen2.5-Omni-3B Thinker",
"anchor_policy": "dense_5hz",
"lora_layers": [28, 29, 30, 31, 32, 33, 34, 35],
"lora_target_modules": ["q_proj", "v_proj", "o_proj"],
"lora_rank": 8,
"lora_alpha": 16,
"lora_dropout": 0.05,
"learning_rate": 0.000005,
"weight_decay": 0.01,
"head_frozen": true,
"epochs": 5,
"selected_epoch": 3,
"selected_step": 11910
},
"development_metrics_percent": [
{"epoch": 1, "step": 3970, "horizon_0.2_map": 70.80918, "mean_map": 63.06487},
{"epoch": 2, "step": 7940, "horizon_0.2_map": 70.96876, "mean_map": 63.09318},
{"epoch": 3, "step": 11910, "horizon_0.2_map": 70.99153, "mean_map": 63.01294},
{"epoch": 4, "step": 15880, "horizon_0.2_map": 70.87364, "mean_map": 62.85465},
{"epoch": 5, "step": 19850, "horizon_0.2_map": 70.83634, "mean_map": 62.81744}
],
"epoch1_test_metrics_percent": {
"protocol": "egospeak_full_timeline",
"num_timesteps": 23048,
"step": 3970,
"horizon_seconds": [0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0],
"horizon_map": [71.59585, 66.37987, 61.91962, 58.62537, 56.30013, 54.86526, 53.59386, 52.86682, 52.23019, 51.77300],
"mean_map": 58.01500,
"background_ap": [54.40604, 47.56313, 42.34205, 39.04030, 37.19759, 36.31219, 35.39635, 35.19829, 34.71486, 34.68133],
"camera_wearer_speaking_ap": [76.39165, 70.58803, 64.79174, 59.81340, 55.95535, 53.41217, 51.13887, 49.67869, 48.59750, 47.63528],
"other_people_speaking_ap": [83.98987, 80.98845, 78.62507, 77.02241, 75.74744, 74.87142, 74.24635, 73.72348, 73.37822, 73.00237]
},
"test_metrics_percent": {
"protocol": "egospeak_full_timeline",
"num_timesteps": 23048,
"horizon_seconds": [0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0],
"horizon_map": [71.65000, 66.38669, 61.87698, 58.51356, 56.13447, 54.69993, 53.41760, 52.64243, 52.00887, 51.55275],
"mean_map": 57.88833,
"background_ap": [54.59245, 47.57127, 42.33591, 38.97583, 37.07515, 36.20847, 35.30111, 35.00690, 34.55009, 34.55502],
"camera_wearer_speaking_ap": [76.13410, 70.36283, 64.49864, 59.42986, 55.55303, 53.01781, 50.71685, 49.21422, 48.10873, 47.13447],
"other_people_speaking_ap": [84.22345, 81.22596, 78.79640, 77.13498, 75.77523, 74.87352, 74.23484, 73.70616, 73.36779, 72.96877]
},
"frozen_dense_control_percent": {
"horizon_map": [71.69695, 66.46468, 62.03503, 58.77409, 56.43606, 55.00306, 53.73114, 53.04042, 52.42454, 52.00315],
"mean_map": 58.16091,
"class_mean_ap": {
"background": 39.68434,
"camera_wearer_speaking": 58.04423,
"other_people_speaking": 76.75417
}
},
"selected_lora_minus_frozen_dense_percent_points": {
"horizon_map": [-0.04695, -0.07799, -0.15805, -0.26053, -0.30159, -0.30313, -0.31354, -0.39799, -0.41567, -0.45040],
"mean_map": -0.27258,
"class_mean_ap": {
"background": -0.06712,
"camera_wearer_speaking": -0.62718,
"other_people_speaking": -0.12346
}
},
"epoch1_lora_minus_frozen_dense_percent_points": {
"horizon_map": [-0.10110, -0.08481, -0.11541, -0.14872, -0.13593, -0.13780, -0.13728, -0.17360, -0.19435, -0.23015],
"mean_map": -0.14591,
"class_mean_ap": {
"background": 0.00087,
"camera_wearer_speaking": -0.24396,
"other_people_speaking": -0.19466
}
},
"epoch1_minus_epoch3_percent_points": {
"horizon_0.2_map": -0.05415,
"mean_map": 0.12667
},
"provenance": {
"source": "User-reported remote evaluator console tables",
"raw_metrics_json_archived": false,
"strict_causal_metrics_supplied": false,
"multi_seed": false,
"clean_development_head_split": false
}
}

View File

@@ -0,0 +1,84 @@
# EasyCom dense last-8 LoRA, full official train split, one epoch
Recorded on **2026-08-25** from user-reported remote evaluator output. This is
a single-seed diagnostic experiment.
## Experiment contract
- Backbone: Qwen2.5-Omni-3B Thinker.
- Input representation: dense cached AV phases, 2 FPS video, 5 Hz prediction,
and 8 seconds of causal open-stream memory.
- Head: pretrained frozen 8-second head from
`checkpoints/easycom_open_stream_2fps_8s_head_seed0.pth`.
- LoRA: `q_proj`, `v_proj`, and `o_proj` in Thinker layers 28--35, rank 8,
alpha 16, dropout 0.05, learning rate `5e-6`, and weight decay 0.01.
- Training: all official EasyCom train Sessions 4--12, one fixed epoch, 4526
updates, global batch 16, and no development checkpoint selection.
- Evaluation: official test Sessions 3, 2, and 1 using the EgoSpeak Table 2
full-timeline protocol.
- Training runtime: 1475.936 seconds on eight GPUs, 3.067 updates/second, with
8.86 GiB as the maximum per-rank CUDA allocation.
- Cached loss: 1.272857 before training and 1.269106 after training.
The evaluated checkpoint was:
```text
checkpoints/
omni_turn_lora_dense_8s_last8_qvo_frozen_head_train4to12_epoch1_ddp8/
```
## Official Sessions 1--3 result
| Horizon | LoRA mAP | Frozen dense mAP | Delta | Background AP | Wearer AP | Others AP |
|---:|---:|---:|---:|---:|---:|---:|
| 0.2s | 71.62100 | 71.69695 | -0.07595 | 54.41759 | 76.41473 | 84.03068 |
| 0.4s | 66.38400 | 66.46468 | -0.08068 | 47.56390 | 70.58441 | 81.00369 |
| 0.6s | 61.93324 | 62.03503 | -0.10179 | 42.35133 | 64.80023 | 78.64817 |
| 0.8s | 58.64198 | 58.77409 | -0.13211 | 39.04739 | 59.81664 | 77.06191 |
| 1.0s | 56.30504 | 56.43606 | -0.13102 | 37.17699 | 55.95400 | 75.78412 |
| 1.2s | 54.87690 | 55.00306 | -0.12616 | 36.30712 | 53.40678 | 74.91682 |
| 1.4s | 53.60541 | 53.73114 | -0.12573 | 35.40362 | 51.12561 | 74.28699 |
| 1.6s | 52.89234 | 53.04042 | -0.14808 | 35.22795 | 49.68491 | 73.76416 |
| 1.8s | 52.26201 | 52.42454 | -0.16253 | 34.76888 | 48.59595 | 73.42119 |
| 2.0s | 51.82720 | 52.00315 | -0.17595 | 34.76777 | 47.63587 | 73.07796 |
| **Mean** | **58.03491** | **58.16091** | **-0.12600** | **39.70325** | **57.80191** | **76.59957** |
## Controlled comparisons
| Checkpoint | Train sessions | Epoch | 0.2s mAP | Mean mAP | Mean delta vs frozen |
|---|---|---:|---:|---:|---:|
| Frozen dense control | 4--12 head | -- | **71.69695** | **58.16091** | -- |
| Restricted LoRA | 4--12 | 1 | 71.62100 | 58.03491 | -0.12600 |
| Restricted LoRA | 4--11 | 1 | 71.59585 | 58.01500 | -0.14591 |
| Restricted LoRA | 4--11 | 3 | 71.65000 | 57.88833 | -0.27258 |
Adding Session 12 to the one-epoch LoRA training improves 0.2-second mAP by
`0.02515` and mean mAP by `0.01991` relative to the Sessions 4--11 epoch-1
checkpoint. All ten horizons improve, but only by `0.00413--0.05420` points.
This is too small to explain or reverse the negative transfer.
Relative to the frozen dense control, background mean AP is unchanged
(`+0.01891`), while camera-wearer and other-person mean AP remain lower by
`-0.24232` and `-0.15460`. The final mean gap is `-0.12600`, less than half the
epoch-3 gap but still negative.
## Interpretation
1. Using the complete official training split helps consistently but only
marginally; withholding Session 12 was not the cause of the regression.
2. One epoch is preferable to three for this restricted adapter because it
preserves longer-horizon representations better.
3. The adapter still does not improve the frozen Omni representation. This
experiment should be reported as a negative-transfer ablation rather than
the main result.
4. The next primary comparison should use a stronger frozen backbone, such as
Qwen2.5-Omni-7B, without LoRA.
## Provenance and limitations
- Source: user-reported `eval_omni_turn_lora.py` console output.
- Raw remote `metrics.json` archived here: no.
- Strict causal-valid metrics supplied: no.
- Multi-seed: no.
- Test sessions had already been inspected in earlier LoRA diagnostics, so
this is not an untouched test-set selection result.

View File

@@ -0,0 +1,76 @@
{
"schema_version": 1,
"recorded_date": "2026-08-25",
"status": "single_run_negative_transfer_ablation",
"dataset": "EasyCom",
"model": "Qwen2.5-Omni-3B Thinker",
"prediction_step_seconds": 0.2,
"video_fps": 2,
"context_seconds": 8,
"train_sessions": [7, 11, 10, 6, 9, 4, 8, 5, 12],
"development_sessions": [],
"test_sessions": [3, 2, 1],
"configuration": {
"anchor_policy": "dense_5hz",
"lora_layers": [28, 29, 30, 31, 32, 33, 34, 35],
"lora_target_modules": ["q_proj", "v_proj", "o_proj"],
"lora_rank": 8,
"lora_alpha": 16,
"lora_dropout": 0.05,
"learning_rate": 0.000005,
"weight_decay": 0.01,
"head_frozen": true,
"epochs": 1,
"updates": 4526,
"global_batch_size": 16,
"num_gpus": 8,
"training_seconds": 1475.936,
"updates_per_second": 3.067,
"peak_cuda_allocated_gib_max_across_ranks": 8.86,
"initial_cached_loss": 1.272857,
"final_cached_loss": 1.269106
},
"test_metrics_percent": {
"protocol": "egospeak_full_timeline",
"num_timesteps": 23048,
"horizon_seconds": [0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0],
"horizon_map": [71.62100, 66.38400, 61.93324, 58.64198, 56.30504, 54.87690, 53.60541, 52.89234, 52.26201, 51.82720],
"mean_map": 58.03491,
"background_ap": [54.41759, 47.56390, 42.35133, 39.04739, 37.17699, 36.30712, 35.40362, 35.22795, 34.76888, 34.76777],
"camera_wearer_speaking_ap": [76.41473, 70.58441, 64.80023, 59.81664, 55.95400, 53.40678, 51.12561, 49.68491, 48.59595, 47.63587],
"other_people_speaking_ap": [84.03068, 81.00369, 78.64817, 77.06191, 75.78412, 74.91682, 74.28699, 73.76416, 73.42119, 73.07796],
"class_mean_ap": {
"background": 39.70325,
"camera_wearer_speaking": 57.80191,
"other_people_speaking": 76.59957
}
},
"frozen_dense_control_percent": {
"horizon_map": [71.69695, 66.46468, 62.03503, 58.77409, 56.43606, 55.00306, 53.73114, 53.04042, 52.42454, 52.00315],
"mean_map": 58.16091,
"class_mean_ap": {
"background": 39.68434,
"camera_wearer_speaking": 58.04423,
"other_people_speaking": 76.75417
}
},
"lora_minus_frozen_dense_percent_points": {
"horizon_map": [-0.07595, -0.08068, -0.10179, -0.13211, -0.13102, -0.12616, -0.12573, -0.14808, -0.16253, -0.17595],
"mean_map": -0.12600,
"class_mean_ap": {
"background": 0.01891,
"camera_wearer_speaking": -0.24232,
"other_people_speaking": -0.15460
}
},
"full_train_epoch1_minus_train4to11_epoch1_percent_points": {
"horizon_map": [0.02515, 0.00413, 0.01362, 0.01661, 0.00491, 0.01164, 0.01155, 0.02552, 0.03182, 0.05420],
"mean_map": 0.01991
},
"provenance": {
"source": "User-reported remote evaluator console table",
"raw_metrics_json_archived": false,
"strict_causal_metrics_supplied": false,
"multi_seed": false
}
}

View File

@@ -0,0 +1,121 @@
# EasyCom last-4 concat-MLP epoch-budget sweep
Recorded on **2026-08-26** from three user-reported remote runs. This is an
exploratory single-seed capacity/overfitting diagnostic, not a clean
test-independent checkpoint-selection result.
## Shared experiment contract
- Dataset: EasyCom.
- Backbone: frozen Qwen2.5-Omni-3B Thinker.
- Features: final four query states from 8-second open-stream replay, 2 FPS
video, and 5 Hz prediction timestamps.
- Fusion: concatenate `[4, 2048]` to 8192 dimensions, then
`LayerNorm -> Linear(8192, 2048) -> GELU` before the unchanged `10 x 3`
anticipation MLP.
- Training examples: dense 5 Hz anchors from the official training sessions.
- Evaluation: EgoSpeak full-timeline AP/mAP on Sessions 3, 2, and 1.
- The three runs differ in total training budget: 4, 12, or 50 epochs.
## Main result
| Total epochs | Final train loss | 0.2s mAP | Mean mAP | Delta mean from 4 epochs |
|---:|---:|---:|---:|---:|
| **4** | 0.806973 | **73.42020** | **60.87144** | -- |
| 12 | 0.661751 | 72.44507 | 57.98809 | -2.88335 |
| 50 | **0.300277** | 66.54645 | 53.03515 | -7.83629 |
Training loss decreases monotonically while test mAP collapses. This is strong
evidence that the 16.8-million-parameter concat fusion overfits EasyCom's small,
highly correlated session-level training set when trained for conventional
50-epoch head budgets.
## Per-horizon mAP
| Horizon | 4 epochs | 12 epochs | 50 epochs | 4ep minus 12ep | 4ep minus 50ep |
|---:|---:|---:|---:|---:|---:|
| 0.2s | 73.42020 | 72.44507 | 66.54645 | +0.97513 | +6.87375 |
| 0.4s | 68.60449 | 66.95546 | 60.89720 | +1.64903 | +7.70729 |
| 0.6s | 64.61782 | 62.31847 | 56.41553 | +2.29935 | +8.20229 |
| 0.8s | 61.53765 | 58.54713 | 53.45517 | +2.99052 | +8.08248 |
| 1.0s | 59.41820 | 56.08389 | 51.56044 | +3.33431 | +7.85776 |
| 1.2s | 58.10069 | 54.58857 | 50.11650 | +3.51212 | +7.98419 |
| 1.4s | 57.24684 | 53.57918 | 48.95956 | +3.66766 | +8.28728 |
| 1.6s | 56.19807 | 52.66949 | 48.10094 | +3.52858 | +8.09713 |
| 1.8s | 55.18182 | 51.73658 | 47.49916 | +3.44524 | +7.68266 |
| 2.0s | 54.38864 | 50.95706 | 46.80053 | +3.43158 | +7.58811 |
| **Mean** | **60.87144** | **57.98809** | **53.03515** | **+2.88335** | **+7.83629** |
Longer horizons deteriorate earlier and more strongly than 0.2 seconds. The
12-epoch model loses `0.97513` at 0.2 seconds but more than 3.3 points from
1.0 through 2.0 seconds. The model is therefore not merely becoming globally
miscalibrated; it increasingly memorizes short-term training correlations that
do not support future-speaker anticipation.
## Average class AP over ten horizons
| Epoch budget | Background | Camera wearer | Other people |
|---:|---:|---:|---:|
| 4 | **42.12966** | **62.08079** | **78.40387** |
| 12 | 40.15120 | 56.70353 | 77.10954 |
| 50 | 34.28629 | 51.12830 | 73.69085 |
| 4ep minus 50ep | +7.84337 | **+10.95249** | +4.71302 |
The camera-wearer class is most sensitive to overfitting. This matches the
project's earlier LoRA diagnosis: wearer prediction repeatedly suffers first
when representation/head capacity is increased without enough independent
conversation sessions.
## Comparison with the lower-capacity readouts
| Readout | Training budget | 0.2s mAP | Mean mAP |
|---|---:|---:|---:|
| Single final-layer query | prior run | 71.99768 | 58.51937 |
| Last-4 learned scalar mixture | 25 epochs | **73.45085** | 60.53423 |
| Last-4 concat-MLP | 4 epochs | 73.42020 | **60.87144** |
Relative to scalar mixture, the 4-epoch concat-MLP is essentially tied at
0.2 seconds (`-0.03065`) and improves mean mAP by `+0.33721`. Its additional
gain is concentrated around 1.2--1.6 seconds, peaking at `+0.80974` at 1.4
seconds. The higher-capacity fusion therefore helps longer-term anticipation,
but does not improve the primary 0.2-second score beyond the scalar mixture.
## Validity caveats
1. The three commands wrote to the same misleadingly named checkpoint and
result paths containing `25ep`. Later runs therefore overwrite earlier
artifacts unless they were copied elsewhere. The 4-epoch model must be
rerun with a unique path if it was not preserved.
2. Each total-epoch setting creates a different cosine schedule. These are
training-budget comparisons, not checkpoints sampled from one identical
optimization trajectory.
3. The supplied excerpts do not contain complete optimizer/scheduler configs.
Confirm them from the remote checkpoint JSON before a paper table.
4. The 4-epoch budget was identified after evaluating Sessions 1--3. It is a
diagnostic result and cannot be presented as test-independent model
selection.
5. Only full-timeline metrics were supplied; strict causal-valid metrics and
remote `metrics.json` are not archived here.
6. All values are single-seed results.
## Clean follow-up protocol
- Use Sessions 4--11 for training and Session 12 for model selection.
- Save every epoch from one fixed 12-epoch schedule and select using a declared
development metric (0.2-second mAP for responsiveness, or mean mAP for Table
2 overall performance).
- Freeze the selected epoch count before retraining on Sessions 4--12 and
evaluating Sessions 1--3 once.
- Compare single-layer, fixed last-4 mean, scalar mixture, and concat-MLP with
identical seeds and schedules.
- For the concat model, test a smaller bottleneck or low-rank fusion before
adding stronger generic regularization; this preserves the cross-layer idea
while matching EasyCom's effective sample size.
Machine-readable values are stored in [`summary.json`](summary.json) and
[`metrics.csv`](metrics.csv). A cleaned transcription of the supplied console
tables is in [`console_transcription.txt`](console_transcription.txt).
The data audit, recent-work comparison, paper framing, and prioritized next
experiments are documented in
[`reports/omni_turn_research_direction_2026-08-26.md`](../../reports/omni_turn_research_direction_2026-08-26.md).

View File

@@ -0,0 +1,41 @@
4 epochs
final train loss: 0.806973
0.2s mAP=73.42020 background=56.72497 wearer=77.87909 others=85.65653
0.4s mAP=68.60449 background=49.88131 wearer=73.26704 others=82.66511
0.6s mAP=64.61782 background=44.66684 wearer=68.57660 others=80.61002
0.8s mAP=61.53765 background=41.31402 wearer=64.21804 others=79.08089
1.0s mAP=59.41820 background=39.34993 wearer=61.35721 others=77.54745
1.2s mAP=58.10069 background=38.91573 wearer=58.45949 others=76.92686
1.4s mAP=57.24684 background=38.68165 wearer=57.00022 others=76.05865
1.6s mAP=56.19807 background=37.71307 wearer=55.21953 others=75.66162
1.8s mAP=55.18182 background=36.99897 wearer=53.45848 others=75.08801
2.0s mAP=54.38864 background=37.05013 wearer=51.37220 others=74.74359
mean mAP=60.87144
12 epochs
final train loss: 0.661751
0.2s mAP=72.44507 background=55.62292 wearer=76.67027 others=85.04201
0.4s mAP=66.95546 background=48.28782 wearer=70.71200 others=81.86658
0.6s mAP=62.31847 background=42.64250 wearer=64.97839 others=79.33452
0.8s mAP=58.54713 background=38.96725 wearer=59.03811 others=77.63603
1.0s mAP=56.08389 background=37.02472 wearer=55.22792 others=75.99903
1.2s mAP=54.58857 background=36.78301 wearer=51.71494 others=75.26775
1.4s mAP=53.57918 background=36.51419 wearer=49.39741 others=74.82594
1.6s mAP=52.66949 background=35.89852 wearer=48.01650 others=74.09344
1.8s mAP=51.73658 background=35.09050 wearer=46.39426 others=73.72498
2.0s mAP=50.95706 background=34.68059 wearer=44.88548 others=73.30511
mean mAP=57.98809
50 epochs
final train loss: 0.300277
0.2s mAP=66.54645 background=46.77405 wearer=71.62111 others=81.24419
0.4s mAP=60.89720 background=39.76093 wearer=64.88690 others=78.04378
0.6s mAP=56.41553 background=35.39797 wearer=58.39212 others=75.45650
0.8s mAP=53.45517 background=33.13157 wearer=53.17203 others=74.06192
1.0s mAP=51.56044 background=32.04965 wearer=49.57623 others=73.05543
1.2s mAP=50.11650 background=31.56647 wearer=46.40684 others=72.37618
1.4s mAP=48.95956 background=31.27035 wearer=44.07047 others=71.53785
1.6s mAP=48.10094 background=31.17011 wearer=42.20836 others=70.92435
1.8s mAP=47.49916 background=31.06982 wearer=41.03746 others=70.39020
2.0s mAP=46.80053 background=30.67198 wearer=39.91152 others=69.81809
mean mAP=53.03515

View File

@@ -0,0 +1,31 @@
epochs,horizon_seconds,map,background_ap,camera_wearer_ap,other_people_ap,train_loss
4,0.2,73.42020,56.72497,77.87909,85.65653,0.806973
4,0.4,68.60449,49.88131,73.26704,82.66511,0.806973
4,0.6,64.61782,44.66684,68.57660,80.61002,0.806973
4,0.8,61.53765,41.31402,64.21804,79.08089,0.806973
4,1.0,59.41820,39.34993,61.35721,77.54745,0.806973
4,1.2,58.10069,38.91573,58.45949,76.92686,0.806973
4,1.4,57.24684,38.68165,57.00022,76.05865,0.806973
4,1.6,56.19807,37.71307,55.21953,75.66162,0.806973
4,1.8,55.18182,36.99897,53.45848,75.08801,0.806973
4,2.0,54.38864,37.05013,51.37220,74.74359,0.806973
12,0.2,72.44507,55.62292,76.67027,85.04201,0.661751
12,0.4,66.95546,48.28782,70.71200,81.86658,0.661751
12,0.6,62.31847,42.64250,64.97839,79.33452,0.661751
12,0.8,58.54713,38.96725,59.03811,77.63603,0.661751
12,1.0,56.08389,37.02472,55.22792,75.99903,0.661751
12,1.2,54.58857,36.78301,51.71494,75.26775,0.661751
12,1.4,53.57918,36.51419,49.39741,74.82594,0.661751
12,1.6,52.66949,35.89852,48.01650,74.09344,0.661751
12,1.8,51.73658,35.09050,46.39426,73.72498,0.661751
12,2.0,50.95706,34.68059,44.88548,73.30511,0.661751
50,0.2,66.54645,46.77405,71.62111,81.24419,0.300277
50,0.4,60.89720,39.76093,64.88690,78.04378,0.300277
50,0.6,56.41553,35.39797,58.39212,75.45650,0.300277
50,0.8,53.45517,33.13157,53.17203,74.06192,0.300277
50,1.0,51.56044,32.04965,49.57623,73.05543,0.300277
50,1.2,50.11650,31.56647,46.40684,72.37618,0.300277
50,1.4,48.95956,31.27035,44.07047,71.53785,0.300277
50,1.6,48.10094,31.17011,42.20836,70.92435,0.300277
50,1.8,47.49916,31.06982,41.03746,70.39020,0.300277
50,2.0,46.80053,30.67198,39.91152,69.81809,0.300277
1 epochs horizon_seconds map background_ap camera_wearer_ap other_people_ap train_loss
2 4 0.2 73.42020 56.72497 77.87909 85.65653 0.806973
3 4 0.4 68.60449 49.88131 73.26704 82.66511 0.806973
4 4 0.6 64.61782 44.66684 68.57660 80.61002 0.806973
5 4 0.8 61.53765 41.31402 64.21804 79.08089 0.806973
6 4 1.0 59.41820 39.34993 61.35721 77.54745 0.806973
7 4 1.2 58.10069 38.91573 58.45949 76.92686 0.806973
8 4 1.4 57.24684 38.68165 57.00022 76.05865 0.806973
9 4 1.6 56.19807 37.71307 55.21953 75.66162 0.806973
10 4 1.8 55.18182 36.99897 53.45848 75.08801 0.806973
11 4 2.0 54.38864 37.05013 51.37220 74.74359 0.806973
12 12 0.2 72.44507 55.62292 76.67027 85.04201 0.661751
13 12 0.4 66.95546 48.28782 70.71200 81.86658 0.661751
14 12 0.6 62.31847 42.64250 64.97839 79.33452 0.661751
15 12 0.8 58.54713 38.96725 59.03811 77.63603 0.661751
16 12 1.0 56.08389 37.02472 55.22792 75.99903 0.661751
17 12 1.2 54.58857 36.78301 51.71494 75.26775 0.661751
18 12 1.4 53.57918 36.51419 49.39741 74.82594 0.661751
19 12 1.6 52.66949 35.89852 48.01650 74.09344 0.661751
20 12 1.8 51.73658 35.09050 46.39426 73.72498 0.661751
21 12 2.0 50.95706 34.68059 44.88548 73.30511 0.661751
22 50 0.2 66.54645 46.77405 71.62111 81.24419 0.300277
23 50 0.4 60.89720 39.76093 64.88690 78.04378 0.300277
24 50 0.6 56.41553 35.39797 58.39212 75.45650 0.300277
25 50 0.8 53.45517 33.13157 53.17203 74.06192 0.300277
26 50 1.0 51.56044 32.04965 49.57623 73.05543 0.300277
27 50 1.2 50.11650 31.56647 46.40684 72.37618 0.300277
28 50 1.4 48.95956 31.27035 44.07047 71.53785 0.300277
29 50 1.6 48.10094 31.17011 42.20836 70.92435 0.300277
30 50 1.8 47.49916 31.06982 41.03746 70.39020 0.300277
31 50 2.0 46.80053 30.67198 39.91152 69.81809 0.300277

View File

@@ -0,0 +1,73 @@
{
"schema_version": 1,
"recorded_date": "2026-08-26",
"status": "single_seed_test_inspected_diagnostic",
"dataset": "EasyCom",
"model": {
"backbone": "Qwen2.5-Omni-3B",
"thinker_frozen": true,
"memory_seconds": 8,
"streaming_mode": "open-stream-replay",
"video_fps": 2,
"prediction_hz": 5,
"readout": "last_4_query_concat_mlp",
"fusion_parameters_approx": 16795648
},
"runs": [
{
"epochs": 4,
"final_train_loss": 0.806973,
"horizon_0.2_map": 73.42020,
"mean_map": 60.87144,
"mean_class_ap": {
"background": 42.12966,
"camera_wearer": 62.08079,
"other_people": 78.40387
}
},
{
"epochs": 12,
"final_train_loss": 0.661751,
"horizon_0.2_map": 72.44507,
"mean_map": 57.98809,
"mean_class_ap": {
"background": 40.15120,
"camera_wearer": 56.70353,
"other_people": 77.10954
}
},
{
"epochs": 50,
"final_train_loss": 0.300277,
"horizon_0.2_map": 66.54645,
"mean_map": 53.03515,
"mean_class_ap": {
"background": 34.28629,
"camera_wearer": 51.12830,
"other_people": 73.69085
}
}
],
"comparisons_percent": {
"epoch4_minus_epoch12_mean_map": 2.88335,
"epoch4_minus_epoch50_mean_map": 7.83629,
"epoch4_minus_scalar_mixture_mean_map": 0.33721,
"epoch4_minus_scalar_mixture_horizon_0.2_map": -0.03065,
"epoch4_minus_single_final_layer_mean_map": 2.35207,
"epoch4_minus_single_final_layer_horizon_0.2_map": 1.42252
},
"validity": {
"test_sessions": [3, 2, 1],
"test_was_used_to_compare_epoch_budgets": true,
"same_output_path_was_reused": true,
"cosine_schedule_changes_with_total_epochs": true,
"strict_causal_valid_reported": false,
"multi_seed": false
},
"provenance": {
"source": "user-reported remote console tables",
"shared_remote_checkpoint": "checkpoints/easycom_frozen_3b_8s_last4_concat_mlp_25ep.pth",
"shared_remote_result_dir": "results/easycom_frozen_3b_8s_last4_concat_mlp_25ep",
"complete_remote_checkpoint_json_archived": false
}
}

View File

@@ -0,0 +1,71 @@
# Pooled AV 与 oracle 的 wearer 增益审计
日期:2026-09-10。来源:用户粘贴的远程三种子控制台结果,以及已有的
[pooled/encoder-only 记录](../easycom_encoder_only_1s_4ep_2026-08-28/README.md)。
本记录没有重新运行训练或读取远程 checkpoint/predictions。
## 协议与来源
新 oracle:Sessions 4--12 全训练,固定 4 epochs,保存末轮,无 dev checkpoint
selection;Sessions 1--3 测试;seeds 0/1/2;`causal_valid_only`。
命令入口:`bash run_easycom_oracle_information.sh final 0 1 2`。
预测根目录:`results/easycom_oracle_information_4ep_train4_12_fixed4_test/`;
checkpoint 按 runner 默认应为
`checkpoints/easycom_oracle_information_4ep_train4_12_fixed4/<condition>_seed<seed>.pth`,
但实际环境覆盖值、checkpoint hash 和运行代码 revision 未随日志提供,尚未核验。
运行契约见 [oracle 手册](../../docs/easycom_oracle_information.md)。
`metrics.csv` 保存用户提供的全部 18 行数值,单位均为 AP/mAP 百分点。
BG/wearer/others AP 三列仅对应 0.2 秒;mean mAP 是三个类别、十个 horizon 的平均,
不能当成十 horizon wearer AP。
## 当前观测
三种子均值差值(百分点):
| 比较 | 0.2s mAP | 0.2s wearer AP | 十 horizon mean mAP |
|---|---:|---:|---:|
| aggregate-visible − audio | +4.82609 | +0.57206 | +1.77462 |
| delayed − audio | +0.08185 | +0.00647 | +0.16443 |
| visibility-only − audio | +0.07598 | −0.06329 | +0.04018 |
| per-person − shuffled-id | +0.34857 | +0.03092 | +0.20013 |
| aggregate-visible − per-person | +0.42975 | +0.22818 | +0.29128 |
aggregate 的 0.2s 宏平均增益主要来自 BG(+10.45109)和 others(+3.45514),
wearer 增益为 +0.57206。三种子方向一致,但 seed 方差不能替代跨 session 泛化的
置信区间,也不能据此声称事件级改善。
## 与历史 pooled AV 的关系
历史 seed-0 `causal_valid_only`:G+A wearer AP 85.06554,G+A+V 85.08583,
局部视觉的 0.2s wearer 增量仅 +0.02029;mean mAP 增量 +0.29083。
历史完整曲线采用另一协议 `egospeak_full_timeline`:
- G+A+V − G+A:十 horizon wearer AP 平均 +0.06078,mean mAP +0.29073。
- A+V − A:十 horizon wearer AP 平均 −0.99993;0.2s wearer AP −1.40150。
因此普通 pooled V 尚无稳定改善 wearer 的证据;encoder-only A+V 还出现 wearer
退步。历史单种子与新 oracle 三种子不是一组完全匹配实验,不能用它们直接计算
oracle-gap recovery 或判定两个方法的统计显著差异。
## 可以和不可以得出的结论
1. 已支持:在当前实验设置下,真实的可见 others 活动标注具有互补预测价值;
aggregate 条件优于 visibility-only,收益不能仅由人物可见性控制解释。
2. 及时性有证据:per-person 优于同结构 delayed 条件;aggregate 与 delayed 同时
改变了聚合方式和时间,不能单独作为纯时间干预对照。
3. 身份连续性:per-person 对 shuffled-id 有小幅同向增益,不能继续称为完全持平或
断言 identity 无用;但 wearer 增量仅 +0.03,且 aggregate 更好,不支持其必要性。
4. 尚未证明:增益来自真实 RGB 可恢复的信息,或 pooling 是失败原因。Oracle 使用
说话标注,可能提供当前视觉/音频前端根本无法可靠估计的信号;信息缺失与访问困难
目前也不能区分。
5. 尚未证明:更少抢话、addressee 理解或更好的 entry/yield。短期活动延续也能改善
BG/others AP,需要直接分析已有 wearer predictions 的事件表现。
6. Oracle 是特权信息参照,不是数学性能上界;learned latent 可以携带额外线索而超过它。
## 对后续研究的含义
优先验证从真实因果 AV 估计的局部活动是否对 wearer 提供增量,保留简单 aggregate
对照;在证据出现前,不预设 track、pooling 修复或层间注入必然有效。
新 oracle 尚缺十 horizon wearer AP 曲线与事件结果,不能仅凭 mean mAP 批准强论文主张。
Sessions 1--3 已被查看;后续选择不能依赖这次 test 表,使用训练侧验证或预先固定配置。

View File

@@ -0,0 +1,19 @@
condition,seed,map_0p2,bg_ap_0p2,wearer_ap_0p2,others_ap_0p2,mean_map
aggregate-visible,0,86.70353,78.68879,85.97697,95.44481,66.97086
aggregate-visible,1,86.60725,78.67625,85.68389,95.46161,66.95553
aggregate-visible,2,86.77584,79.03497,85.84636,95.44621,66.92697
audio,0,81.82018,68.32374,85.13784,91.99897,65.11495
audio,1,81.91804,68.45640,85.31319,91.98453,65.23095
audio,2,81.87011,68.26659,85.34002,92.00373,65.18361
delayed,0,81.98017,68.44804,85.42083,92.07165,65.36472
delayed,1,81.85499,68.35216,85.15280,92.06000,65.37526
delayed,2,82.01874,68.81110,85.23682,92.00832,65.28282
per-person,0,86.47493,78.23009,85.85070,95.34399,66.79960
per-person,1,86.14132,77.84909,85.42206,95.15281,66.64966
per-person,2,86.18113,77.91935,85.54992,95.07412,66.53026
shuffled-id,0,86.01447,77.05511,85.83326,95.15503,66.54441
shuffled-id,1,85.85603,77.03031,85.34384,95.19396,66.47007
shuffled-id,2,85.88116,77.04115,85.55283,95.04951,66.36466
visibility-only,0,81.99974,68.56855,85.35703,92.07364,65.23904
visibility-only,1,81.83181,68.36851,85.07484,92.05209,65.24955
visibility-only,2,82.00473,68.85219,85.16930,91.99268,65.16145
1 condition seed map_0p2 bg_ap_0p2 wearer_ap_0p2 others_ap_0p2 mean_map
2 aggregate-visible 0 86.70353 78.68879 85.97697 95.44481 66.97086
3 aggregate-visible 1 86.60725 78.67625 85.68389 95.46161 66.95553
4 aggregate-visible 2 86.77584 79.03497 85.84636 95.44621 66.92697
5 audio 0 81.82018 68.32374 85.13784 91.99897 65.11495
6 audio 1 81.91804 68.45640 85.31319 91.98453 65.23095
7 audio 2 81.87011 68.26659 85.34002 92.00373 65.18361
8 delayed 0 81.98017 68.44804 85.42083 92.07165 65.36472
9 delayed 1 81.85499 68.35216 85.15280 92.06000 65.37526
10 delayed 2 82.01874 68.81110 85.23682 92.00832 65.28282
11 per-person 0 86.47493 78.23009 85.85070 95.34399 66.79960
12 per-person 1 86.14132 77.84909 85.42206 95.15281 66.64966
13 per-person 2 86.18113 77.91935 85.54992 95.07412 66.53026
14 shuffled-id 0 86.01447 77.05511 85.83326 95.15503 66.54441
15 shuffled-id 1 85.85603 77.03031 85.34384 95.19396 66.47007
16 shuffled-id 2 85.88116 77.04115 85.55283 95.04951 66.36466
17 visibility-only 0 81.99974 68.56855 85.35703 92.07364 65.23904
18 visibility-only 1 81.83181 68.36851 85.07484 92.05209 65.24955
19 visibility-only 2 82.00473 68.85219 85.16930 91.99268 65.16145

View File

@@ -0,0 +1,123 @@
# EasyCom frozen-ROMA last-four-layer readout study
Recorded on **2026-08-27** from three user-reported remote evaluations. These
are single-seed diagnostic results on official EasyCom test Sessions 1--3, not
test-independent paper numbers.
## Shared experiment contract
- Dataset: EasyCom; EgoSpeak full-timeline evaluator on Sessions 1--3.
- Backbone checkpoint: ROMA, based on Qwen2.5-Omni-7B.
- Backbone use: frozen representation extraction; no end-to-end ROMA update.
- Streaming path: this project's 8-second Qwen-style open-stream replay, 2 FPS
video, one prediction every 200 ms.
- Saved state: final four query states, shape `[T, 4, 3584]`.
- Prediction target: ten future horizons from 0.2 to 2.0 seconds, three
EgoSpeak AP classes.
ROMA's released model is trained with one-second aligned streaming units, but
these features were extracted with this project's matched Qwen open-stream
protocol. The result therefore tests the **frozen ROMA representation under
our protocol**; it does not reproduce ROMA's own streaming training recipe.
## Main result
| Readout | Epochs | Approx. fusion parameters | 0.2s mAP | Mean mAP |
|---|---:|---:|---:|---:|
| Last-4 concat-MLP | 1 | 51.4M | 68.27145 | 58.89219 |
| Last-4 concat-MLP | 4 | 51.4M | 68.65486 | 56.52425 |
| Last-4 fixed mean | 4 | 0 | **69.21863** | **58.90402** |
The fixed uniform mean is the strongest ROMA readout. It is effectively tied
with the one-epoch concat model in mean mAP (`+0.01183`) while gaining
`+0.94718` at 0.2 seconds. The 51.4M-parameter fusion is unnecessary here.
## Per-horizon mAP
| Horizon | Concat 1ep | Concat 4ep | Fixed mean 4ep |
|---:|---:|---:|---:|
| 0.2s | 68.27145 | 68.65486 | **69.21863** |
| 0.4s | 65.29126 | 64.32941 | **65.67454** |
| 0.6s | 62.15965 | 60.41845 | **62.52327** |
| 0.8s | **59.95476** | 57.35198 | 59.92499 |
| 1.0s | **58.25407** | 55.17851 | 58.14859 |
| 1.2s | **56.83849** | 53.70716 | 56.61984 |
| 1.4s | 55.65764 | 52.59370 | **55.68495** |
| 1.6s | **54.91836** | 51.83772 | 54.52641 |
| 1.8s | **54.20725** | 50.70519 | 53.67463 |
| 2.0s | **53.36895** | 50.46558 | 53.04431 |
| **Mean** | 58.89219 | 56.52425 | **58.90402** |
## Mean class AP over ten horizons
| Readout | Background | Camera wearer | Other people |
|---|---:|---:|---:|
| Concat 1ep | 42.17735 | **57.38537** | 77.11384 |
| Concat 4ep | 40.19574 | 52.75190 | 76.62513 |
| Fixed mean 4ep | **42.19246** | 57.26979 | **77.24980** |
Extending concat training from one to four epochs raises 0.2-second mAP by
only `+0.38341` but reduces mean mAP by `-2.36794`. Camera-wearer mean AP drops
by `-4.63347`, much more than background (`-1.98161`) or other people
(`-0.48871`). This is the same overfitting pattern observed with the 3B
concat-MLP, amplified by ROMA's wider 3584-dimensional state.
Replacing concat-MLP with a fixed mean at four epochs restores `+4.51789`
camera-wearer AP and `+2.37977` mean mAP. This isolates readout capacity as the
proximate cause of the four-epoch collapse.
## Comparison with the strongest frozen Qwen2.5-Omni-3B controls
| Frozen representation/readout | 0.2s mAP | Mean mAP |
|---|---:|---:|
| Qwen-3B final-layer query, 8s | 71.99768 | 58.51937 |
| Qwen-3B last-4 scalar mixture | **73.45085** | 60.53423 |
| Qwen-3B last-4 concat-MLP, 4ep | 73.42020 | **60.87144** |
| ROMA last-4 fixed mean, 4ep | 69.21863 | 58.90402 |
| ROMA last-4 concat-MLP, 4ep | 68.65486 | 56.52425 |
The same concat design and epoch count gives a strong diagnostic: ROMA is
`-4.76534` at 0.2 seconds and `-4.34719` in mean mAP relative to Qwen-3B.
It is not a parameter-matched attribution test, because the 3584-dimensional
ROMA fusion has 51.4M parameters versus about 16.8M for Qwen-3B. Together with
the fixed-mean result, it shows that ROMA's proactive streaming adaptation is
not automatically useful for 5 Hz egocentric future-speaker anticipation, but
does not yet isolate checkpoint adaptation from width and protocol.
The fixed-mean ROMA result is not directly architecture-matched to the 3B
scalar-mixture/concat models. An exact Qwen-3B fixed-mean four-epoch control is
still required. A second clean attribution test is ROMA versus its original
Qwen2.5-Omni-7B base using the same last-four stack and fixed-mean head.
## Interpretation and decision
1. **Do not continue tuning the ROMA concat head.** Its capacity is much too
high for nine EasyCom training conversations.
2. **Do not conclude that ROMA itself is universally worse.** The experiment
changes checkpoint family and uses a protocol different from ROMA's native
one-second training units.
3. **The practical EasyCom backbone remains frozen Qwen2.5-Omni-3B.** Its
last-four readouts are stronger, cheaper, and already validated throughout
the current pipeline.
4. **The next method should change readout structure and supervision.** The
strongest hypothesis is a low-capacity semantic query state fused with
recent 200 ms payload tokens, followed by a structured future-activity
projection rather than ten independent horizon classifiers.
## Validity caveats
- Only user-reported full-timeline metrics were available; strict
causal-valid tables and remote `metrics.json` files were not archived.
- Results are single-seed and Sessions 1--3 were inspected repeatedly.
- Exact optimizer settings and the remote checkpoint filenames for all three
runs were not supplied here.
- The train split is assumed to follow the project's Sessions 4--12 contract;
verify each remote command before using the values in a paper table.
- ROMA's official one-second streaming-unit path was not reproduced.
Machine-readable values are in [`summary.json`](summary.json), and a formatted
workbook with per-horizon metrics and comparison deltas is in
[`metrics.xlsx`](metrics.xlsx).
The literature-backed diagnosis and proposed ICASSP research plan are in
[`reports/roma_negative_transfer_and_future_floor_projection_2026-08-27.md`](../../reports/roma_negative_transfer_and_future_floor_projection_2026-08-27.md).

View File

@@ -0,0 +1,121 @@
{
"schema_version": 1,
"recorded_date": "2026-08-27",
"status": "single_seed_user_reported_test_inspected_diagnostic",
"dataset": "EasyCom",
"evaluation": {
"protocol": "EgoSpeak full timeline",
"test_sessions": [1, 2, 3],
"prediction_hz": 5,
"future_horizons_seconds": [0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0],
"classes": ["background", "camera_wearer_speaking", "other_people_speaking"],
"n": 23048
},
"representation": {
"checkpoint_family": "ROMA based on Qwen2.5-Omni-7B",
"thinker_frozen": true,
"streaming_mode": "open-stream-replay",
"memory_seconds": 8,
"video_fps": 2,
"state": "last_four_query_states",
"state_shape": [4, 3584],
"native_roma_one_second_streaming_recipe_reproduced": false
},
"runs": [
{
"id": "roma_last4_concat_mlp_1ep",
"layer_fusion": "concat-mlp",
"epochs": 1,
"fusion_parameters_approx": 51412480,
"reported_mean_map": 58.89219,
"mean_class_ap": {
"background": 42.17735,
"camera_wearer_speaking": 57.38537,
"other_people_speaking": 77.11384
},
"per_horizon": [
{"seconds": 0.2, "background": 52.51021, "camera_wearer_speaking": 70.83688, "other_people_speaking": 81.46725, "map": 68.27145},
{"seconds": 0.4, "background": 48.71387, "camera_wearer_speaking": 67.22686, "other_people_speaking": 79.93305, "map": 65.29126},
{"seconds": 0.6, "background": 45.13005, "camera_wearer_speaking": 62.85818, "other_people_speaking": 78.49071, "map": 62.15965},
{"seconds": 0.8, "background": 42.40835, "camera_wearer_speaking": 59.85171, "other_people_speaking": 77.60421, "map": 59.95476},
{"seconds": 1.0, "background": 41.04191, "camera_wearer_speaking": 56.82736, "other_people_speaking": 76.89293, "map": 58.25407},
{"seconds": 1.2, "background": 39.74672, "camera_wearer_speaking": 54.55271, "other_people_speaking": 76.21605, "map": 56.83849},
{"seconds": 1.4, "background": 38.80110, "camera_wearer_speaking": 52.54133, "other_people_speaking": 75.63049, "map": 55.65764},
{"seconds": 1.6, "background": 38.10108, "camera_wearer_speaking": 51.26856, "other_people_speaking": 75.38544, "map": 54.91836},
{"seconds": 1.8, "background": 37.64821, "camera_wearer_speaking": 49.94810, "other_people_speaking": 75.02545, "map": 54.20725},
{"seconds": 2.0, "background": 37.67202, "camera_wearer_speaking": 47.94197, "other_people_speaking": 74.49285, "map": 53.36895}
]
},
{
"id": "roma_last4_concat_mlp_4ep",
"layer_fusion": "concat-mlp",
"epochs": 4,
"fusion_parameters_approx": 51412480,
"reported_mean_map": 56.52425,
"mean_class_ap": {
"background": 40.19574,
"camera_wearer_speaking": 52.75190,
"other_people_speaking": 76.62513
},
"per_horizon": [
{"seconds": 0.2, "background": 52.12125, "camera_wearer_speaking": 71.51813, "other_people_speaking": 82.32518, "map": 68.65486},
{"seconds": 0.4, "background": 47.23227, "camera_wearer_speaking": 65.34609, "other_people_speaking": 80.40987, "map": 64.32941},
{"seconds": 0.6, "background": 42.97315, "camera_wearer_speaking": 59.62350, "other_people_speaking": 78.65869, "map": 60.41845},
{"seconds": 0.8, "background": 39.98155, "camera_wearer_speaking": 54.81910, "other_people_speaking": 77.25528, "map": 57.35198},
{"seconds": 1.0, "background": 38.30512, "camera_wearer_speaking": 50.99168, "other_people_speaking": 76.23874, "map": 55.17851},
{"seconds": 1.2, "background": 37.25808, "camera_wearer_speaking": 48.42603, "other_people_speaking": 75.43737, "map": 53.70716},
{"seconds": 1.4, "background": 36.84681, "camera_wearer_speaking": 46.09807, "other_people_speaking": 74.83621, "map": 52.59370},
{"seconds": 1.6, "background": 36.30368, "camera_wearer_speaking": 44.70198, "other_people_speaking": 74.50749, "map": 51.83772},
{"seconds": 1.8, "background": 35.37777, "camera_wearer_speaking": 43.20047, "other_people_speaking": 73.53734, "map": 50.70519},
{"seconds": 2.0, "background": 35.55772, "camera_wearer_speaking": 42.79393, "other_people_speaking": 73.04510, "map": 50.46558}
]
},
{
"id": "roma_last4_fixed_mean_4ep",
"layer_fusion": "fixed-mean",
"epochs": 4,
"fusion_parameters_approx": 0,
"reported_mean_map": 58.90402,
"mean_class_ap": {
"background": 42.19246,
"camera_wearer_speaking": 57.26979,
"other_people_speaking": 77.24980
},
"per_horizon": [
{"seconds": 0.2, "background": 53.55709, "camera_wearer_speaking": 72.09031, "other_people_speaking": 82.00848, "map": 69.21863},
{"seconds": 0.4, "background": 49.15182, "camera_wearer_speaking": 67.68575, "other_people_speaking": 80.18605, "map": 65.67454},
{"seconds": 0.6, "background": 45.55752, "camera_wearer_speaking": 63.19862, "other_people_speaking": 78.81368, "map": 62.52327},
{"seconds": 0.8, "background": 42.39609, "camera_wearer_speaking": 59.81524, "other_people_speaking": 77.56363, "map": 59.92499},
{"seconds": 1.0, "background": 41.02210, "camera_wearer_speaking": 56.50674, "other_people_speaking": 76.91692, "map": 58.14859},
{"seconds": 1.2, "background": 39.45131, "camera_wearer_speaking": 53.93851, "other_people_speaking": 76.46970, "map": 56.61984},
{"seconds": 1.4, "background": 38.78924, "camera_wearer_speaking": 52.30126, "other_people_speaking": 75.96435, "map": 55.68495},
{"seconds": 1.6, "background": 38.08597, "camera_wearer_speaking": 50.22392, "other_people_speaking": 75.26934, "map": 54.52641},
{"seconds": 1.8, "background": 37.22956, "camera_wearer_speaking": 49.02115, "other_people_speaking": 74.77319, "map": 53.67463},
{"seconds": 2.0, "background": 36.68386, "camera_wearer_speaking": 47.91641, "other_people_speaking": 74.53267, "map": 53.04431}
]
}
],
"comparisons_percent": {
"concat_4ep_minus_concat_1ep_horizon_0.2_map": 0.38341,
"concat_4ep_minus_concat_1ep_mean_map": -2.36794,
"fixed_mean_4ep_minus_concat_4ep_horizon_0.2_map": 0.56377,
"fixed_mean_4ep_minus_concat_4ep_mean_map": 2.37977,
"fixed_mean_4ep_minus_concat_1ep_horizon_0.2_map": 0.94718,
"fixed_mean_4ep_minus_concat_1ep_mean_map": 0.01183,
"roma_concat_4ep_minus_qwen3b_concat_4ep_horizon_0.2_map": -4.76534,
"roma_concat_4ep_minus_qwen3b_concat_4ep_mean_map": -4.34719
},
"validity": {
"single_seed": true,
"test_sessions_repeatedly_inspected": true,
"strict_causal_valid_reported": false,
"remote_metrics_json_archived": false,
"exact_training_commands_archived": false,
"train_sessions_assumed_from_project_protocol": [4, 5, 6, 7, 8, 9, 10, 11, 12]
},
"provenance": {
"source": "user-reported remote console tables",
"recorded_by": "Codex",
"values_are_percent": true
}
}