Biblioteca Accelerate (Multi-GPU, DeepSpeed & Mixed Precision) în Hugging Face Hub & Transformers

Motorul de orchestrare hardware de la Hugging Face care permite rularea și antrenarea aceluiași script PyTorch pe un GPU, pe mai multe GPU-uri, pe TPU sau cu DeepSpeed.

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

Descriere & Utilizare

În spatele parametrului magic device_map='auto' din Transformers se află biblioteca Accelerate. Aceasta rezolvă două probleme majore ale ingineriei AI:

1. Inferența modelelor uriașe (Big Model Inference): încarcă modelele folosind Meta Tensors (fără a consuma memorie dublă în RAM) și împarte automat straturile între GPU-urile disponibile, memoria RAM și chiar swap pe disc.

2. Antrenarea distribuită: prin comanda interactivă accelerate config și lansatorul accelerate launch, poți scala un script de antrenare pe 2, 4 sau 8 plăci video folosind DDP (Distributed Data Parallel), FSDP (Fully Sharded Data Parallel) sau DeepSpeed ZeRO.

Cum să o reții ușor

💡 Ca un dirijor de orchestră simfonică: partitura muzicală (`train.py`) rămâne neschimbată, dar dirijorul poate împărți armonios instrumentele fie pentru un cvartet de cameră (1 GPU), fie pentru o filarmonică de 100 de persoane (Cluster Multi-GPU).

Opțiuni și parametri tehnici

  • În codul PyTorch, înfășoară modelul, optimizatorul și dataloader-ul prin model, opt, loader = accelerator.prepare(model, opt, loader).
  • Sincronizează automat gradienții între toate plăcile video la apelul accelerator.backward(loss).
  • Gestionează conversia automată a tensorilor în precizie mixtă fp16 sau bf16.

Exemple practice și cazuri de utilizare

  • Estimarea memoriei VRAM necesare unui model de pe Hub (fără a-l descărca!): accelerate estimate-memory meta-llama/Llama-3.1-70B-Instruct
  • Lansare antrenare cu configurare rapidă: accelerate launch --multi_gpu --num_processes=4 script_finetune.py

Sfaturi de configurare & capcane

Folosește comanda accelerate estimate-memory <model_id> în terminal înainte de a descărca un model nou! Îți va afișa un tabel exact cu câți GB de VRAM sunt necesari pentru inferență și antrenare în FP32, FP16, int8 și int4.

Comenzi și ghiduri înrudite