Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Accelerate (multi-GPU, DeepSpeed, precizie mixtă, estimate-memory) în Hugging Face Hub & Transformers

Rulează același script PyTorch pe un GPU, mai multe GPU-uri, TPU sau cu DeepSpeed / FSDP și estimează memoria necesară unui model fără să-l descarci.

Sintaxă & invocare Python
accelerate config
accelerate launch --num_processes=2 --mixed_precision=bf16 train.py
accelerate estimate-memory MODEL_ID

Ce face Accelerate (multi-GPU, DeepSpeed, precizie mixtă, estimate-memory)

Accelerate este stratul de distribuire folosit de Transformers. Două utilizări sunt frecvente: device_map="auto" la încărcarea modelelor mari, care pune greutățile întâi pe dispozitivul cel mai rapid și apoi pe CPU sau disc, și antrenarea distribuită.

Pentru antrenare, configurezi o dată mediul cu accelerate config și pornești scriptul cu accelerate launch. În cod, accelerator.prepare() înfășoară modelul, optimizatorul și dataloader-ul, iar accelerator.backward(loss) înlocuiește loss.backward().

accelerate estimate-memory încarcă modelul pe dispozitivul meta (fără greutăți reale) și afișează, pentru float32, float16, int8 și int4, cel mai mare strat, dimensiunea totală și memoria pentru antrenare cu Adam. Documentația precizează că valoarea acoperă doar încărcarea modelului, nu inferența, pentru care se adaugă până la aproximativ 20%. Suportă modele transformers și timm.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
accelerate config Întrebări interactive despre mediul de antrenare.
accelerate launch --num_processes N Numărul de procese (de obicei unul pe GPU).
accelerate launch --mixed_precision [no|fp16|bf16|fp8] Precizia mixtă. BF16 cere GPU-uri NVIDIA Ampere sau mai noi.
accelerate launch --multi_gpu Antrenare pe mai multe GPU-uri.
accelerate estimate-memory MODEL Estimarea memoriei pentru încărcare.
estimate-memory --dtypes float32 float16 ... Doar anumite tipuri.
estimate-memory --library_name [transformers|timm] Biblioteca modelului.

Exemple practice

Exemplul 1: Estimarea memoriei pentru un model

accelerate estimate-memory bert-base-cased --dtypes float32 float16

Rezultat

Memory Usage for loading `bert-base-cased`:

| dtype   | Largest Layer | Total Size | Training using Adam |
|---------|---------------|------------|---------------------|
| float32 | 84.95 MB      | 413.18 MB  | 1.61 GB             |
| float16 | 42.47 MB      | 206.59 MB  | 826.36 MB           |

Exemplul 2: Lansare pe 4 GPU-uri

accelerate launch --multi_gpu --num_processes=4 script_finetune.py

Exemplul 3: Bucla de antrenare adaptată

from accelerate import Accelerator

accelerator = Accelerator()
model, optimizer, loader = accelerator.prepare(model, optimizer, loader)
for batch in loader:
    loss = model(**batch).loss
    accelerator.backward(loss)
    optimizer.step()
    optimizer.zero_grad()

Greșeli frecvente și bune practici

  • Iei cifra din estimate-memory ca necesar pentru inferență. Ea acoperă doar încărcarea; documentația adaugă până la 20% pentru inferență.
  • Apelezi loss.backward() în loc de accelerator.backward(loss) într-un script lansat cu Accelerate.
  • Rulezi scriptul cu python train.py după accelerate config. Configurația se aplică prin accelerate launch.

Comenzi înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Accelerate (multi-GPU, DeepSpeed, precizie mixtă, estimate-memory)

Ai o întrebare despre Accelerate (multi-GPU, DeepSpeed, precizie mixtă, estimate-memory) sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.