Förbered modeller med AutoModel och Accelerator

Effektiv AI-modellträning med PyTorch

Dennis Lee

Data Engineer, Amazon

Möt din instruktör!

$$

  • Dataingenjör

Foto på instruktören

Ikon av en server

Effektiv AI-modellträning med PyTorch

Möt din instruktör!

$$

  • Dataingenjör
  • Datavetare

Foto på instruktören

Ikoner av en server och en glödlampa

Effektiv AI-modellträning med PyTorch

Möt din instruktör!

$$

  • Dataingenjör
  • Datavetare
  • Doktor i elektroteknik

Foto på instruktören

Ikoner av en server, en glödlampa och en examensmössa

Effektiv AI-modellträning med PyTorch

Möt din instruktör!

$$

  • Dataingenjör
  • Datavetare
  • Doktor i elektroteknik

Foto på instruktören

Ikoner av en server, en glödlampa och en examensmössa

$$

$$

$$

Glad att dela bästa praxis!

Effektiv AI-modellträning med PyTorch

Vår färdplan för effektiv AI-träning

  • Distribuerad AI-modellträning

Bärbar dator

Effektiv AI-modellträning med PyTorch

Vår färdplan för effektiv AI-träning

  • Distribuerad AI-modellträning

En bärbar dator och en väntande person

Effektiv AI-modellträning med PyTorch

Vår färdplan för effektiv AI-träning

  • Distribuerad AI-modellträning

En bärbar dator, en väntande person och ett minneschip

  • ↓ ↓ Träningstider för stora språkmodeller

En kalender

Effektiv AI-modellträning med PyTorch

Vår färdplan för effektiv AI-träning

Flödesschema över kursens ämnen: dataförberedelse, distribuerad träning, effektiv träning och optimerare.

$$

  • Dataförberedelse: placera data på flera enheter
Effektiv AI-modellträning med PyTorch

Vår färdplan för effektiv AI-träning

Flödesschema över kursens ämnen: dataförberedelse, distribuerad träning, effektiv träning och optimerare.

$$

  • Dataförberedelse: placera data på flera enheter
  • Distribuerad träning: skala träning till flera enheter
Effektiv AI-modellträning med PyTorch

Vår färdplan för effektiv AI-träning

Flödesschema över kursens ämnen: dataförberedelse, distribuerad träning, effektiv träning och optimerare.

$$

  • Dataförberedelse: placera data på flera enheter
  • Distribuerad träning: skala träning till flera enheter
  • Effektiv träning: optimera tillgängliga enheter
Effektiv AI-modellträning med PyTorch

Vår färdplan för effektiv AI-träning

Flödesschema över kursens ämnen: dataförberedelse, distribuerad träning, effektiv träning och optimerare.

$$

  • Dataförberedelse: placera data på flera enheter
  • Distribuerad träning: skala träning till flera enheter
  • Effektiv träning: optimera tillgängliga enheter
  • Optimerare: påskynda träningen
Effektiv AI-modellträning med PyTorch

CPUs

  • De flesta bärbara datorer har CPUer

         

En bärbar dator med CPU

GPUs

  • GPUer kan träna stora modeller

         

En bärbar dator med GPU

Effektiv AI-modellträning med PyTorch

CPUer vs GPUer

CPUs

  • De flesta bärbara datorer har CPUer
  • Utformade för allmän beräkning
  • Bättre kontrollflöde

         

En bärbar dator för dagliga uppgifter

GPUs

  • GPUer kan träna stora modeller
  • Specialiserade på parallell beräkning
  • Utmärker sig på matrisoperationer

         

En bärbar dator för parallell beräkning

Effektiv AI-modellträning med PyTorch

Distribuerad träning

Diagram över distribuerad träning med modellreplikering och dataskivning.

  • Dataskivning: varje enhet bearbetar en delmängd data parallellt
Effektiv AI-modellträning med PyTorch

Distribuerad träning

Diagram över distribuerad träning med modellreplikering och dataskivning.

  • Dataskivning: varje enhet bearbetar en delmängd data parallellt
  • Modellreplikering: varje enhet utför fram- och bakåtpassager
  • Gradientaggregering: utsedd enhet aggregerar gradienter
  • Parametersynkronisering: utsedd enhet delar uppdaterade parametrar
Effektiv AI-modellträning med PyTorch

Enkel effektivitet: utnyttja förtränade modeller

  • Utnyttja förtränade Transformer-modeller
  • Initiera modellparametrar med AutoModelForSequenceClassification
  • Visa konfigurationen
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
Effektiv AI-modellträning med PyTorch

Enhetsplacering med Accelerator

  • En Hugging Face-klass 🤗
  • Accelerator identifierar tillgängliga enheter på datorn
  • Automatisera enhetsplacering och dataparallellism: accelerator.prepare()
  • Placerar modellen (av typen torch.nn.Module) på den första tillgängliga GPUn
  • Faller tillbaka på CPUn om ingen GPU hittas
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
Effektiv AI-modellträning med PyTorch

Låt oss öva!

Effektiv AI-modellträning med PyTorch

Preparing Video For Download...