Breaking Changes
0.5.0
FSDP2 Default reduce_dtype Is Now float32
The default MixedPrecisionPolicy built by FSDP2Config now uses reduce_dtype=torch.float32 instead of torch.bfloat16. Forward/backward compute still uses param_dtype=torch.bfloat16, but gradient reduction now accumulates in fp32 to reduce communication-rounding error at larger data-parallel world sizes.
To restore the previous behavior, override the policy explicitly:
See the mixed-precision training guide for how FSDP2 reduction dtype interacts with model storage dtype and optimizer state.
0.4.0 · 26.04
CLI Signature Change
Before:
After:
A short alias am is also available:
The positional <command> and <domain> arguments have been removed. The recipe
class is now specified inside the YAML config through the recipe._target_ key.
YAML Config: New Required recipe Section
All YAML configs now require a top-level recipe: key:
Configs without this key will produce an error with guidance on which target to add.
Available Recipe Targets
Launcher Configuration Moved to YAML
Multi-node launch settings (Kubernetes, NeMo Run) are now configured entirely within the YAML config file rather than through CLI arguments.
If none of these sections are present, the job runs locally (interactive mode).
SLURM: Script-Based Submission
The slurm: YAML section and all related fields have been removed. SLURM
jobs are now submitted with sbatch directly, using a self-contained sbatch
script. Copy the reference template and adapt it to your cluster:
The script runs torchrun -m nemo_automodel.cli.app on each node, which
detects the distributed environment and executes the recipe in-process.
All cluster-specific configuration lives in the sbatch script where you can
see and edit it directly.
Lightweight CLI-Only Install
A new automodel[cli] install extra is available for login nodes or environments
where you only need to submit jobs (SLURM, k8s, NeMo-Run) without running
training locally:
This installs only pyyaml — no PyTorch, no CUDA dependencies. It is enough
to submit jobs through SLURM or Kubernetes. If you also need NeMo Run, install it
separately (pip install nemo-run). If you try to run a local/interactive job
with the CLI-only install, you will get a clear error message with instructions
to install the full package.
Media Dependencies Are Opt-In
The FFmpeg-bearing media dependencies (OpenCV, decord, the Qwen vision utils, and imageio-ffmpeg) are now opt-in extras, installed neither by default nor in the Docker container.
Two consequences when upgrading:
[vlm]alone no longer trains Qwen2.5-VL, Qwen3-Omni, or Mistral VLMs — addvlm-media.[all]no longer includes the media extras — add them withpip install nemo-automodel[media].
See the Installation Guide for details.
CLI Module Lives Inside the Package
The CLI entry-point lives at nemo_automodel/cli/app.py and is registered as
the automodel / am console entry-points. A thin convenience wrapper
(app.py) at the repository root is available for running from a source
checkout but is not installed as part of the package.
Example Wrapper Scripts Deprecated
The Python wrapper scripts in examples/ (for example, examples/llm_finetune/finetune.py)
are deprecated. They now print a deprecation warning and delegate to the recipe
directly. Use automodel <config.yaml> instead.