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:
265
docs/01_tasks/01_PAVLENKO_CONDITION_AWARE.md
Normal file
265
docs/01_tasks/01_PAVLENKO_CONDITION_AWARE.md
Normal file
@@ -0,0 +1,265 @@
|
||||
# Задание Павленко Богдану Викторовичу
|
||||
|
||||
## 1. Трек
|
||||
|
||||
Condition-Aware RGB-Anchored Fusion.
|
||||
|
||||
Дополнительная командная роль: владелец общего fusion API и архитектурной совместимости трёх реализаций.
|
||||
|
||||
## 2. Исследовательский вопрос
|
||||
|
||||
Может ли controller, использующий RGB content summary и признаки качества auxiliary inputs, динамически выбирать полезный вклад text, segmentation и geometry, сохраняя надёжный RGB residual path?
|
||||
|
||||
## 3. Обязательное чтение
|
||||
|
||||
### Общий пакет
|
||||
|
||||
- `docs/02_references/01_required/`
|
||||
- `docs/02_references/02_fusion_core/СИНТЕЗ_3_fusion.md`
|
||||
- `docs/02_references/02_fusion_core/SPEC_fusion_ACF_MERIDIAN_v5.md`
|
||||
- `docs/02_references/02_fusion_core/ANALYSIS_FiLM_alternatives_taxonomy_v4.md`
|
||||
- `docs/02_references/06_paper_analyses/B14_BB_2025_Strip R-CNN Large Strip Convolution for Remote Sensing Object Detection.md`
|
||||
|
||||
### Персональный пакет
|
||||
|
||||
- `F39_2025_CAFuser_Condition-Aware_Multimodal_Fusion.md`
|
||||
- `F37_2024_AsymFormer_Asymmetrical_Cross-Modal_Mobile_RGB-D.md`
|
||||
- `F43_2024_Robust_Multimodal_Missing_Modalities_PEFT.md` — peer-reviewed (TPAMI 2024) опора identity-adapters и missing-modality поведения
|
||||
- `F40_2025_M3amba_CLIP-driven_Mamba_Multi-modal_RS.md`
|
||||
- `F4_2025_EARTHMIND ... MULTIMODAL LLM.md`
|
||||
- `F44_2025_Fusion-Mamba_Cross-modality_Object_Detection.md`
|
||||
- `F68_2024_RemoteDet-Mamba_Hybrid_RS.md`
|
||||
- `F47_2026_TacFiLM_Tactile_Modality_Fusion_VLA.md`
|
||||
|
||||
Файлы находятся внутри `docs/02_references/06_paper_analyses/` и `05_text/`.
|
||||
|
||||
### Канонические опоры (проверенные выводы из vault, использовать в evidence matrix)
|
||||
|
||||
| Источник | Факт | Следствие для трека A |
|
||||
|---|---|---|
|
||||
| C5 WeatherPrompt (NeurIPS 2025), `05_text/` | Dynamic Gate 80.20 > Concat 78.90 > Static gate 78.45 | веса fusion должны быть instance-conditioned — прямой аргумент за controller |
|
||||
| F14 WeatherPrompt deep dive | FiLM 73.37% > CrossAttn 68.10% > Concat 62.50%; спецификация text→FiLM MLP: zero-init, two-speed LR, EMA | готовый рецепт text-пути и инициализации |
|
||||
| Flamingo (NeurIPS 2022, см. TRIAGE §1) | zero-init tanh(α)-gated cross-attention: при α=0 модель ≡ frozen base | корень линии identity-at-init; цитировать как первоисточник |
|
||||
| F39 CAFuser (RA-L 2025) | condition token строится из RGB и управляет fusion остальных модальностей | каноничный шаблон трека |
|
||||
| TRIAGE §6a, вывод 1 | gated additive residual — dropout-safe; чисто multiplicative gating ломается при near-zero aux | residual-форма обязательна для primary |
|
||||
|
||||
## 4. Общая обязанность: fusion API
|
||||
|
||||
Совместно с коллегами определить и реализовать:
|
||||
|
||||
```python
|
||||
class FusionModelBase(nn.Module):
|
||||
def encode_view(self, batch: ViewBatch, view: ViewName) -> FusionViewOutput:
|
||||
...
|
||||
```
|
||||
|
||||
API должен:
|
||||
|
||||
1. принимать одинаковый batch для всех variants;
|
||||
2. различать satellite CHM и UAV depth через `view`;
|
||||
3. возвращать descriptor и diagnostics;
|
||||
4. не требовать paired-view features;
|
||||
5. поддерживать batch size 1;
|
||||
6. быть пригодным для unit tests;
|
||||
7. позволять registry/factory выбирать variant через gin.
|
||||
|
||||
До merge API получить согласие Близно и Мороза.
|
||||
|
||||
## 5. Персональные задачи
|
||||
|
||||
### A0. Evidence matrix
|
||||
|
||||
Создать таблицу минимум по восьми источникам:
|
||||
|
||||
| Source | Original task | Fusion operator | Conditioning signal | Identity path | Transfer to StripNet | Risk |
|
||||
|---|---|---|---|---|---|---|
|
||||
|
||||
Для каждого source отдельно отметить paper fact и собственное предположение.
|
||||
|
||||
### A1. Определить RGB anchor
|
||||
|
||||
Сравнить возможные content summaries:
|
||||
|
||||
1. GAP stage 3.
|
||||
2. GAP stage 4.
|
||||
3. Concatenated GAP stages 3-4.
|
||||
4. Lightweight attention pooling stage 4.
|
||||
|
||||
Выбрать primary summary. Обосновать, почему он содержит достаточно информации для выбора modality contribution.
|
||||
|
||||
### A2. Определить quality signals
|
||||
|
||||
Минимальный набор кандидатов:
|
||||
|
||||
| Modality | Возможные quality features |
|
||||
|---|---|
|
||||
| Text | empty mask, token count, text norm, caption quality score |
|
||||
| Segmentation | entropy, background fraction, class diversity, valid fraction |
|
||||
| CHM | valid fraction, dynamic range, gradient energy |
|
||||
| Depth | valid fraction, dynamic range, smoothness/gradient consistency |
|
||||
|
||||
Не включать все признаки автоматически. Выбрать признаки, которые можно вычислить стабильно и без labels test split.
|
||||
|
||||
### A3. Спроектировать auxiliary paths
|
||||
|
||||
Для каждой modality определить:
|
||||
|
||||
- raw tensor;
|
||||
- normalization;
|
||||
- encoder;
|
||||
- output channel dimension;
|
||||
- target StripNet stage;
|
||||
- residual transform;
|
||||
- initialization;
|
||||
- validity handling.
|
||||
|
||||
CHM и depth используют раздельные input projectors, даже если после них общий interface.
|
||||
|
||||
### A4. Сформировать три кандидата
|
||||
|
||||
| Candidate | Required design |
|
||||
|---|---|
|
||||
| A-C1 | channel-wise gated additive residual |
|
||||
| A-C2 | multi-stage FiLM с condition-aware gates |
|
||||
| A-C3 | dense residual paths для maps + token cross-attention для text |
|
||||
|
||||
Для каждого рассчитать:
|
||||
|
||||
- insertion stages;
|
||||
- trainable params;
|
||||
- dominant operations;
|
||||
- expected VRAM;
|
||||
- identity preservation;
|
||||
- modality attribution;
|
||||
- главный failure mode.
|
||||
|
||||
### A5. Выбрать primary и fallback
|
||||
|
||||
Рекомендуемый scoring template:
|
||||
|
||||
| Criterion | Weight |
|
||||
|---|---:|
|
||||
| Retrieval fit | 25 |
|
||||
| RGB preservation | 20 |
|
||||
| Modality attribution | 15 |
|
||||
| Compute | 15 |
|
||||
| Stability | 15 |
|
||||
| Implementation risk | 10 |
|
||||
|
||||
### A6. Формализовать controller
|
||||
|
||||
Минимальная формула:
|
||||
|
||||
```math
|
||||
c_v = Controller([Pool(X_v^{rgb}); q_v^{text}; q_v^{seg}; q_v^{geom}; e_v^{view}])
|
||||
```
|
||||
|
||||
```math
|
||||
X_v^{l,new} = X_v^{l,rgb} + sum_m a_{v,m}^{l} * Delta_{v,m}^{l}
|
||||
```
|
||||
|
||||
Нужно определить:
|
||||
|
||||
- scalar, channel или spatial gates;
|
||||
- sigmoid или softmax;
|
||||
- конкурируют ли модальности за единичную массу;
|
||||
- contribution cap;
|
||||
- zero-init residual;
|
||||
- regularization, если она действительно нужна;
|
||||
- **поведение при validity = 0**: gate невалидной модальности обязан давать нулевой вклад, а оставшиеся gates — оставаться корректными (не «доставать» массу из несуществующего входа). Показать это формулой и покрыть тестом.
|
||||
|
||||
### A7. Выбрать fusion levels
|
||||
|
||||
Сравнить:
|
||||
|
||||
1. Stage 4 only.
|
||||
2. Stages 3-4.
|
||||
3. Stages 2-4.
|
||||
4. Dense maps в stages 2-3, text только stage 4/readout.
|
||||
|
||||
Для каждого указать tensor shapes и дополнительную стоимость.
|
||||
|
||||
### A8. Descriptor readout
|
||||
|
||||
Сравнить:
|
||||
|
||||
- GAP stage 4;
|
||||
- GGeM;
|
||||
- attention pooling;
|
||||
- residual addition fused descriptor к RGB descriptor.
|
||||
|
||||
Primary readout обязан сохранять прямой RGB information path.
|
||||
|
||||
### A9. Diagnostics
|
||||
|
||||
Реализовать минимум:
|
||||
|
||||
- mean/std gate по modality и stage;
|
||||
- contribution norm `||a_m * Delta_m|| / ||X_rgb||`;
|
||||
- cosine RGB vs fused descriptor;
|
||||
- fraction saturated gates `<0.05` или `>0.95`;
|
||||
- descriptor variance.
|
||||
|
||||
### A10. Tests
|
||||
|
||||
Обязательные тесты:
|
||||
|
||||
1. Output shape `[B,1024]` для B=1 и B=4.
|
||||
2. Descriptor norm.
|
||||
3. Identity behaviour при zero auxiliary residual.
|
||||
4. Invalid-mask handling.
|
||||
5. Satellite и UAV geometry projectors не смешиваются.
|
||||
6. No NaN на constant segmentation/depth/CHM.
|
||||
7. Backprop gradient достигает каждого active projector.
|
||||
|
||||
### A11. Персональные ablations
|
||||
|
||||
| ID | Сравнение |
|
||||
|---|---|
|
||||
| A-AB1 | static weights vs condition-aware |
|
||||
| A-AB2 | content-only vs content+quality |
|
||||
| A-AB3 | scalar vs channel gates |
|
||||
| A-AB4 | independent sigmoid vs normalized softmax gates |
|
||||
| A-AB5 | standard init vs identity-preserving init |
|
||||
| A-AB6 | stage 4 vs stages 3-4 |
|
||||
| A-AB7 | shared vs view-specific controller head |
|
||||
| A-AB8 | GAP vs GGeM vs attention pooling |
|
||||
|
||||
### A12. Falsification
|
||||
|
||||
Гипотеза condition-aware controller считается не подтверждённой, если выполняется любое:
|
||||
|
||||
- static residual не хуже primary в пределах шума;
|
||||
- gates почти постоянны по samples;
|
||||
- один gate насыщен для большинства samples без contribution gain;
|
||||
- улучшение есть только на одном seed;
|
||||
- compute существенно растёт без R@1 gain;
|
||||
- fused descriptor почти идентичен RGB при заявленном multimodal effect.
|
||||
|
||||
## 6. Кодовые артефакты
|
||||
|
||||
Ожидаемые файлы:
|
||||
|
||||
```text
|
||||
src/fuse_proj/models/fusion/base.py
|
||||
src/fuse_proj/models/fusion/registry.py
|
||||
src/fuse_proj/models/fusion/condition_aware.py
|
||||
in/config_files/fusion_condition_aware.gin
|
||||
tests/test_condition_aware.py
|
||||
reports/pavlenko/DESIGN.md
|
||||
reports/pavlenko/IMPLEMENTATION_AND_RESULTS.md
|
||||
```
|
||||
|
||||
## 7. Definition of Done
|
||||
|
||||
- [ ] Общий API принят всей командой.
|
||||
- [ ] Evidence matrix заполнена.
|
||||
- [ ] Три кандидата сравнены.
|
||||
- [ ] Primary и fallback выбраны до full run.
|
||||
- [ ] Satellite и UAV tensor flow полностью описаны.
|
||||
- [ ] Gates математически определены.
|
||||
- [ ] Реализованы diagnostics.
|
||||
- [ ] Все tests проходят.
|
||||
- [ ] Проведены A-AB1..A-AB8 для выбранного набора.
|
||||
- [ ] Мороз выполнил code review.
|
||||
- [ ] Результаты занесены в общий experiment registry.
|
||||
Reference in New Issue
Block a user