Expand description
Mitra (Tab2D) inference engine — zero-shot forward pass only (no fine-tuning; see the crate README for why). Architecture: per-feature quantile-bucketize embedding → prepend a learned y-embedding as an extra “feature” column → 12 layers of (row self/cross-attention → MLP → feature self-attention → MLP) → final LayerNorm + linear head, read out at the y-column.
Two deliberate, documented divergences from AutoGluon’s default MitraClassifier/
MitraRegressor (both scope decisions, not omissions):
random_mirror_x/random_mirror_regression(default ON upstream) are OFF here for determinism — even upstream they draw from the unseeded global NumPy RNG, so upstream’s own “default” behavior isn’t reproducible either without external global-seed control.- The per-call support-row shuffle (
np.random.RandomState.choice, seeded) is not replicated — same scope call already made for TabFM’s OOF K-fold splitting (seetabfm/src/ensemble/oof.rs): porting NumPy’s legacyRandomStateexactly is extra work for a step the model is mathematically invariant to (attention has no row positional encoding); rows are fed in the given order.