Prepara modelos con AutoModel y Accelerator

Entrenamiento eficiente de modelos de IA con PyTorch

Dennis Lee

Data Engineer, Amazon

¡Conoce a tu instructor/a!

$$

  • Ingeniero/a de datos

Fotografía del instructor

Icono de un servidor

Entrenamiento eficiente de modelos de IA con PyTorch

¡Conoce a tu instructor/a!

$$

  • Ingeniero/a de datos
  • Científico/a de datos

Fotografía del instructor

Iconos de un servidor y una bombilla

Entrenamiento eficiente de modelos de IA con PyTorch

¡Conoce a tu instructor/a!

$$

  • Ingeniero/a de datos
  • Científico/a de datos
  • Doctorado en Ingeniería Eléctrica

Fotografía del instructor

Iconos de un servidor, una bombilla y un birrete

Entrenamiento eficiente de modelos de IA con PyTorch

¡Conoce a tu instructor/a!

$$

  • Ingeniero/a de datos
  • Científico/a de datos
  • Doctorado en Ingeniería Eléctrica

Fotografía del instructor

Iconos de un servidor, una bombilla y un birrete

$$

$$

$$

¡Con ganas de compartir buenas prácticas!

Entrenamiento eficiente de modelos de IA con PyTorch

Nuestra hoja de ruta para entrenar IA con eficiencia

  • Entrenamiento distribuido de modelos de IA

Portátil

Entrenamiento eficiente de modelos de IA con PyTorch

Nuestra hoja de ruta para entrenar IA con eficiencia

  • Entrenamiento distribuido de modelos de IA

Un portátil y una persona esperando

Entrenamiento eficiente de modelos de IA con PyTorch

Nuestra hoja de ruta para entrenar IA con eficiencia

  • Entrenamiento distribuido de modelos de IA

Un portátil, una persona esperando y un chip de memoria

  • ↓ ↓ Tiempos de entrenamiento para LLM grandes

Un calendario

Entrenamiento eficiente de modelos de IA con PyTorch

Nuestra hoja de ruta para entrenar IA con eficiencia

Diagrama de flujo con los temas del curso: preparación de datos, entrenamiento distribuido, entrenamiento eficiente y optimizadores.

$$

  • Preparación de datos: colocar datos en varios dispositivos
Entrenamiento eficiente de modelos de IA con PyTorch

Nuestra hoja de ruta para entrenar IA con eficiencia

Diagrama de flujo con los temas del curso: preparación de datos, entrenamiento distribuido, entrenamiento eficiente y optimizadores.

$$

  • Preparación de datos: colocar datos en varios dispositivos
  • Entrenamiento distribuido: escalar el entrenamiento a varios dispositivos
Entrenamiento eficiente de modelos de IA con PyTorch

Nuestra hoja de ruta para entrenar IA con eficiencia

Diagrama de flujo con los temas del curso: preparación de datos, entrenamiento distribuido, entrenamiento eficiente y optimizadores.

$$

  • Preparación de datos: colocar datos en varios dispositivos
  • Entrenamiento distribuido: escalar el entrenamiento a varios dispositivos
  • Entrenamiento eficiente: optimizar los dispositivos disponibles
Entrenamiento eficiente de modelos de IA con PyTorch

Nuestra hoja de ruta para entrenar IA con eficiencia

Diagrama de flujo con los temas del curso: preparación de datos, entrenamiento distribuido, entrenamiento eficiente y optimizadores.

$$

  • Preparación de datos: colocar datos en varios dispositivos
  • Entrenamiento distribuido: escalar el entrenamiento a varios dispositivos
  • Entrenamiento eficiente: optimizar los dispositivos disponibles
  • Optimizadores: acelerar el entrenamiento
Entrenamiento eficiente de modelos de IA con PyTorch

CPU

  • La mayoría de portátiles tienen CPU

         

Un portátil con CPU

GPU

  • Las GPU pueden entrenar modelos grandes

         

Un portátil con GPU

Entrenamiento eficiente de modelos de IA con PyTorch

CPU vs GPU

CPU

  • La mayoría de portátiles tienen CPU
  • Diseñadas para cómputo general
  • Mejor control de flujo

         

Un portátil para tareas diarias

GPU

  • Pueden entrenar modelos grandes
  • Especialistas en cómputo altamente paralelo
  • Ideales para operaciones matriciales

         

Un portátil para cómputo paralelo

Entrenamiento eficiente de modelos de IA con PyTorch

Entrenamiento distribuido

Diagrama de entrenamiento distribuido con replicación de modelo y partición de datos.

  • Partición de datos: cada dispositivo procesa un subconjunto en paralelo
Entrenamiento eficiente de modelos de IA con PyTorch

Entrenamiento distribuido

Diagrama de entrenamiento distribuido con replicación de modelo y partición de datos.

  • Partición de datos: cada dispositivo procesa un subconjunto en paralelo
  • Replicación de modelo: cada dispositivo hace forward/backward
  • Agregación de gradientes: un dispositivo designado los agrega
  • Sincronización de parámetros: el dispositivo designado comparte los parámetros actualizados
Entrenamiento eficiente de modelos de IA con PyTorch

Eficiencia sin esfuerzo: aprovecha modelos preentrenados

  • Aprovecha modelos Transformer preentrenados
  • Inicializa parámetros con AutoModelForSequenceClassification
  • Muestra la configuración
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
Entrenamiento eficiente de modelos de IA con PyTorch

Asignación de dispositivo con Accelerator

  • Una clase de Hugging Face 🤗
  • Accelerator detecta los dispositivos disponibles en tu equipo
  • Automatiza la colocación y el paralelismo de datos: accelerator.prepare()
  • Coloca el modelo (tipo torch.nn.Module) en la primera GPU disponible
  • Si no hay GPU, usa la CPU por defecto
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
Entrenamiento eficiente de modelos de IA con PyTorch

¡Vamos a practicar!

Entrenamiento eficiente de modelos de IA con PyTorch

Preparing Video For Download...