Příprava modelů s AutoModel a Accelerator

Efficient AI Model Training with PyTorch

Dennis Lee

Data Engineer, Amazon

Seznamte se s instruktorem!

$$

  • Datový inženýr

Fotografie instruktora

Ikona serveru

Efficient AI Model Training with PyTorch

Seznamte se s instruktorem!

$$

  • Datový inženýr
  • Datový vědec

Fotografie instruktora

Ikony serveru a žárovky

Efficient AI Model Training with PyTorch

Seznamte se s instruktorem!

$$

  • Datový inženýr
  • Datový vědec
  • Ph.D. v elektrotechnice

Fotografie instruktora

Ikony serveru, žárovky a promocního klobouku

Efficient AI Model Training with PyTorch

Seznamte se s instruktorem!

$$

  • Datový inženýr
  • Datový vědec
  • Ph.D. v elektrotechnice

Fotografie instruktora

Ikony serveru, žárovky a promocního klobouku

$$

$$

$$

Těším se na sdílení osvědčených postupů!

Efficient AI Model Training with PyTorch

Náš plán efektivního trénování AI

  • Distribuované trénování modelů AI

Laptop

Efficient AI Model Training with PyTorch

Náš plán efektivního trénování AI

  • Distribuované trénování modelů AI

Laptop a čekající osoba

Efficient AI Model Training with PyTorch

Náš plán efektivního trénování AI

  • Distribuované trénování modelů AI

Laptop, čekající osoba a paměťový čip

  • ↓ ↓ Doba trénování velkých jazykových modelů

Kalendář

Efficient AI Model Training with PyTorch

Náš plán efektivního trénování AI

Vývojový diagram témat kurzu: příprava dat, distribuované trénování, efektivní trénování a optimalizátory.

$$

  • Příprava dat: rozmístění dat na více zařízení
Efficient AI Model Training with PyTorch

Náš plán efektivního trénování AI

Vývojový diagram témat kurzu: příprava dat, distribuované trénování, efektivní trénování a optimalizátory.

$$

  • Příprava dat: rozmístění dat na více zařízení
  • Distribuované trénování: škálování na více zařízení
Efficient AI Model Training with PyTorch

Náš plán efektivního trénování AI

Vývojový diagram témat kurzu: příprava dat, distribuované trénování, efektivní trénování a optimalizátory.

$$

  • Příprava dat: rozmístění dat na více zařízení
  • Distribuované trénování: škálování na více zařízení
  • Efektivní trénování: optimalizace dostupných zařízení
Efficient AI Model Training with PyTorch

Náš plán efektivního trénování AI

Vývojový diagram témat kurzu: příprava dat, distribuované trénování, efektivní trénování a optimalizátory.

$$

  • Příprava dat: rozmístění dat na více zařízení
  • Distribuované trénování: škálování na více zařízení
  • Efektivní trénování: optimalizace dostupných zařízení
  • Optimalizátory: urychlení trénování
Efficient AI Model Training with PyTorch

CPUs

  • Většina laptopů má CPU

         

Laptop s CPU

GPUs

  • GPU umožňují trénovat velké modely

         

Laptop s GPU

Efficient AI Model Training with PyTorch

CPU vs GPU

CPUs

  • Většina laptopů má CPU
  • Určeny pro obecné výpočty
  • Lepší řízení toku

         

Laptop pro běžné úlohy

GPUs

  • GPU umožňují trénovat velké modely
  • Specializovány na vysoce paralelní výpočty
  • Vynikají v maticových operacích

         

Laptop pro paralelní výpočty

Efficient AI Model Training with PyTorch

Distribuované trénování

Diagram distribuovaného trénování znázorňující replikaci modelu a dělení dat.

  • Dělení dat (data sharding): každé zařízení zpracovává část dat paralelně
Efficient AI Model Training with PyTorch

Distribuované trénování

Diagram distribuovaného trénování znázorňující replikaci modelu a dělení dat.

  • Dělení dat (data sharding): každé zařízení zpracovává část dat paralelně
  • Replikace modelu: každé zařízení provádí dopředný/zpětný průchod
  • Agregace gradientů: určené zařízení agreguje gradienty
  • Synchronizace parametrů: určené zařízení sdílí aktualizované parametry
Efficient AI Model Training with PyTorch

Efektivita bez námahy: využití předtrénovaných modelů

  • Využití předtrénovaných modelů Transformer
  • Inicializace parametrů modelu pomocí AutoModelForSequenceClassification
  • Zobrazení konfigurace
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

Rozmístění na zařízení pomocí Accelerator

  • Třída Hugging Face 🤗
  • Accelerator detekuje dostupná zařízení v počítači
  • Automatizace rozmístění na zařízení a datového paralelismu: accelerator.prepare()
  • Umístí model (typu torch.nn.Module) na první dostupné GPU
  • Výchozí CPU, pokud není GPU k dispozici
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

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

Pojďme si procvičit!

Efficient AI Model Training with PyTorch

Preparing Video For Download...