geno_lewm.training.trainer¶
trainer
¶
Torch trainer core for Carbon-backed GenoLeWM runs.
The public CLI still gates real training behind explicit preflight and
fixture modes. This module is the optional-runtime trainer boundary:
it is importable without PyTorch, but constructing batches, optimizers,
or train steps requires a geno-lewm[train] environment.
TrainerSeeds
dataclass
¶
Distinct RNG seeds consumed by the real training stack.
TorchDeterminismReport
dataclass
¶
TorchDeterminismReport(seed: int, deterministic: bool, cublas_workspace_config: str | None, torch_deterministic_algorithms: bool)
Runtime settings applied before a torch training run.
TorchTrainerBatch
dataclass
¶
TorchTrainerBatch(state: Tensor, target: Tensor, rel_edits: tuple[tuple[RelEdit, ...], ...], action_mask: Tensor, window_ids: tuple[str, ...])
One encoded minibatch consumed by :class:TorchTrainer.
TorchTrainerStepResult
dataclass
¶
TorchTrainerStepResult(step: int, lr_multiplier: float, loss: float, pred_loss: float, kl_reg: float, action_count: int, pred_var_per_dim: float)
Scalar outputs from one optimizer step.
TorchTrainer
¶
TorchTrainer(*, predictor: object, action_encoder: object, optimizer: object, config: GenoLeWMConfig, total_steps: int)
Minimal optimizer loop for Carbon-state predictor training.
Source code in geno_lewm/training/trainer.py
train_step
¶
Run one optimizer step over an encoded Carbon-state batch.
Source code in geno_lewm/training/trainer.py
configure_torch_reproducibility
¶
Seed Python/NumPy/PyTorch and optionally enable deterministic torch kernels.
Source code in geno_lewm/training/trainer.py
encode_training_batch
¶
encode_training_batch(*, encoder: object, tuples: Sequence[TrainingTuple], source_windows: Mapping[str, str], device: str | object | None = None, dtype: object | None = None) -> TorchTrainerBatch
Encode source/target windows for a real predictor-training minibatch.
Source code in geno_lewm/training/trainer.py
make_action_mask
¶
Return a boolean action mask for a ragged batch of relative edits.
Source code in geno_lewm/training/trainer.py
build_adamw_optimizer
¶
build_adamw_optimizer(*, predictor: object, action_encoder: object, config: GenoLeWMConfig) -> object
Build AdamW groups for predictor/action-encoder trainable parameters.
Source code in geno_lewm/training/trainer.py
wsd_lr_multiplier
¶
wsd_lr_multiplier(step: int, *, total_steps: int, warmup_steps: int, schedule: ScheduleName = 'wsd') -> float
Return the RFC-0005 WSD learning-rate multiplier for a 1-indexed step.
Source code in geno_lewm/training/trainer.py
set_optimizer_lr
¶
set_optimizer_lr(optimizer: object, *, step: int, total_steps: int, warmup_steps: int, schedule: ScheduleName = 'wsd') -> float
Set optimizer group LRs from each group's initial_lr and return multiplier.