Understand the 4M training repository structure
mainThe 4M training codebase is organized into two primary functional areas:
fourm/models/ (Model Architecture)
Contains the core logic for 4M models:
models/fm.py: Defines theFourMmodule, including architecture and forward pass logic.models/encoder_embeddings.py&models/decoder_embeddings.py: Handle per-modality mapping of tokens/patches to embeddings and embeddings to logits, including positional and modality embeddings.fm_vit.py: Provides theFourMViTmodule for RGB-only ViT behavior.generate.py: Contains sampling logic and utilities for any-to-any generation.
fourm/data/ (Data Pipeline)
Handles the multimodal data lifecycle:
data/modality_info.py: Defines modality metadata (name, type, vocabulary size, etc.).data/unified_datasets.py: Loads aligned multimodal datasets from local paths or cloud stores like S3.data/modality_transforms.py: Manages aligned data augmentations viaUnifiedDataTransformand per-modality preprocessing.data/masking.py: Implements multimodal input/target masking using token budgets and Dirichlet sampling.