Buckets:

mishig's picture
download
raw
33.2 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Empleos en Hugging Face&quot;,&quot;local&quot;:&quot;hugging-face-jobs&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Entrena un LoRA en Jobs&quot;,&quot;local&quot;:&quot;train-a-lora-on-jobs&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Gestión de un trabajo&quot;,&quot;local&quot;:&quot;managing-a-job&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Entrenar con tus propias imágenes&quot;,&quot;local&quot;:&quot;train-on-your-own-images&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Entrenar en FP8&quot;,&quot;local&quot;:&quot;train-in-fp8&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Ejecutar un script sin una cabecera de dependencias&quot;,&quot;local&quot;:&quot;run-a-script-without-a-dependency-header&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Guardar puntos de control para ejecuciones largas&quot;,&quot;local&quot;:&quot;save-checkpoints-for-long-runs&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Próximos pasos&quot;,&quot;local&quot;:&quot;next-steps&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/371.mqOHi8TH.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/DSPDl1gz.js" rel="modulepreload">
<!--1ffuigs--><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Hugging Face Jobs&quot;,&quot;local&quot;:&quot;hugging-face-jobs&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Train a LoRA on Jobs&quot;,&quot;local&quot;:&quot;train-a-lora-on-jobs&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Managing a Job&quot;,&quot;local&quot;:&quot;managing-a-job&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Train on your own images&quot;,&quot;local&quot;:&quot;train-on-your-own-images&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Train in FP8&quot;,&quot;local&quot;:&quot;train-in-fp8&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Run a script without a dependency header&quot;,&quot;local&quot;:&quot;run-a-script-without-a-dependency-header&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Save checkpoints for long runs&quot;,&quot;local&quot;:&quot;save-checkpoints-for-long-runs&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Next steps&quot;,&quot;local&quot;:&quot;next-steps&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="hugging-face-jobs" 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="#hugging-face-jobs"><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><!---->Empleos en Hugging Face<!----></span></h1><!--]--><!----> <p><a href="https://huggingface.co/docs/hub/jobs" rel="nofollow">Hugging Face Jobs</a> se ejecuta en GPUs de Hugging Face, por lo que no necesitas configurar una máquina y la ejecución continúa aunque cierres tu terminal. Los scripts de entrenamiento de Diffusers se ejecutan en Jobs directamente desde su URL de GitHub, sin necesidad de clonar el repositorio ni instalar nada localmente.</p> <p>Antes de comenzar, siga el <a href="https://huggingface.co/docs/hub/jobs-quickstart" rel="nofollow">Inicio rápido de Jobs</a> para instalar la CLI <code>hf</code>, iniciar sesión y añadir créditos a su cuenta.</p> <!--[1--><h2 class="relative group"><a id="train-a-lora-on-jobs" 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="#train-a-lora-on-jobs"><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><!---->Entrena un LoRA en Jobs<!----></span></h2><!--]--><!----> <p>El siguiente comando entrena un LoRA para <a href="https://huggingface.co/black-forest-labs/FLUX.2-klein-4B" rel="nofollow">FLUX.2-klein-4B</a> con las cinco fotos de perros en <a href="https://huggingface.co/datasets/diffusers/dog-example" rel="nofollow">diffusers/dog-example</a>. Se ejecuta en una sola A10G y sube el LoRA a tu espacio de nombres en el Hub.</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> Copiado</div><!----></button><!----></div> <pre class="language-bash "><!----><span class="hljs-comment"># 20 steps is a test run. For a real run, raise --max_train_steps</span>
<span class="hljs-comment"># (the FLUX.2 README uses 500) and --timeout to match.</span>
hf <span class="hljs-built_in">jobs</span> uv run --flavor a10g-small --<span class="hljs-built_in">timeout</span> 30m -s HF_TOKEN -- \
https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_flux2_klein.py \
--pretrained_model_name_or_path black-forest-labs/FLUX.2-klein-4B \
--dataset_name diffusers/dog-example \
--instance_prompt <span class="hljs-string">&quot;a photo of sks dog&quot;</span> \
--resolution 512 --mixed_precision bf16 --guidance_scale 1 \
--gradient_checkpointing --cache_latents \
--optimizer adamW --use_8bit_adam --learning_rate 1e-4 \
--max_train_steps 20 --seed 0 \
--output_dir /tmp/out \
--push_to_hub --hub_model_id your-username/klein-dog-lora<!----></pre></div><!----> <p><code>uv</code> instala las dependencias listadas en la cabecera <code># /// script</code> del script, incluyendo Diffusers desde <code>main</code>. Los Jobs no reciben un token de Hugging Face de forma predeterminada, por lo que <code>-s HF_TOKEN</code> lo reenvía para permitir que el script suba el LoRA. El disco del Job se descarta cuando el Job termina, y todo lo que no se suba se pierde. Las guías de <a href="./dreambooth">DreamBooth</a> y <a href="./lora">LoRA</a> explican los argumentos de entrenamiento.</p> <!--[1--><h2 class="relative group"><a id="managing-a-job" 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="#managing-a-job"><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><!---->Gestión de un trabajo<!----></span></h2><!--]--><!----> <p>Los registros de entrenamiento se imprimen en tu terminal mientras el Job se ejecuta. Cerrar la terminal o presionar <code>Ctrl+C</code> no detiene el entrenamiento, porque el Job se ejecuta en las máquinas de Hugging Face. Para iniciar una ejecución larga sin ocupar tu terminal, agrega <code>-d</code> antes de <code>--</code>. El comando imprime el ID del Job y regresa.</p> <p>Use el ID del trabajo para volver a conectar con los registros, verificar la memoria y el uso de la GPU mientras el modelo se entrena, o detener una ejecución.</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> Copiado</div><!----></button><!----></div> <pre class="language-bash "><!---->hf <span class="hljs-built_in">jobs</span> logs -f &lt;job_id&gt;
hf <span class="hljs-built_in">jobs</span> stats &lt;job_id&gt;
hf <span class="hljs-built_in">jobs</span> cancel &lt;job_id&gt;<!----></pre></div><!----> <p>Si la ejecución falla, <code>hf jobs inspect &lt;job_id></code> muestra el mensaje de error. Consulta <a href="https://huggingface.co/docs/hub/jobs-manage" rel="nofollow">Manage Jobs</a> para ver los demás comandos.</p> <!--[1--><h2 class="relative group"><a id="train-on-your-own-images" 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="#train-on-your-own-images"><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><!---->Entrenar con tus propias imágenes<!----></span></h2><!--]--><!----> <p>Para entrenar con tus imágenes, monta su carpeta en el Job con <code>-v</code> y pasa la ruta de montaje a <code>--instance_data_dir</code> en lugar de <code>--dataset_name</code>. Jobs sube la carpeta a un bucket privado antes de que comience el Job y la monta en solo lectura. Subir la misma carpeta de nuevo solo envía los archivos nuevos o modificados.</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> Copiado</div><!----></button><!----></div> <pre class="language-bash "><!---->hf <span class="hljs-built_in">jobs</span> uv run --flavor a10g-small --<span class="hljs-built_in">timeout</span> 30m -s HF_TOKEN \
-v ./my-dog:/data -- \
https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_flux2_klein.py \
--pretrained_model_name_or_path black-forest-labs/FLUX.2-klein-4B \
--instance_data_dir /data \
--instance_prompt <span class="hljs-string">&quot;a photo of sks dog&quot;</span> \
--resolution 512 --mixed_precision bf16 --guidance_scale 1 \
--gradient_checkpointing --cache_latents \
--optimizer adamW --use_8bit_adam --learning_rate 1e-4 \
--max_train_steps 20 --seed 0 \
--output_dir /tmp/out \
--push_to_hub --hub_model_id your-username/klein-dog-lora<!----></pre></div><!----> <p>El script abre todos los archivos de <code>--instance_data_dir</code> como imágenes, por lo que debe mantener solo imágenes en la carpeta. Un archivo oculto como <code>.DS_Store</code> hace que la ejecución falle. Consulte <a href="https://huggingface.co/docs/hub/jobs-configuration#local-directories" rel="nofollow">Directorios locales</a> para obtener más información sobre el montaje de una carpeta.</p> <p>Con <code>--with_prior_preservation</code>, el script genera imágenes de clase en <code>--class_data_dir</code> antes de que comience el entrenamiento. Indícale una ruta donde el Job pueda escribir. Para reutilizar las imágenes de clase en ejecuciones posteriores, colócalas en un montaje de bucket de lectura y escritura, como el de <a href="#save-checkpoints-for-long-runs">Guardar puntos de control para ejecuciones largas</a>.</p> <!--[1--><h2 class="relative group"><a id="train-in-fp8" 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="#train-in-fp8"><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><!---->Entrenar en FP8<!----></span></h2><!--]--><!----> <p>Los scripts de DreamBooth LoRA para FLUX.2, Z-Image, Ideogram 4 y Krea 2 aceptan <code>--do_fp8_training</code> para entrenar en FP8 con <a href="https://github.com/pytorch/ao" rel="nofollow">torchao</a>, lo que reduce el uso de memoria. La cabecera de ningún script incluye torchao, por lo que hay que añadir <code>--with torchao</code> antes de <code>--</code>. El FP8 también requiere una GPU con capacidad de cálculo 8.9 o superior, como una L4 (<code>l4x1</code>) o una L40S (<code>l40sx1</code>). La A10G (8.6) y la A100 (8.0) no la admiten.</p> <!--[1--><h2 class="relative group"><a id="run-a-script-without-a-dependency-header" 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="#run-a-script-without-a-dependency-header"><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><!---->Ejecutar un script sin una cabecera de dependencias<!----></span></h2><!--]--><!----> <p>Solo los scripts en <a href="https://github.com/huggingface/diffusers/tree/main/examples/dreambooth" rel="nofollow">examples/dreambooth</a> y <a href="https://github.com/huggingface/diffusers/tree/main/examples/advanced_diffusion_training" rel="nofollow">examples/advanced_diffusion_training</a> declaran sus dependencias en un bloque <code># /// script</code> al inicio del archivo. Algunos scripts de esas carpetas, como <code>train_dreambooth_lora_sdxl.py</code>, no lo tienen.</p> <p>Para un script sin encabezado, pasa cada dependencia con <code>--with</code>. Instala Diffusers desde el código fuente, porque los scripts de entrenamiento requieren la versión de desarrollo. Las demás dependencias provienen del archivo <code>requirements.txt</code> del script y de sus importaciones.</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> Copiado</div><!----></button><!----></div> <pre class="language-bash "><!---->hf <span class="hljs-built_in">jobs</span> uv run --flavor a10g-small --<span class="hljs-built_in">timeout</span> 30m -s HF_TOKEN \
--with <span class="hljs-string">&quot;diffusers @ git+https://github.com/huggingface/diffusers.git&quot;</span> \
--with torch --with torchvision --with accelerate --with transformers \
--with peft --with datasets --with bitsandbytes \
--with ftfy --with tensorboard --with Jinja2 -- \
https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_sdxl.py \
--pretrained_model_name_or_path stabilityai/stable-diffusion-xl-base-1.0 \
--pretrained_vae_model_name_or_path madebyollin/sdxl-vae-fp16-fix \
--dataset_name diffusers/dog-example \
--instance_prompt <span class="hljs-string">&quot;a photo of sks dog&quot;</span> \
--resolution 1024 --mixed_precision fp16 \
--gradient_checkpointing --use_8bit_adam --learning_rate 1e-4 \
--max_train_steps 20 --seed 0 \
--output_dir /tmp/out \
--push_to_hub --hub_model_id your-username/sdxl-dog-lora<!----></pre></div><!----> <!--[1--><h2 class="relative group"><a id="save-checkpoints-for-long-runs" 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="#save-checkpoints-for-long-runs"><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><!---->Guardar puntos de control para ejecuciones largas<!----></span></h2><!--]--><!----> <p>Una ejecución que tarda horas puede agotar el tiempo de espera o fallar antes de terminar. Para conservar su progreso, monte un <a href="https://huggingface.co/docs/hub/storage-buckets" rel="nofollow">Storage Bucket</a> en el Job con <code>-v</code> y apunte <code>--output_dir</code> hacia él. Cree el bucket primero con <code>hf buckets create</code>.</p> <p>El script guarda una carpeta <code>checkpoint-&lt;step></code> en <code>--output_dir</code> cada <code>--checkpointing_steps</code> pasos (500 por defecto), de modo que los checkpoints se almacenan en el bucket a medida que avanza el entrenamiento. <code>--checkpoints_total_limit</code> limita cuántos se conservan. <code>--resume_from_checkpoint latest</code> retoma desde el checkpoint más reciente en <code>--output_dir</code> y comienza desde cero si no existe ninguno, por lo que el mismo comando funciona para la primera ejecución y para cada reinicio.</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> Copiado</div><!----></button><!----></div> <pre class="language-bash "><!---->hf <span class="hljs-built_in">jobs</span> uv run --flavor a10g-small --<span class="hljs-built_in">timeout</span> 8h -s HF_TOKEN \
-v hf://buckets/your-username/checkpoints:/ckpt -- \
https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_flux2_klein.py \
--pretrained_model_name_or_path black-forest-labs/FLUX.2-klein-4B \
--dataset_name diffusers/dog-example \
--instance_prompt <span class="hljs-string">&quot;a photo of sks dog&quot;</span> \
--resolution 1024 --mixed_precision bf16 --guidance_scale 1 \
--gradient_checkpointing --cache_latents \
--optimizer adamW --use_8bit_adam --learning_rate 1e-4 \
--max_train_steps 5000 --seed 0 \
--checkpointing_steps 500 --checkpoints_total_limit 3 \
--resume_from_checkpoint latest \
--output_dir /ckpt/klein-dog<!----></pre></div><!----> <p>Cuando termina el entrenamiento, el LoRA se guarda en el bucket como <code>pytorch_lora_weights.safetensors</code>. Consulta <a href="https://huggingface.co/docs/hub/jobs-configuration#volumes" rel="nofollow">Volumes</a> para las opciones de montaje.</p> <blockquote class="note"><p>No añadas <code>--push_to_hub</code> cuando <code>--output_dir</code> contenga puntos de control. La carga solo omite las carpetas <code>step_*</code> y <code>epoch_*</code>, por lo que las carpetas <code>checkpoint-&lt;step></code> se suben al repositorio del modelo junto con el LoRA. En su lugar, sube tú mismo <code>pytorch_lora_weights.safetensors</code> a un repositorio de modelos.</p></blockquote> <!--[1--><h2 class="relative group"><a id="next-steps" 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="#next-steps"><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óximos pasos<!----></span></h2><!--]--><!----> <ul><li>Lee <a href="https://huggingface.co/docs/hub/jobs-training" rel="nofollow">Train Models on Jobs</a> en la documentación de Hub para conocer las comprobaciones que debes realizar antes de un trabajo largo y cómo leer uno que ha fallado.</li> <li>Carga tu LoRA entrenado para inferencia con la guía de <a href="../tutorials/using_peft_for_inference">LoRA</a>.</li> <li>Consulte los <a href="https://github.com/huggingface/diffusers/tree/main/examples/dreambooth" rel="nofollow">archivos README de DreamBooth</a> para conocer los comandos y las opciones de memoria específicos de cada modelo.</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/jobs.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, 371],
data: [null,null],
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
33.2 kB
·
Xet hash:
ff573da311bb09b54196adf4df7412f04959a458bc8e82b37b74514ac57f69ef

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