0Pricing
Learn AI with Python · Lección

Entrenamiento eficiente con Hugging Face Accelerate

accelerate.Accelerator, entrenamiento independiente del dispositivo, acumulación de gradientes e integración con DeepSpeed.

Entrenamiento eficiente con Hugging Face Accelerate es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

El problema del código repetitivo

Escribir manualmente la asignación de dispositivos, la configuración de DDP y la precisión mixta resulta largo y propenso a errores. Hugging Face Accelerate elimina ese código repetitivo: el mismo script se ejecuta en CPU, una GPU, varias GPU o incluso TPU sin cambios en el código.

El objeto Accelerator

El núcleo de la biblioteca es Accelerator. Se crea uno al principio del script; detecta el entorno y gestiona los dispositivos, la configuración distribuida y la precisión por usted.

from accelerate import Accelerator

accelerator = Accelerator()
device = accelerator.device

Preparar objetos

accelerator.prepare recibe el modelo, el optimizador y el dataloader, y devuelve versiones adaptadas a la configuración actual: trasladadas al dispositivo correcto, envueltas en DDP si es necesario y con el dataloader fragmentado entre los procesos.

model, optimizer, dataloader = accelerator.prepare(
    model, optimizer, dataloader
)

Qué hace prepare

Internamente, prepare gestiona el trabajo que, de otro modo, tendría que realizar manualmente: la transferencia al dispositivo, el envoltorio DDP, el muestreo distribuido y la integración de la precisión mixta. Una sola llamada sustituye a decenas de líneas.

Sin .to(device) manual

Como el dataloader preparado proporciona lotes que ya están en el dispositivo correcto, puede eliminar las llamadas manuales a x.to(device). El mismo bucle funciona en cualquier entorno.

for batch in dataloader:
    inputs, labels = batch   # already on device
    outputs = model(inputs)
    loss = loss_fn(outputs, labels)

accelerator.backward

En lugar de loss.backward(), llame a accelerator.backward(loss). Esto utiliza automáticamente la ruta adecuada para el entrenamiento distribuido y con precisión mixta, incluido el escalado de gradientes.

optimizer.zero_grad()
accelerator.backward(loss)
optimizer.step()

Un bucle de entrenamiento completo

El bucle completo de Accelerate es excepcionalmente limpio e independiente del dispositivo.

accelerator = Accelerator()
model, optimizer, dataloader = accelerator.prepare(model, optimizer, dataloader)

for epoch in range(epochs):
    for batch in dataloader:
        inputs, labels = batch
        outputs = model(inputs)
        loss = loss_fn(outputs, labels)
        optimizer.zero_grad()
        accelerator.backward(loss)
        optimizer.step()

Precisión mixta mediante configuración

Puede activar FP16/BF16 sin tocar el código, estableciéndolo al construir el Accelerator o mediante la configuración de la CLI. Después, Accelerate gestiona autocast y el escalado de gradientes por usted.

accelerator = Accelerator(mixed_precision="fp16")

unwrap_model para guardar

Después de prepare, el modelo puede estar envuelto en DDP. Antes de guardarlo, llame a accelerator.unwrap_model(model) para obtener el modelo subyacente sin envolver, de modo que el checkpoint sea limpio y portable.

unwrapped = accelerator.unwrap_model(model)
accelerator.save(unwrapped.state_dict(), "model.pt")

Ejecución en distintos dispositivos

Ejecuta el mismo script con el comando accelerate launch, que lee su configuración (número de procesos, máquinas y precisión) e inicia los procesos, gestionando de forma transparente los casos de una sola GPU, varias GPU y varios nodos.

accelerate config        # one-time interactive setup
accelerate launch train.py

Por qué usar Accelerate

Accelerate le ofrece una gestión transparente de varios dispositivos: escriba un único bucle claro y escale desde la CPU de un portátil hasta un clúster de GPU de varios nodos sin reescribir el código. Se basa en los mismos conceptos de DDP y AMP que ya ha aprendido, pero oculta la complejidad de configuración.

Comprobación rápida

Ponga a prueba sus conocimientos sobre Accelerate.

Resumen

Ha aprendido a entrenar de forma eficiente con Hugging Face Accelerate:

  • Accelerator() detecta y gestiona el entorno
  • acc.prepare(model, optimizer, dataloader) configura todo para los dispositivos actuales
  • acc.backward(loss) gestiona la retropropagación distribuida y de precisión mixta
  • acc.unwrap_model proporciona un modelo limpio para guardarlo
  • Un único script escala de forma transparente desde la CPU hasta un clúster de GPU de varios nodos

Preguntas frecuentes

¿La lección «Entrenamiento eficiente con Hugging Face Accelerate» es gratis?

Sí — el texto completo de «Entrenamiento eficiente con Hugging Face Accelerate» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «Entrenamiento eficiente con Hugging Face Accelerate»?

accelerate.Accelerator, entrenamiento independiente del dispositivo, acumulación de gradientes e integración con DeepSpeed. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Entrenamiento eficiente con Hugging Face Accelerate»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Entrenamiento multi-GPU con DataParallel
  2. DistributedDataParallel (DDP)
  3. Entrenamiento con precisión mixta mediante AMP
  4. Entrenamiento eficiente con Hugging Face Accelerate
← Volver a Learn AI with Python