Pregătirea modelelor cu AutoModel și Accelerator

Antrenament eficient al modelelor AI cu PyTorch

Dennis Lee

Data Engineer, Amazon

Cunoașteți instructorul!

$$

  • Inginer de date

Fotografia instructorului

Pictogramă a unui server

Antrenament eficient al modelelor AI cu PyTorch

Cunoașteți instructorul!

$$

  • Inginer de date
  • Om de știință în date

Fotografia instructorului

Pictograme ale unui server și unui bec

Antrenament eficient al modelelor AI cu PyTorch

Cunoașteți instructorul!

$$

  • Inginer de date
  • Om de știință în date
  • Doctorat în Inginerie Electrică

Fotografia instructorului

Pictograme ale unui server, unui bec și unei tochii de absolvire

Antrenament eficient al modelelor AI cu PyTorch

Cunoașteți instructorul!

$$

  • Inginer de date
  • Om de știință în date
  • Doctorat în Inginerie Electrică

Fotografia instructorului

Pictograme ale unui server, unui bec și unei tochii de absolvire

$$

$$

$$

Entuziasmat să împărtășesc cele mai bune practici!

Antrenament eficient al modelelor AI cu PyTorch

Planul nostru pentru antrenare eficientă AI

  • Antrenarea distribuită a modelelor AI

Laptop

Antrenament eficient al modelelor AI cu PyTorch

Planul nostru pentru antrenare eficientă AI

  • Antrenarea distribuită a modelelor AI

Un laptop și o persoană care așteaptă

Antrenament eficient al modelelor AI cu PyTorch

Planul nostru pentru antrenare eficientă AI

  • Antrenarea distribuită a modelelor AI

Un laptop, o persoană care așteaptă și un cip de memorie

  • ↓ ↓ Timpii de antrenare pentru modelele de limbaj mari

Un calendar

Antrenament eficient al modelelor AI cu PyTorch

Planul nostru pentru antrenare eficientă AI

Diagramă cu temele cursului: pregătirea datelor, antrenare distribuită, antrenare eficientă și optimizatori.

$$

  • Pregătirea datelor: plasarea datelor pe mai multe dispozitive
Antrenament eficient al modelelor AI cu PyTorch

Planul nostru pentru antrenare eficientă AI

Diagramă cu temele cursului: pregătirea datelor, antrenare distribuită, antrenare eficientă și optimizatori.

$$

  • Pregătirea datelor: plasarea datelor pe mai multe dispozitive
  • Antrenare distribuită: scalarea antrenării pe mai multe dispozitive
Antrenament eficient al modelelor AI cu PyTorch

Planul nostru pentru antrenare eficientă AI

Diagramă cu temele cursului: pregătirea datelor, antrenare distribuită, antrenare eficientă și optimizatori.

$$

  • Pregătirea datelor: plasarea datelor pe mai multe dispozitive
  • Antrenare distribuită: scalarea antrenării pe mai multe dispozitive
  • Antrenare eficientă: optimizarea dispozitivelor disponibile
Antrenament eficient al modelelor AI cu PyTorch

Planul nostru pentru antrenare eficientă AI

Diagramă cu temele cursului: pregătirea datelor, antrenare distribuită, antrenare eficientă și optimizatori.

$$

  • Pregătirea datelor: plasarea datelor pe mai multe dispozitive
  • Antrenare distribuită: scalarea antrenării pe mai multe dispozitive
  • Antrenare eficientă: optimizarea dispozitivelor disponibile
  • Optimizatori: accelerarea antrenării
Antrenament eficient al modelelor AI cu PyTorch

CPUs

  • Majoritatea laptopurilor au CPU-uri

         

Un laptop cu CPU

GPUs

  • GPU-urile pot antrena modele mari

         

Un laptop cu GPU

Antrenament eficient al modelelor AI cu PyTorch

CPU-uri vs. GPU-uri

CPUs

  • Majoritatea laptopurilor au CPU-uri
  • Proiectate pentru calcul general
  • Control al fluxului mai bun

         

Un laptop folosit pentru sarcini zilnice

GPUs

  • GPU-urile pot antrena modele mari
  • Specializate în calcul paralel intensiv
  • Excelează la operații matriciale

         

Un laptop folosit pentru calcul paralel

Antrenament eficient al modelelor AI cu PyTorch

Antrenare distribuită

Diagramă a antrenării distribuite cu replicarea modelului și fragmentarea datelor.

  • Fragmentarea datelor: fiecare dispozitiv procesează un subset de date în paralel
Antrenament eficient al modelelor AI cu PyTorch

Antrenare distribuită

Diagramă a antrenării distribuite cu replicarea modelului și fragmentarea datelor.

  • Fragmentarea datelor: fiecare dispozitiv procesează un subset de date în paralel
  • Replicarea modelului: fiecare dispozitiv efectuează pasajele forward/backward
  • Agregarea gradienților: un dispozitiv desemnat agregă gradienții
  • Sincronizarea parametrilor: dispozitivul desemnat distribuie parametrii actualizați
Antrenament eficient al modelelor AI cu PyTorch

Eficiență simplă: utilizarea modelelor pre-antrenate

  • Utilizați modele Transformer pre-antrenate
  • Inițializați parametrii modelului apelând AutoModelForSequenceClassification
  • Afișați configurația
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
Antrenament eficient al modelelor AI cu PyTorch

Plasarea pe dispozitive cu Accelerator

  • O clasă Hugging Face 🤗
  • Accelerator detectează dispozitivele disponibile pe computer
  • Automatizează plasarea pe dispozitive și paralelismul datelor: accelerator.prepare()
  • Plasează modelul (de tip torch.nn.Module) pe primul GPU disponibil
  • Implicit pe CPU dacă nu există GPU
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
Antrenament eficient al modelelor AI cu PyTorch

Să exersăm!

Antrenament eficient al modelelor AI cu PyTorch

Preparing Video For Download...