Buckets:

hf-doc-build/doc / diffusers /main /fr /training /nemo_automodel.html
mishig's picture
download
raw
70.8 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;NeMo Automodel&quot;,&quot;local&quot;:&quot;nemo-automodel&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Modèles pris en charge&quot;,&quot;local&quot;:&quot;supported-models&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Installation&quot;,&quot;local&quot;:&quot;installation&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Exigences matérielles&quot;,&quot;local&quot;:&quot;hardware-requirements&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Préparation des données&quot;,&quot;local&quot;:&quot;data-preparation&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Format de sortie&quot;,&quot;local&quot;:&quot;output-format&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Configuration de l'entraînement&quot;,&quot;local&quot;:&quot;training-configuration&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Référence des champs de configuration&quot;,&quot;local&quot;:&quot;config-field-reference&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Lancer l'entraînement&quot;,&quot;local&quot;:&quot;launch-training&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Génération&quot;,&quot;local&quot;:&quot;generation&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Intégration de Diffusers&quot;,&quot;local&quot;:&quot;diffusers-integration&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Équipe NVIDIA&quot;,&quot;local&quot;:&quot;nvidia-team&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Ressources&quot;,&quot;local&quot;:&quot;resources&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}"/>
<link href="/docs/diffusers/main/en/_app/immutable/entry/start.0S0_iEoG.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/I9eooN77.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/Bupkjr9f.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/entry/app.CPdOxCbw.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/CyvZ3FS5.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/l0QnnOED.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/DnVIJfC5.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/DsnmJJEf.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/nodes/0.DteTvmQZ.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/CoSrdQax.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/nodes/375.boh_27Hd.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/DSPDl1gz.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/D5eijdnr.js" rel="modulepreload">
<!--1hvs45u--><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;NeMo Automodel&quot;,&quot;local&quot;:&quot;nemo-automodel&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Supported models&quot;,&quot;local&quot;:&quot;supported-models&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Installation&quot;,&quot;local&quot;:&quot;installation&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Hardware requirements&quot;,&quot;local&quot;:&quot;hardware-requirements&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Data preparation&quot;,&quot;local&quot;:&quot;data-preparation&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Output format&quot;,&quot;local&quot;:&quot;output-format&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Training configuration&quot;,&quot;local&quot;:&quot;training-configuration&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Config field reference&quot;,&quot;local&quot;:&quot;config-field-reference&quot;,&quot;sections&quot;:[],&quot;depth&quot;:3}],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Launch training&quot;,&quot;local&quot;:&quot;launch-training&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Generation&quot;,&quot;local&quot;:&quot;generation&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Diffusers integration&quot;,&quot;local&quot;:&quot;diffusers-integration&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;NVIDIA Team&quot;,&quot;local&quot;:&quot;nvidia-team&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Resources&quot;,&quot;local&quot;:&quot;resources&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}"/><!---->
<link href="/docs/diffusers/main/en/_app/immutable/assets/0.tn0RQdqM.css" rel="modulepreload"> <!--[--><!--[0--><!--[--><!--[0--><!--[--><p></p> <div class="items-center shrink-0 min-w-[100px] max-sm:min-w-[50px] justify-end ml-auto flex" style="float: inline-end; margin-inline-start: 10px; display: inline-flex; position: relative; z-index: 10;"><div dir="ltr" class="inline-flex rounded-md max-sm:rounded-sm"><button class="inline-flex items-center gap-1 h-7 max-sm:h-7 px-2 max-sm:px-1.5 text-sm font-medium text-gray-800 border border-r-0 rounded-l-md max-sm:rounded-l-sm border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-live="polite"><span class="inline-flex items-center justify-center rounded-md p-0.5 max-sm:p-0 hover:text-gray-800 dark:hover:text-gray-200"><svg class="sm:size-3.5 size-3" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----></span> <span dir="auto">Copy page</span></button> <button class="inline-flex items-center justify-center w-6 max-sm:w-5 h-7 max-sm:h-7 disabled:pointer-events-none text-sm text-gray-500 hover:text-gray-700 dark:hover:text-white rounded-r-md max-sm:rounded-r-sm border border-l transition border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-haspopup="menu" aria-expanded="false" aria-label="Open copy menu"><svg class="transition-transform text-gray-400 overflow-visible sm:size-3.5 size-3 rotate-0" width="1em" height="1em" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L6 6L11 1" stroke="currentColor"></path></svg><!----></button></div> <!--[-1--><!--]--></div><!----> <!--[0--><h1 class="relative group"><a id="nemo-automodel" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#nemo-automodel"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->NeMo Automodel<!----></span></h1><!--]--><!----> <p><a href="https://github.com/NVIDIA-NeMo/Automodel" rel="nofollow">NeMo Automodel</a> est une bibliothèque d’entraînement native PyTorch DTensor d’NVIDIA, conçue pour l’ajustement fin et la préformation de modèles de diffusion à grande échelle. Elle est native Hugging Face : entraînez n’importe quel modèle au format Diffusers issu du Hub, sans conversion de point de contrôle. La même recette YAML et le même script d’entraînement modifiable fonctionnent à toute échelle, d’un seul GPU à des centaines de nœuds, avec l’entraînement distribué <a href="https://pytorch.org/docs/stable/fsdp.html" rel="nofollow">FSDP2</a>, le chargement de données par lots multi-résolution et l’entraînement dans l’espace latent pré-encodé pour une utilisation maximale des GPU. Elle utilise le <a href="https://huggingface.co/papers/2210.02747" rel="nofollow">flow matching</a> pour l’entraînement et est entièrement open source (Apache 2.0), soutenue par NVIDIA et activement maintenue.</p> <p>NeMo Automodel s'intègre directement avec Diffusers. Il charge des modèles préentraînés depuis le Hugging Face Hub en utilisant les classes de modèles Diffusers et génère des sorties avec le <a href="/docs/diffusers/main/fr/api/pipelines/overview#diffusers.DiffusionPipeline">DiffusionPipeline</a>.</p> <p>Le flux de travail typique consiste à installer NeMo Automodel (via pip ou Docker), à préparer vos données en les encodant dans des fichiers <code>.meta</code>, à configurer une recette YAML, à lancer l’entraînement avec <code>torchrun</code> et à effectuer l’inférence avec le point de contrôle résultant.</p> <!--[1--><h2 class="relative group"><a id="supported-models" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#supported-models"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Modèles pris en charge<!----></span></h2><!--]--><!----> <table><thead><tr><th>Modèle</th><th>ID Hugging Face</th><th>Tâche</th><th>Paramètres</th><th>Cas d'usage</th></tr></thead><tbody><tr><td>Wan 2.1 T2V 1.3B</td><td><a href="https://huggingface.co/Wan-AI/Wan2.1-T2V-1.3B-Diffusers" rel="nofollow">Wan-AI/Wan2.1-T2V-1.3B-Diffusers</a></td><td>Texte vers vidéo</td><td>1.3B</td><td>génération de vidéos sur du matériel limité (compatible avec une seule A100 de 40 Go)</td></tr><tr><td>FLUX.1-dev</td><td><a href="https://huggingface.co/black-forest-labs/FLUX.1-dev" rel="nofollow">black-forest-labs/FLUX.1-dev</a></td><td>Texte vers image</td><td>12B</td><td>génération d'images de haute qualité</td></tr><tr><td>HunyuanVideo 1.5</td><td><a href="https://huggingface.co/hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-720p_t2v" rel="nofollow">hunyuanvideo-community/HunyuanVideo-1.5-Diffusers-720p_t2v</a></td><td>Texte vers vidéo</td><td>13B</td><td>génération de vidéos de haute qualité</td></tr></tbody></table> <!--[1--><h2 class="relative group"><a id="installation" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#installation"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Installation<!----></span></h2><!--]--><!----> <!--[2--><h3 class="relative group"><a id="hardware-requirements" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#hardware-requirements"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Exigences matérielles<!----></span></h3><!--]--><!----> <table><thead><tr><th>Composant</th><th>Minimum</th><th>Recommandé</th></tr></thead><tbody><tr><td>GPU</td><td>A100 40GB</td><td>A100 80 Go / H100</td></tr><tr><td>GPU</td><td>4</td><td>8+</td></tr><tr><td>RAM</td><td>128 Go</td><td>256 Go+</td></tr><tr><td>Stockage</td><td>SSD de 500 Go</td><td>2 To NVMe</td></tr></tbody></table> <p>Installez NeMo Automodel avec pip. Pour l’ensemble des méthodes d’installation (y compris à partir du code source), consultez le <a href="https://docs.nvidia.com/nemo/automodel/latest/guides/installation.html" rel="nofollow">guide d’installation de NeMo Automodel</a>.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->pip3 install nemo-automodel<!----></pre></div><!----> <p>Sinon, utilisez le conteneur Docker préconstruit qui inclut toutes les dépendances.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->docker pull nvcr.io/nvidia/nemo-automodel:26.02.00
docker run --gpus all -it --<span class="hljs-built_in">rm</span> --shm-size=8g nvcr.io/nvidia/nemo-automodel:26.02.00<!----></pre></div><!----> <blockquote class="warning"><p>Les points de contrôle sont perdus lorsque le conteneur se termine, sauf si le répertoire des points de contrôle est monté en bind-mount sur l'hôte. Par exemple, ajoutez <code>-v /host/path/checkpoints:/workspace/checkpoints</code> à la commande <code>docker run</code>.</p></blockquote> <!--[1--><h2 class="relative group"><a id="data-preparation" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#data-preparation"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Préparation des données<!----></span></h2><!--]--><!----> <p>NeMo Automodel entraîne des modèles de diffusion dans l'espace latent. Les images ou vidéos brutes doivent être prétraitées en fichiers <code>.meta</code> contenant les latents VAE et les embeddings de texte avant l'entraînement. Cela évite de réencoder à chaque étape d'entraînement.</p> <p>Utilisez l’outil de prétraitement intégré pour encoder vos données. L’outil répartit automatiquement le travail sur toutes les GPU disponibles.</p> <div class="flex space-x-2 items-center my-1.5 mr-8 h-7 !pl-0 -mx-3 md:mx-0"><!--[--><div class="flex items-center border rounded-lg px-1.5 py-1 leading-none select-none text-smd border-gray-800 bg-black dark:bg-gray-700 text-white">prétraitement vidéo</div><div class="flex items-center border rounded-lg px-1.5 py-1 leading-none select-none text-smd text-gray-500 cursor-pointer opacity-90 hover:text-gray-700 dark:hover:text-gray-200 hover:shadow-sm">prétraitement des images</div><!--]--></div> <div class="language-select"><div><p>La commande de prétraitement vidéo est identique pour Wan 2.1 et HunyuanVideo, mais les drapeaux diffèrent. Wan 2.1 utilise <code>--processor wan</code> avec <code>--resolution_preset</code> et <code>--caption_format sidecar</code>, tandis que HunyuanVideo utilise <code>--processor hunyuan</code> avec <code>--target_frames</code> pour définir le nombre d’images et <code>--caption_format meta_json</code>.</p> <p><strong>Wan 2.1 :</strong></p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->python -m tools.diffusion.preprocessing_multiprocess video \
--video_dir /data/videos \
--output_dir /cache \
--processor wan \
--resolution_preset 512p \
--caption_format sidecar<!----></pre></div><!----> <p><strong>HunyuanVideo :</strong></p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->python -m tools.diffusion.preprocessing_multiprocess video \
--video_dir /data/videos \
--output_dir /cache \
--processor hunyuan \
--target_frames 121 \
--caption_format meta_json<!----></pre></div><!----><!----></div><!----> <div hidden=""><div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->python -m tools.diffusion.preprocessing_multiprocess image \
--image_dir /data/images \
--output_dir /cache \
--processor flux \
--resolution_preset 512p<!----></pre></div><!----></div><!----><!----></div><!----> <!--[2--><h3 class="relative group"><a id="output-format" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#output-format"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Format de sortie<!----></span></h3><!--]--><!----> <p>La prétraitement génère un répertoire de cache organisé par résolutions. NeMo Automodel prend en charge l’entraînement multi-résolution par échantillonnage par lots. Les échantillons sont regroupés par résolution spatiale afin que chaque lot contienne des échantillons de même taille, évitant ainsi le gaspillage dû au bourrage.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class=" "><!----><span class="hljs-string">/cache/</span>
├── 512x512/ <span class="hljs-comment"># Resolution bucket</span>
│ ├── &lt;hash1&gt;<span class="hljs-string">.meta</span> <span class="hljs-comment"># VAE latents + text embeddings</span>
│ ├── &lt;hash2&gt;<span class="hljs-string">.meta</span>
│ └── <span class="hljs-string">...</span>
├── 832x480/ <span class="hljs-comment"># Another resolution bucket</span>
│ └── <span class="hljs-string">...</span>
├── metadata.json <span class="hljs-comment"># Global config (processor, model, total items)</span>
└── metadata_shard_0000.json <span class="hljs-comment"># Per-sample metadata (paths, resolutions, captions)</span><!----></pre></div><!----> <blockquote class="tip"><p>Consultez le guide <a href="https://docs.nvidia.com/nemo/automodel/latest/datasets/diffusion-dataset" rel="nofollow">Préparation des jeux de données de diffusion</a> pour les formats de légendes, les exigences relatives aux données d’entrée et tous les arguments de prétraitement disponibles.</p></blockquote> <!--[1--><h2 class="relative group"><a id="training-configuration" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#training-configuration"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Configuration de l'entraînement<!----></span></h2><!--]--><!----> <p>Le fine-tuning est piloté par deux composants :</p> <ol><li>Un script de recette (<a href="https://github.com/NVIDIA-NeMo/Automodel/blob/main/examples/diffusion/finetune/finetune.py" rel="nofollow">finetune.py</a>) est un point d’entrée Python qui contient la boucle d’entraînement : chargement du modèle, construction du dataloader, exécution des passes avant/arrière, calcul de la perte de flow matching, sauvegarde des points de contrôle et journalisation.</li> <li>Un fichier de configuration YAML spécifie tous les paramètres utilisés par la recette : le modèle à affiner, l'emplacement des données, les hyperparamètres de l'optimiseur, la stratégie de parallélisme, et plus encore. Vous personnalisez l'entraînement en modifiant ce fichier plutôt qu'en changeant le code, ce qui vous permet de passer d'un seul GPU à des centaines.</li></ol> <p>Tout champ YAML peut également être remplacé depuis l'interface en ligne de commande :</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->torchrun --nproc-per-node=8 examples/diffusion/finetune/finetune.py \
-c examples/diffusion/finetune/wan2_1_t2v_flow.yaml \
--optim.learning_rate 1e-5 \
--step_scheduler.num_epochs 50<!----></pre></div><!----> <p>Voici la configuration annotée pour l’ajustement fin de Wan 2.1 T2V 1.3B, avec chaque section expliquée.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-yaml "><!----><span class="hljs-attr">seed:</span> <span class="hljs-number">42</span>
<span class="hljs-comment"># ── Experiment tracking (optional) ──────────────────────────────────────────</span>
<span class="hljs-comment"># Weights &amp; Biases integration for logging metrics, losses, and learning rates.</span>
<span class="hljs-comment"># Set mode: &quot;disabled&quot; to turn off.</span>
<span class="hljs-attr">wandb:</span>
<span class="hljs-attr">project:</span> <span class="hljs-string">wan-t2v-flow-matching</span>
<span class="hljs-attr">mode:</span> <span class="hljs-string">online</span>
<span class="hljs-attr">name:</span> <span class="hljs-string">wan2_1_t2v_fm</span>
<span class="hljs-comment"># ── Model ───────────────────────────────────────────────────────────────────</span>
<span class="hljs-comment"># pretrained_model_name_or_path: any Hugging Face model ID or local path.</span>
<span class="hljs-comment"># mode: &quot;finetune&quot; loads pretrained weights; &quot;pretrain&quot; trains from scratch.</span>
<span class="hljs-attr">model:</span>
<span class="hljs-attr">pretrained_model_name_or_path:</span> <span class="hljs-string">Wan-AI/Wan2.1-T2V-1.3B-Diffusers</span>
<span class="hljs-attr">mode:</span> <span class="hljs-string">finetune</span>
<span class="hljs-comment"># ── Training schedule ───────────────────────────────────────────────────────</span>
<span class="hljs-comment"># global_batch_size: effective batch across all GPUs.</span>
<span class="hljs-comment"># Gradient accumulation is computed automatically: global / (local × num_gpus).</span>
<span class="hljs-attr">step_scheduler:</span>
<span class="hljs-attr">global_batch_size:</span> <span class="hljs-number">8</span>
<span class="hljs-attr">local_batch_size:</span> <span class="hljs-number">1</span>
<span class="hljs-attr">ckpt_every_steps:</span> <span class="hljs-number">1000</span> <span class="hljs-comment"># Save a checkpoint every N steps</span>
<span class="hljs-attr">num_epochs:</span> <span class="hljs-number">100</span>
<span class="hljs-attr">log_every:</span> <span class="hljs-number">2</span> <span class="hljs-comment"># Log metrics every N steps</span>
<span class="hljs-comment"># ── Data ────────────────────────────────────────────────────────────────────</span>
<span class="hljs-comment"># _target_: the dataloader factory function.</span>
<span class="hljs-comment"># Use build_video_multiresolution_dataloader for video models (Wan, HunyuanVideo).</span>
<span class="hljs-comment"># Use build_text_to_image_multiresolution_dataloader for image models (FLUX).</span>
<span class="hljs-comment"># model_type: &quot;wan&quot; or &quot;hunyuan&quot; (selects the correct latent format).</span>
<span class="hljs-comment"># base_resolution: target resolution for multiresolution bucketing.</span>
<span class="hljs-attr">data:</span>
<span class="hljs-attr">dataloader:</span>
<span class="hljs-attr">_target_:</span> <span class="hljs-string">nemo_automodel.components.datasets.diffusion.build_video_multiresolution_dataloader</span>
<span class="hljs-attr">cache_dir:</span> <span class="hljs-string">PATH_TO_YOUR_DATA</span>
<span class="hljs-attr">model_type:</span> <span class="hljs-string">wan</span>
<span class="hljs-attr">base_resolution:</span> [<span class="hljs-number">512</span>, <span class="hljs-number">512</span>]
<span class="hljs-attr">dynamic_batch_size:</span> <span class="hljs-literal">false</span> <span class="hljs-comment"># When true, adjusts batch per bucket to maintain constant memory</span>
<span class="hljs-attr">shuffle:</span> <span class="hljs-literal">true</span>
<span class="hljs-attr">drop_last:</span> <span class="hljs-literal">false</span>
<span class="hljs-attr">num_workers:</span> <span class="hljs-number">0</span>
<span class="hljs-comment"># ── Optimizer ───────────────────────────────────────────────────────────────</span>
<span class="hljs-comment"># learning_rate: 5e-6 is a good starting point for fine-tuning.</span>
<span class="hljs-comment"># Adjust weight_decay and betas for your dataset.</span>
<span class="hljs-attr">optim:</span>
<span class="hljs-attr">learning_rate:</span> <span class="hljs-number">5e-6</span>
<span class="hljs-attr">optimizer:</span>
<span class="hljs-attr">weight_decay:</span> <span class="hljs-number">0.01</span>
<span class="hljs-attr">betas:</span> [<span class="hljs-number">0.9</span>, <span class="hljs-number">0.999</span>]
<span class="hljs-comment"># ── Learning rate scheduler ─────────────────────────────────────────────────</span>
<span class="hljs-comment"># Supports cosine, linear, and constant schedules.</span>
<span class="hljs-attr">lr_scheduler:</span>
<span class="hljs-attr">lr_decay_style:</span> <span class="hljs-string">cosine</span>
<span class="hljs-attr">lr_warmup_steps:</span> <span class="hljs-number">0</span>
<span class="hljs-attr">min_lr:</span> <span class="hljs-number">1e-6</span>
<span class="hljs-comment"># ── Flow matching ───────────────────────────────────────────────────────────</span>
<span class="hljs-comment"># adapter_type: model-specific adapter — must match the model:</span>
<span class="hljs-comment"># &quot;simple&quot; for Wan 2.1, &quot;flux&quot; for FLUX.1-dev, &quot;hunyuan&quot; for HunyuanVideo.</span>
<span class="hljs-comment"># timestep_sampling: &quot;uniform&quot; for Wan, &quot;logit_normal&quot; for FLUX and HunyuanVideo.</span>
<span class="hljs-comment"># flow_shift: shifts the flow schedule (model-dependent).</span>
<span class="hljs-comment"># i2v_prob: probability of image-to-video conditioning during training (video models).</span>
<span class="hljs-attr">flow_matching:</span>
<span class="hljs-attr">adapter_type:</span> <span class="hljs-string">&quot;simple&quot;</span>
<span class="hljs-attr">adapter_kwargs:</span> {}
<span class="hljs-attr">timestep_sampling:</span> <span class="hljs-string">&quot;uniform&quot;</span>
<span class="hljs-attr">logit_mean:</span> <span class="hljs-number">0.0</span>
<span class="hljs-attr">logit_std:</span> <span class="hljs-number">1.0</span>
<span class="hljs-attr">flow_shift:</span> <span class="hljs-number">3.0</span>
<span class="hljs-attr">num_train_timesteps:</span> <span class="hljs-number">1000</span>
<span class="hljs-attr">i2v_prob:</span> <span class="hljs-number">0.3</span>
<span class="hljs-attr">use_loss_weighting:</span> <span class="hljs-literal">true</span>
<span class="hljs-comment"># ── FSDP2 distributed training ──────────────────────────────────────────────</span>
<span class="hljs-comment"># dp_size: number of GPUs for data parallelism (typically = total GPUs on node).</span>
<span class="hljs-comment"># tp_size, cp_size, pp_size: tensor, context, and pipeline parallelism.</span>
<span class="hljs-comment"># For most fine-tuning, dp_size is all you need; leave others at 1.</span>
<span class="hljs-attr">fsdp:</span>
<span class="hljs-attr">tp_size:</span> <span class="hljs-number">1</span>
<span class="hljs-attr">cp_size:</span> <span class="hljs-number">1</span>
<span class="hljs-attr">pp_size:</span> <span class="hljs-number">1</span>
<span class="hljs-attr">dp_replicate_size:</span> <span class="hljs-number">1</span>
<span class="hljs-attr">dp_size:</span> <span class="hljs-number">8</span>
<span class="hljs-comment"># ── Checkpointing ──────────────────────────────────────────────────────────</span>
<span class="hljs-comment"># checkpoint_dir: where to save checkpoints (use a persistent path with Docker).</span>
<span class="hljs-comment"># restore_from: path to resume training from a previous checkpoint.</span>
<span class="hljs-attr">checkpoint:</span>
<span class="hljs-attr">enabled:</span> <span class="hljs-literal">true</span>
<span class="hljs-attr">checkpoint_dir:</span> <span class="hljs-string">PATH_TO_YOUR_CKPT_DIR</span>
<span class="hljs-attr">model_save_format:</span> <span class="hljs-string">torch_save</span>
<span class="hljs-attr">save_consolidated:</span> <span class="hljs-literal">false</span>
<span class="hljs-attr">restore_from:</span> <span class="hljs-literal">null</span><!----></pre></div><!----> <!--[2--><h3 class="relative group"><a id="config-field-reference" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#config-field-reference"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Référence des champs de configuration<!----></span></h3><!--]--><!----> <p>Le tableau ci-dessous répertorie les configurations minimales requises. Consultez les <a href="https://github.com/NVIDIA-NeMo/Automodel/tree/main/examples/diffusion/finetune" rel="nofollow">exemples NeMo Automodel</a> pour obtenir des configurations complètes pour tous les modèles.</p> <table><thead><tr><th>Section</th><th>Requis ?</th><th>À modifier</th></tr></thead><tbody><tr><td><code>model</code></td><td>Oui</td><td>Définissez <code>pretrained_model_name_or_path</code> sur l’identifiant du modèle Hugging Face. Définissez <code>mode: finetune</code> ou <code>mode: pretrain</code>.</td></tr><tr><td><code>step_scheduler</code></td><td>Oui</td><td><code>global_batch_size</code> est la taille de lot effective sur l’ensemble des GPU. <code>ckpt_every_steps</code> contrôle la fréquence des points de contrôle. L’accumulation des gradients est calculée automatiquement.</td></tr><tr><td><code>data</code></td><td>Oui</td><td>Définissez <code>cache_dir</code> sur le chemin contenant vos fichiers <code>.meta</code> prétraités. Modifiez <code>_target_</code> et <code>model_type</code> pour d'autres modèles.</td></tr><tr><td><code>optim</code></td><td>Oui</td><td><code>learning_rate: 5e-6</code> est une valeur par défaut appropriée pour le fine-tuning. Ajustez-la en fonction de votre jeu de données et de votre modèle.</td></tr><tr><td><code>lr_scheduler</code></td><td>Oui</td><td>Choisissez <code>cosine</code>, <code>linear</code> ou <code>constant</code> pour <code>lr_decay_style</code>. Définissez <code>lr_warmup_steps</code> pour un réchauffage progressif.</td></tr><tr><td><code>flow_matching</code></td><td>Oui</td><td><code>adapter_type</code> doit correspondre au modèle (<code>simple</code> pour Wan, <code>flux</code> pour FLUX, <code>hunyuan</code> pour HunyuanVideo). Consultez les configurations spécifiques au modèle pour <code>adapter_kwargs</code>.</td></tr><tr><td><code>fsdp</code></td><td>Oui</td><td>Définissez <code>dp_size</code> sur le nombre de GPU. Pour un déploiement multi-nœuds, définissez-le sur le nombre total de GPU sur tous les nœuds.</td></tr><tr><td><code>checkpoint</code></td><td>Recommandé</td><td>Définissez <code>checkpoint_dir</code> sur un chemin persistant, en particulier dans Docker. Utilisez <code>restore_from</code> pour reprendre depuis un point de contrôle précédent.</td></tr><tr><td><code>wandb</code></td><td>Facultatif</td><td>Configurez pour activer le suivi des expériences Weights &amp; Biases. Définissez <code>mode: disabled</code> pour le désactiver.</td></tr></tbody></table> <!--[1--><h2 class="relative group"><a id="launch-training" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#launch-training"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Lancer l'entraînement<!----></span></h2><!--]--><!----> <div class="flex space-x-2 items-center my-1.5 mr-8 h-7 !pl-0 -mx-3 md:mx-0"><!--[--><div class="flex items-center border rounded-lg px-1.5 py-1 leading-none select-none text-smd border-gray-800 bg-black dark:bg-gray-700 text-white">nœud unique</div><div class="flex items-center border rounded-lg px-1.5 py-1 leading-none select-none text-smd text-gray-500 cursor-pointer opacity-90 hover:text-gray-700 dark:hover:text-gray-200 hover:shadow-sm">multi-nœud</div><!--]--></div> <div class="language-select"><div><div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->torchrun --nproc-per-node=8 \
examples/diffusion/finetune/finetune.py \
-c examples/diffusion/finetune/wan2_1_t2v_flow.yaml<!----></pre></div><!----></div><!----> <div hidden=""><p>Exécutez ce qui suit sur chaque nœud, en définissant <code>NODE_RANK</code> en conséquence :</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!----><span class="hljs-built_in">export</span> MASTER_ADDR=node0.hostname
<span class="hljs-built_in">export</span> MASTER_PORT=29500
<span class="hljs-built_in">export</span> NODE_RANK=0 <span class="hljs-comment"># 0 on master, 1 on second node, etc.</span>
torchrun \
--nnodes=2 \
--nproc-per-node=8 \
--node_rank=<span class="hljs-variable">${NODE_RANK}</span> \
--rdzv_backend=c10d \
--rdzv_endpoint=<span class="hljs-variable">${MASTER_ADDR}</span>:<span class="hljs-variable">${MASTER_PORT}</span> \
examples/diffusion/finetune/finetune.py \
-c examples/diffusion/finetune/wan2_1_t2v_flow_multinode.yaml<!----></pre></div><!----> <blockquote class="note"><p>Pour l’entraînement multi-nœuds, définissez <code>fsdp.dp_size</code> dans le fichier YAML sur le nombre <strong>total</strong> de GPU sur l’ensemble des nœuds (par exemple, 16 pour 2 nœuds avec 8 GPU chacun).</p></blockquote><!----></div><!----><!----></div><!----> <!--[1--><h2 class="relative group"><a id="generation" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#generation"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Génération<!----></span></h2><!--]--><!----> <p>Après l’entraînement, générez des vidéos ou des images à partir de prompts texte en utilisant le point de contrôle affiné.</p> <div class="flex space-x-2 items-center my-1.5 mr-8 h-7 !pl-0 -mx-3 md:mx-0"><!--[--><div class="flex items-center border rounded-lg px-1.5 py-1 leading-none select-none text-smd border-gray-800 bg-black dark:bg-gray-700 text-white">Wan 2.1</div><div class="flex items-center border rounded-lg px-1.5 py-1 leading-none select-none text-smd text-gray-500 cursor-pointer opacity-90 hover:text-gray-700 dark:hover:text-gray-200 hover:shadow-sm">FLUX</div><div class="flex items-center border rounded-lg px-1.5 py-1 leading-none select-none text-smd text-gray-500 cursor-pointer opacity-90 hover:text-gray-700 dark:hover:text-gray-200 hover:shadow-sm">HunyuanVideo</div><!--]--></div> <div class="language-select"><div><div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->python examples/diffusion/generate/generate.py \
-c examples/diffusion/generate/configs/generate_wan.yaml<!----></pre></div><!----> <p>Avec un point de contrôle ajusté finement :</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->python examples/diffusion/generate/generate.py \
-c examples/diffusion/generate/configs/generate_wan.yaml \
--model.checkpoint ./checkpoints/step_1000 \
--inference.prompts <span class="hljs-string">&#x27;[&quot;A dog running on a beach&quot;]&#x27;</span><!----></pre></div><!----><!----></div><!----> <div hidden=""><div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->python examples/diffusion/generate/generate.py \
-c examples/diffusion/generate/configs/generate_flux.yaml<!----></pre></div><!----> <p>Avec un point de contrôle ajusté finement :</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->python examples/diffusion/generate/generate.py \
-c examples/diffusion/generate/configs/generate_flux.yaml \
--model.checkpoint ./checkpoints/step_1000 \
--inference.prompts <span class="hljs-string">&#x27;[&quot;A dog running on a beach&quot;]&#x27;</span><!----></pre></div><!----><!----></div><!----> <div hidden=""><div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->python examples/diffusion/generate/generate.py \
-c examples/diffusion/generate/configs/generate_hunyuan.yaml<!----></pre></div><!----> <p>Avec un point de contrôle ajusté finement :</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> Copié</div><!----></button><!----></div> <pre class="language-bash "><!---->python examples/diffusion/generate/generate.py \
-c examples/diffusion/generate/configs/generate_hunyuan.yaml \
--model.checkpoint ./checkpoints/step_1000 \
--inference.prompts <span class="hljs-string">&#x27;[&quot;A dog running on a beach&quot;]&#x27;</span><!----></pre></div><!----><!----></div><!----><!----></div><!----> <!--[1--><h2 class="relative group"><a id="diffusers-integration" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#diffusers-integration"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Intégration de Diffusers<!----></span></h2><!--]--><!----> <p>NeMo Automodel est construit sur la base de Diffusers et l’utilise comme socle pour le chargement des modèles et l’inférence. Il charge les modèles directement depuis le Hugging Face Hub en utilisant les classes de modèles Diffusers telles que <a href="/docs/diffusers/main/fr/api/models/wan_transformer_3d#diffusers.WanTransformer3DModel">WanTransformer3DModel</a>, <a href="/docs/diffusers/main/fr/api/models/flux_transformer#diffusers.FluxTransformer2DModel">FluxTransformer2DModel</a> et <a href="/docs/diffusers/main/fr/api/models/hunyuan_video_transformer_3d#diffusers.HunyuanVideoTransformer3DModel">HunyuanVideoTransformer3DModel</a>, et génère des sorties via les pipelines Diffusers comme <a href="/docs/diffusers/main/fr/api/pipelines/wan#diffusers.WanPipeline">WanPipeline</a> et <a href="/docs/diffusers/main/fr/api/pipelines/flux#diffusers.FluxPipeline">FluxPipeline</a>.</p> <p>Cette intégration offre plusieurs avantages aux utilisateurs de Diffusers :</p> <ul><li><strong>Aucune conversion de point de contrôle</strong> : les poids préentraînés du Hub fonctionnent immédiatement. Pointez <code>pretrained_model_name_or_path</code> vers n’importe quel identifiant de modèle au format Diffusers et commencez l’entraînement sans délai.</li> <li><strong>Prise en charge des modèles dès le jour 0</strong> : lorsqu'un nouveau modèle de diffusion est ajouté à Diffusers et téléversé sur le Hub, il peut être affiné avec NeMo Automodel sans attendre un script d'entraînement dédié.</li> <li><strong>Sorties compatibles avec les pipelines</strong> : les points de contrôle affinés sont enregistrés dans un format qui peut être rechargé directement dans les pipelines Diffusers pour l'inférence, le partage sur le Hub, ou une optimisation supplémentaire avec des outils tels que la quantification et la compilation.</li> <li><strong>Entraînement évolutif pour les modèles Diffusers</strong> : NeMo Automodel ajoute des capacités d'entraînement distribué (FSDP2, multi-nœuds, bucketing multi-résolution) qui dépassent ce que fournissent les scripts d'entraînement intégrés de Diffusers, tout en conservant les mêmes interfaces de modèle et de pipeline.</li> <li><strong>Écosystème partagé</strong> : tout modèle, adaptateur LoRA ou composant de pipeline issu de l'écosystème Diffusers reste compatible tout au long du flux de travail d'entraînement et d'inférence.</li></ul> <!--[1--><h2 class="relative group"><a id="nvidia-team" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#nvidia-team"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Équipe NVIDIA<!----></span></h2><!--]--><!----> <ul><li>Pranav Prashant Thombre, <a href="mailto:pthombre@nvidia.com">pthombre@nvidia.com</a></li> <li>Linnan Wang, <a href="mailto:linnanw@nvidia.com">linnanw@nvidia.com</a></li> <li>Alexandros Koumparoulis, <a href="mailto:akoumparouli@nvidia.com">akoumparouli@nvidia.com</a></li></ul> <!--[1--><h2 class="relative group"><a id="resources" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#resources"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Ressources<!----></span></h2><!--]--><!----> <ul><li><a href="https://github.com/NVIDIA-NeMo/Automodel" rel="nofollow">GitHub de NeMo Automodel</a></li> <li><a href="https://docs.nvidia.com/nemo/automodel/latest/recipes-e2e-examples/diffusion-fine-tuning" rel="nofollow">Guide d’affinage des modèles de diffusion</a></li> <li><a href="https://docs.nvidia.com/nemo/automodel/latest/datasets/diffusion-dataset" rel="nofollow">Préparation du jeu de données de diffusion</a></li> <li><a href="https://docs.nvidia.com/nemo/automodel/latest/model-coverage/diffusion.html" rel="nofollow">Couverture des modèles de diffusion</a></li> <li><a href="https://huggingface.co/docs/transformers/en/community_integrations/nemo_automodel_finetuning" rel="nofollow">NeMo Automodel pour Transformers (ajustement fin de LLM/VLM)</a></li></ul> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/diffusers/blob/main/docs/source/en/training/nemo_automodel.md" target="_blank"><svg class="mr-1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M31,16l-7,7l-1.41-1.41L28.17,16l-5.58-5.59L24,9l7,7z"></path><path d="M1,16l7-7l1.41,1.41L3.83,16l5.58,5.59L8,23l-7-7z"></path><path d="M12.419,25.484L17.639,6.552l1.932,0.518L14.351,26.002z"></path></svg><!----> <span><span class="underline">Update</span> on GitHub</span></a><!----> <p></p><!--]--><!----><!--]--><!--]--><!--]--> <!--[-1--><!--]--><!--]-->
<script>
{
__sveltekit_1qsdbwf = {
base: "/docs/diffusers/main/en",
assets: "/docs/diffusers/main/en"
};
const element = document.currentScript.parentElement;
Promise.all([
import("/docs/diffusers/main/en/_app/immutable/entry/start.0S0_iEoG.js"),
import("/docs/diffusers/main/en/_app/immutable/entry/app.CPdOxCbw.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 375],
data: [null,null],
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
70.8 kB
·
Xet hash:
86b698ff6b8bbfcbcf0da67978c1a7ae89f66f8f3dcdd115b9259742f656c33d

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.