Przygotowanie modeli z AutoModel i Accelerator

Efektywne trenowanie modeli AI z PyTorch

Dennis Lee

Data Engineer, Amazon

Poznaj swojego instruktora!

$$

  • Inżynier danych

Zdjęcie instruktora

Ikona serwera

Efektywne trenowanie modeli AI z PyTorch

Poznaj swojego instruktora!

$$

  • Inżynier danych
  • Data scientist

Zdjęcie instruktora

Ikony serwera i żarówki

Efektywne trenowanie modeli AI z PyTorch

Poznaj swojego instruktora!

$$

  • Inżynier danych
  • Data scientist
  • Doktorat z inżynierii elektrycznej

Zdjęcie instruktora

Ikony serwera, żarówki i czapki akademickiej

Efektywne trenowanie modeli AI z PyTorch

Poznaj swojego instruktora!

$$

  • Inżynier danych
  • Data scientist
  • Doktorat z inżynierii elektrycznej

Zdjęcie instruktora

Ikony serwera, żarówki i czapki akademickiej

$$

$$

$$

Chętnie podzielę się najlepszymi praktykami!

Efektywne trenowanie modeli AI z PyTorch

Plan kursu – efektywne trenowanie AI

  • Rozproszone trenowanie modeli AI

Laptop

Efektywne trenowanie modeli AI z PyTorch

Plan kursu – efektywne trenowanie AI

  • Rozproszone trenowanie modeli AI

Laptop i czekająca osoba

Efektywne trenowanie modeli AI z PyTorch

Plan kursu – efektywne trenowanie AI

  • Rozproszone trenowanie modeli AI

Laptop, czekająca osoba i układ pamięci

  • ↓ ↓ Czas trenowania dużych modeli językowych

Kalendarz

Efektywne trenowanie modeli AI z PyTorch

Plan kursu – efektywne trenowanie AI

Schemat blokowy przedstawiający tematy kursu: przygotowanie danych, trenowanie rozproszone, efektywne trenowanie i optymalizatory.

$$

  • Przygotowanie danych: rozmieszczanie danych na wielu urządzeniach
Efektywne trenowanie modeli AI z PyTorch

Plan kursu – efektywne trenowanie AI

Schemat blokowy przedstawiający tematy kursu: przygotowanie danych, trenowanie rozproszone, efektywne trenowanie i optymalizatory.

$$

  • Przygotowanie danych: rozmieszczanie danych na wielu urządzeniach
  • Trenowanie rozproszone: skalowanie trenowania na wiele urządzeń
Efektywne trenowanie modeli AI z PyTorch

Plan kursu – efektywne trenowanie AI

Schemat blokowy przedstawiający tematy kursu: przygotowanie danych, trenowanie rozproszone, efektywne trenowanie i optymalizatory.

$$

  • Przygotowanie danych: rozmieszczanie danych na wielu urządzeniach
  • Trenowanie rozproszone: skalowanie trenowania na wiele urządzeń
  • Efektywne trenowanie: optymalizacja dostępnych urządzeń
Efektywne trenowanie modeli AI z PyTorch

Plan kursu – efektywne trenowanie AI

Schemat blokowy przedstawiający tematy kursu: przygotowanie danych, trenowanie rozproszone, efektywne trenowanie i optymalizatory.

$$

  • Przygotowanie danych: rozmieszczanie danych na wielu urządzeniach
  • Trenowanie rozproszone: skalowanie trenowania na wiele urządzeń
  • Efektywne trenowanie: optymalizacja dostępnych urządzeń
  • Optymalizatory: przyspieszanie trenowania
Efektywne trenowanie modeli AI z PyTorch

CPUs

  • Większość laptopów ma procesory CPU

         

Laptop z procesorem CPU

GPUs

  • GPU umożliwiają trenowanie dużych modeli

         

Laptop z procesorem GPU

Efektywne trenowanie modeli AI z PyTorch

CPU a GPU

CPUs

  • Większość laptopów ma procesory CPU
  • Przeznaczone do obliczeń ogólnego przeznaczenia
  • Lepsza obsługa przepływu sterowania

         

Laptop używany do codziennych zadań

GPUs

  • GPU umożliwiają trenowanie dużych modeli
  • Specjalizują się w obliczeniach równoległych
  • Doskonałe w operacjach macierzowych

         

Laptop używany do obliczeń równoległych

Efektywne trenowanie modeli AI z PyTorch

Trenowanie rozproszone

Diagram trenowania rozproszonego – replikacja modelu i fragmentacja danych.

  • Fragmentacja danych: każde urządzenie przetwarza podzbiór danych równolegle
Efektywne trenowanie modeli AI z PyTorch

Trenowanie rozproszone

Diagram trenowania rozproszonego – replikacja modelu i fragmentacja danych.

  • Fragmentacja danych: każde urządzenie przetwarza podzbiór danych równolegle
  • Replikacja modelu: każde urządzenie wykonuje przejścia w przód i w tył
  • Agregacja gradientów: wyznaczone urządzenie agreguje gradienty
  • Synchronizacja parametrów: wyznaczone urządzenie udostępnia zaktualizowane parametry
Efektywne trenowanie modeli AI z PyTorch

Efektywność bez wysiłku: gotowe modele wstępnie wytrenowane

  • Korzystanie z wstępnie wytrenowanych modeli Transformer
  • Inicjalizacja parametrów modelu przez AutoModelForSequenceClassification
  • Wyświetlanie konfiguracji
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
Efektywne trenowanie modeli AI z PyTorch

Rozmieszczanie na urządzeniach z Accelerator

  • Klasa Hugging Face 🤗
  • Accelerator wykrywa dostępne urządzenia na komputerze
  • Automatyzacja rozmieszczania danych i równoległości: accelerator.prepare()
  • Umieszcza model (typu torch.nn.Module) na pierwszym dostępnym GPU
  • Domyślnie używa CPU, jeśli nie znaleziono GPU
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
Efektywne trenowanie modeli AI z PyTorch

Czas na ćwiczenia!

Efektywne trenowanie modeli AI z PyTorch

Preparing Video For Download...