Prepara modelli con AutoModel e Accelerator

Efficient AI Model Training with PyTorch

Dennis Lee

Data Engineer, Amazon

Conosci l'istruttore!

$$

  • Data engineer

Foto dell'istruttore

Icona di un server

Efficient AI Model Training with PyTorch

Conosci l'istruttore!

$$

  • Data engineer
  • Data scientist

Foto dell'istruttore

Icone di un server e una lampadina

Efficient AI Model Training with PyTorch

Conosci l'istruttore!

$$

  • Data engineer
  • Data scientist
  • PhD in Ingegneria Elettrica

Foto dell'istruttore

Icone di un server, una lampadina e un tocco

Efficient AI Model Training with PyTorch

Conosci l'istruttore!

$$

  • Data engineer
  • Data scientist
  • PhD in Ingegneria Elettrica

Foto dell'istruttore

Icone di un server, una lampadina e un tocco

$$

$$

$$

Felice di condividere le best practice!

Efficient AI Model Training with PyTorch

La nostra roadmap per un training AI efficiente

  • Training distribuito di modelli di AI

Laptop

Efficient AI Model Training with PyTorch

La nostra roadmap per un training AI efficiente

  • Training distribuito di modelli di AI

Un laptop e una persona in attesa

Efficient AI Model Training with PyTorch

La nostra roadmap per un training AI efficiente

  • Training distribuito di modelli di AI

Un laptop, una persona in attesa e un chip di memoria

  • ↓ ↓ Tempi di training per i Large Language Model

Un calendario

Efficient AI Model Training with PyTorch

La nostra roadmap per un training AI efficiente

Diagramma di flusso con gli argomenti del corso: preparazione dati, training distribuito, training efficiente e ottimizzatori.

$$

  • Preparazione dati: posizionare i dati su più dispositivi
Efficient AI Model Training with PyTorch

La nostra roadmap per un training AI efficiente

Diagramma di flusso con gli argomenti del corso: preparazione dati, training distribuito, training efficiente e ottimizzatori.

$$

  • Preparazione dati: posizionare i dati su più dispositivi
  • Training distribuito: scalare il training su più dispositivi
Efficient AI Model Training with PyTorch

La nostra roadmap per un training AI efficiente

Diagramma di flusso con gli argomenti del corso: preparazione dati, training distribuito, training efficiente e ottimizzatori.

$$

  • Preparazione dati: posizionare i dati su più dispositivi
  • Training distribuito: scalare il training su più dispositivi
  • Training efficiente: ottimizzare i dispositivi disponibili
Efficient AI Model Training with PyTorch

La nostra roadmap per un training AI efficiente

Diagramma di flusso con gli argomenti del corso: preparazione dati, training distribuito, training efficiente e ottimizzatori.

$$

  • Preparazione dati: posizionare i dati su più dispositivi
  • Training distribuito: scalare il training su più dispositivi
  • Training efficiente: ottimizzare i dispositivi disponibili
  • Ottimizzatori: accelerare il training
Efficient AI Model Training with PyTorch

CPU

  • La maggior parte dei laptop ha CPU

         

Un laptop con CPU

GPU

  • Le GPU possono addestrare modelli grandi

         

Un laptop con GPU

Efficient AI Model Training with PyTorch

CPU vs GPU

CPU

  • La maggior parte dei laptop ha CPU
  • Progettate per il calcolo generico
  • Miglior controllo del flusso

         

Un laptop per attività quotidiane

GPU

  • Le GPU possono addestrare modelli grandi
  • Specializzate nel calcolo altamente parallelo
  • Eccellono nelle operazioni su matrici

         

Un laptop per il calcolo parallelo

Efficient AI Model Training with PyTorch

Training distribuito

Diagramma del training distribuito con replica del modello e sharding dei dati.

  • Data sharding: ogni dispositivo elabora in parallelo un sottoinsieme di dati
Efficient AI Model Training with PyTorch

Training distribuito

Diagramma del training distribuito con replica del modello e sharding dei dati.

  • Data sharding: ogni dispositivo elabora in parallelo un sottoinsieme di dati
  • Replica del modello: ogni dispositivo esegue forward/backward pass
  • Aggregazione dei gradienti: un dispositivo dedicato aggrega i gradienti
  • Sincronizzazione dei parametri: un dispositivo dedicato condivide i parametri aggiornati
Efficient AI Model Training with PyTorch

Efficienza facile: sfruttare modelli pre-addestrati

  • Sfrutta modelli Transformer pre-addestrati
  • Inizializza i parametri con AutoModelForSequenceClassification
  • Mostra la configurazione
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
Efficient AI Model Training with PyTorch

Placement dei dispositivi con Accelerator

  • Una classe di Hugging Face 🤗
  • Accelerator rileva i dispositivi disponibili sul computer
  • Automazione di placement e data parallelism: accelerator.prepare()
  • Mette il modello (tipo torch.nn.Module) sulla prima GPU disponibile
  • Se non trova GPU, usa la CPU per default
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
Efficient AI Model Training with PyTorch

Esercitiamoci!

Efficient AI Model Training with PyTorch

Preparing Video For Download...