fuse_proj: Initial operational package for 3 researchers (Pavlenko/Blizno/Moroz)

Multimodal fusion research on StripNet+GTA-UAV proxy:
- 3 independent fusion tracks: condition-aware (A), token/bottleneck (B), role-aware (C)
- Shared interfaces, protocol, dataset audit, baseline benchmarks
- Canonical version-chain references to vault (SPEC, ANALYSIS, TRIAGE)
- Personalized task plans and decision tables for each researcher
- 3 generated DOCX task assignment files with milestones and DoD checklist
- Full modality dropout diagnostics and missing-modality robustness requirements
- Data contract, benchmark registry, experiment tracking infrastructure

Operational documents:
- docs/00_project/: MERIDIAN context, protocol, repository reuse guide, experiment specification
- docs/01_tasks/: Master assignment + 3 individual researcher tracks + joint integration
- docs/02_references/: Core literature, version-chain bases, code maps
- docs/03_codebase_guides/: Existing code snapshots from vault
- scripts/: gen_task_plans.js (DOCX generation), placeholder infrastructure
- vendor_reference/: Snapshots of caption_test, depth_edges_annotate, existing SOFIA/SegModel code
- reports/, results/, experiments/: Shared output structure for all 3 researchers

3 DOCX files generated from gen_task_plans.js (Times New Roman 14pt, GOST format):
- План_заданий_Павленко_БВ.docx (Condition-Aware track, fusion API owner)
- План_заданий_Близно_МВ.docx (Token/Bottleneck track, benchmark owner)
- План_заданий_Мороз_ЕС.docx (Role-Aware track, data contract owner)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Pikaliov
2026-06-11 17:16:57 +03:00
commit 2c6a00a4ca
155 changed files with 39765 additions and 0 deletions

View File

@@ -0,0 +1,105 @@
# Карта проекта caption-test
## 1. Источник
```text
C:\Users\Lisadminipc\Documents\code\caption-test
```
Снимки ключевых файлов находятся в `vendor_reference/caption_test/`.
## 2. StripNet
| Файл | Назначение | Действие |
|---|---|---|
| `src/models/stripnet/model.py` | 4-stage StripNet-small | переиспользовать backbone |
| `src/models/stripnet_encoder.py` | GAP + Linear 512->1024 | использовать как RGB baseline wrapper |
| `src/models/stripnet/conv_mona.py` | adapters stages 3-4 | применять одинаково во всех сравнениях |
| `conf/gtauav_balanced_stripnet.gin` | reference config | перенести параметры, убрать hardcoded paths |
Ожидаемые stage outputs:
```text
stage 1: [B, 64, 64, 64]
stage 2: [B, 128, 32, 32]
stage 3: [B, 320, 16, 16]
stage 4: [B, 512, 8, 8]
```
Текущий wrapper возвращает только stage 4 descriptor. Для multi-stage fusion нужен безопасный интерфейс к `forward_features`, не дублирующий backbone forward.
## 3. GTA-UAV data
| Файл | Полезная часть |
|---|---|
| `src/datasets/gtauav_dataset.py` | pair JSON, captions L1/L2/L3, satellite candidates |
| `src/datasets/mutually_exclusive_sampler.py` | исключение false negatives внутри batch |
| `meta/train_80.json` | train split snapshot |
| `meta/test_20.json` | test split snapshot |
| `meta/seg_filter.json` | segmentation-based filter |
Что добавить:
1. Annotation root.
2. SafeTensors loading.
3. CHM для satellite, depth для UAV.
4. Segmentation для обеих view.
5. Validity masks.
6. Auxiliary tensor validation.
## 4. Training
| Файл | Переиспользовать |
|---|---|
| `src/training/train_gtauav.py` | seed, optimizer, scheduler, tracking, checkpoint patterns |
| `src/training/trackers.py` | CSV/TensorBoard/W&B |
| `src/training/profiling.py` | profiler и model summary |
| `src/losses/multi_infonce.py` | symmetric objective |
| `src/losses/weighted_infonce.py` | только если одинаково для всех variants |
Текущий training file содержит исторические model options и hardcoded paths. В новом проекте отделить:
- model construction;
- fusion registry;
- data config;
- training loop;
- evaluation;
- run manifest.
## 5. Evaluation
Критическая проверка: одна UAV query может иметь несколько valid satellite matches. Нельзя считать единственным positive только diagonal pair текущего batch.
Сохранить per-query:
```text
query_id
rank_first_positive
top_k_ids
success_at_1
success_at_5
success_at_10
```
Это требуется для paired statistical tests между fusion variants.
## 6. Residual fusion reference
`src/models/residual_fusions.py` содержит простые gate/residual baselines. Использовать как B1-B3 reference, но перед переносом:
- проверить все ветви `gate_type`;
- добавить strict shape validation;
- добавить explicit diagnostics;
- убрать неиспользуемые варианты;
- обеспечить identity behaviour;
- покрыть tests.
## 7. Рекомендуемый порядок переноса
1. StripNet model и wrapper.
2. Dataset pair semantics.
3. Evaluation.
4. RGB-only training smoke.
5. SafeTensors extension.
6. Common fusion API.
7. Три fusion variants.