docs(adr-027): mark MERIDIAN iter 2 complete (CI-verified tch path, #68)
Iteration status block: iter 1 + 2a + 2b done; iter 3 plan listed (heterogeneous-CSI ingest, real GPU pre-train, per-sample masking + transformer blocks, fine-tune §2.x heads, cross-domain eval, RVF segment). Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
parent
7d26b15eef
commit
dcfa922518
|
|
@ -84,9 +84,10 @@ Five concurrent lines of research have converged on the domain generalization pr
|
|||
|
||||
**Implementation status & plan.**
|
||||
|
||||
- ✅ **Iteration 1** (this ADR revision): `wifi-densepose-train::csi_mae` — `MaeConfig` (+`validate`), `MaskStrategy`, `TokenLayout`, deterministic `mask_csi_window` / `reassemble_tokens` (pure Rust, dependency-free PRNG, 8 unit tests, builds & tests under `cargo test --no-default-features`); a re-scoped ADR (this section); a `model` submodule skeleton (v0 stub, gated behind `tch-backend`).
|
||||
- ◻ **Iteration 2**: the tch encoder/decoder (dual-stream → shared latent → narrow decoder over all positions with learned mask tokens → reconstruct amp+phase), `reconstruction_loss`, `pretrain_step`, a `pretrain-mae` binary driving `SyntheticCsiDataset` / `MmFiDataset`; information-guided masking; a "loss decreases over N steps on synthetic data" gated test.
|
||||
- ◻ **Iteration 3+**: pool & ingest heterogeneous CSI; real pre-train run (needs GPU — `scripts/gcloud-train.sh` / the cognitum project); fine-tune the §2.x heads on top; cross-domain eval (§4.6 protocol); ship the encoder as an RVF segment (§4.7).
|
||||
- ✅ **Iteration 1**: `wifi-densepose-train::csi_mae` — `MaeConfig` (+`validate`), `MaskStrategy`, `TokenLayout`, deterministic `mask_csi_window` / `reassemble_tokens` (pure Rust, dependency-free PRNG, unit tests, builds & tests under `cargo test --no-default-features`); the re-scoped ADR (this section).
|
||||
- ✅ **Iteration 2a**: information-guided masking — `MaskStrategy::InfoGuided` now masks high-information tokens (token "information" = variance of amplitude + variance of phase), weighted-without-replacement via Efraimidis–Spirakis, deterministic in seed; replaces the iter-1 Random fallback. +3 tests.
|
||||
- ✅ **Iteration 2b** (CI-verified): `csi_mae::model` behind `tch-backend` — `CsiMae` (dual-stream amp+phase per-token embed → fuse → residual-MLP encoder over visible tokens → flatten-to-latent bottleneck → learned per-position query + broadcast latent → residual-MLP decoder → `dec_amp_head`/`dec_ph_head` → `index_select` the masked positions); `CsiMae::reconstruction_loss` (MSE amp + `phase_w`·MSE phase); `MaeBatch::from_windows` (partition from window 0, reused across the batch — `n_tokens` is fixed); `pretrain_step`; `src/bin/pretrain_mae.rs` (synthetic-data driver, `required-features = ["tch-backend"]`); a gated "loss halves when overfitting one batch" smoke test. v0 limits noted in the module docs: fixed `n_tokens`, batch-shared masking, MSE on unwrapped phase. The dev box that wrote this had no LibTorch, so the tch path is verified by CI (`tch-backend` feature), not locally.
|
||||
- ◻ **Iteration 3+**: pool & ingest heterogeneous CSI (own recordings + MM-Fi + Wi-Pose + multi-band virtual sub-carriers); real pre-train run (GPU — `scripts/gcloud-train.sh` / the cognitum project); per-sample masking + self-attention transformer blocks (lift the v0 limits); fine-tune the §2.x heads on top of the pre-trained encoder; cross-domain eval (§4.6 protocol); ship the encoder as an RVF segment (§4.7).
|
||||
- ⏸ **Out of scope here**: the per-room SFDA adaptation (stage 3) — its own ADR.
|
||||
|
||||
The remainder of this ADR (§2.1 onward) describes the **fine-tune-stage architecture** — read it as "the head and regularisers that sit on top of the §2.0 pre-trained encoder", not as a from-scratch design.
|
||||
|
|
|
|||
Loading…
Reference in New Issue