Présentation de NeMo Automodel
NVIDIA NeMo Automodel est une bibliothèque open-source PyTorch pour l'entraînement de modèles de diffusion. Elle est conçue pour fonctionner avec les modèles de la bibliothèque 🤗 Diffusers, qui est devenue la référence pour les modèles de diffusion. NeMo Automodel permet l'entraînement et le fine-tuning de ces modèles à grande échelle, en utilisant des techniques telles que le sharding, le caching et la parallélisation.
Fonctionnement de NeMo Automodel
NeMo Automodel utilise les classes de modèles et les pipelines de Diffusers pour charger et générer des données. Elle prend en charge les modèles de diffusion à base de flux, tels que FLUX.1-dev et Wan 2.1. La bibliothèque utilise également des techniques de prétraitement des données, telles que le caching et la mise en cache des latents, pour accélérer l'entraînement.
Avantages de NeMo Automodel
NeMo Automodel offre plusieurs avantages par rapport aux autres bibliothèques d'entraînement de modèles de diffusion. Elle permet notamment le fine-tuning de modèles sans conversion de points de contrôle, ce qui facilite l'utilisation de modèles pré-entraînés. De plus, elle prend en charge les modèles de diffusion à base de flux, ce qui permet d'obtenir de meilleurs résultats pour certaines tâches.
Exemple de fine-tuning avec NeMo Automodel
Pour fine-tuner un modèle de diffusion avec NeMo Automodel, il faut tout d'abord installer la bibliothèque et ses dépendances. Ensuite, il faut préparer les données d'entraînement, en utilisant des outils tels que le prétraitement des images et la mise en cache des latents. Enfin, il faut lancer l'entraînement en utilisant un script de fine-tuning, tel que celui fourni avec NeMo Automodel.
uv run --locked --no-default-groups --extra diffusion
torchrun --nproc-per-node=8
examples/diffusion/finetune/finetune.py
-c examples/diffusion/finetune/flux_t2i_flow.yaml
--model.transformer_engine_fp8 false
--data.dataloader.cache_dir /cache/flux_tarot
--data.dataloader.base_resolution '[384,640]'
--lr_scheduler.lr_decay_style constant
--lr_scheduler.lr_warmup_steps 20
--step_scheduler.max_steps 200
--step_scheduler.ckpt_every_steps 50
--checkpoint.checkpoint_dir /tmp/flux_tarot/checkpoints/full
--checkpoint.save_consolidated true
--seed 2026
Cet exemple montre comment fine-tuner un modèle de diffusion FLUX.1-dev sur un jeu de données d'images, en utilisant NeMo Automodel et la bibliothèque 🤗 Diffusers.