Avviare job con torchrun
Avvii e coordini i processi worker
Avviare job con torchrun è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Deep Learning Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Deep Learning Academy include 4 lezioni in totale.
Chi avvia i processi
DDP richiede un processo per GPU, ma chi li genera? Non deve avviarli manualmente. torchrun è lo strumento che lo fa per Lei.
Ecco torchrun
torchrun è il launcher di PyTorch. Gli fornisce lo script e il numero di processi da avviare, e si occupa del coordinamento.
torchrun --nproc_per_node=4 train.pyProcessi per nodo
Il flag nproc_per_node imposta il numero di processi da avviare su questa macchina. Di solito corrisponde al numero di GPU disponibili.
torchrun --nproc_per_node=8 train.pyCompaiono le variabili d'ambiente
torchrun inserisce valori importanti come variabili d'ambiente: RANK, LOCAL_RANK e WORLD_SIZE. Lo script li legge per sapere quale processo rappresenta.
import os
local_rank = int(os.environ["LOCAL_RANK"])Nessun indirizzo da configurare manualmente
I launcher più vecchi richiedevano di passare i rank manualmente. Con torchrun, il rendezvous è automatico, quindi lo script rimane pulito e portabile.
L'inizializzazione legge l'ambiente
Poiché torchrun imposta le variabili d'ambiente, la chiamata a init_process_group non richiede argomenti oltre al backend. Recupera tutto automaticamente.
import torch.distributed as dist
dist.init_process_group(backend="nccl")Scalare a più macchine
Per passare a più nodi, aggiunga nnodes e il rank del nodo. Ogni macchina esegue lo stesso comando con il proprio ID del nodo.
torchrun --nnodes=2 --node_rank=0 --nproc_per_node=4 train.pyIndicare il master
Tra più nodi, tutti i processi devono trovare un punto d'incontro. rdzv_endpoint indica l'host e la porta su cui effettuano il rendezvous.
torchrun --rdzv_endpoint=host0:29500 train.pyResistere al crash di un worker
torchrun supporta l'addestramento elastic: imposti un numero minimo e massimo di nodi e il job può recuperare se un worker si disconnette. 💪
torchrun --nnodes=1:4 --max_restarts=3 train.pyRegistrare i log da un solo rank
Ogni processo stampa messaggi, quindi i log diventano rumorosi. Racchiuda le stampe in un controllo del rank, così solo il rank 0 segnala l'avanzamento.
if int(os.environ["RANK"]) == 0:
print("epoch done")La ricetta completa
Lo schema è semplice: scriva un normale script DDP, poi lo avvii con torchrun. Il launcher e DDP si occupano insieme del resto.
Verifica rapida
Ricordi quali informazioni torchrun passa allo script.
Riepilogo
Ha imparato ad avviare i job con torchrun: imposti i processi per nodo, legga le variabili d'ambiente inserite automaticamente e aumenti la scala fino a molti nodi con il recupero elastico.
Domande Frequenti
La lezione «Avviare job con torchrun» è gratuita?
Sì — il testo completo di «Avviare job con torchrun» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Deep Learning Academy, passa a CoddyKit PRO. Il corso Deep Learning Academy include 4 lezioni in totale.
Cosa imparerò in «Avviare job con torchrun»?
Avvii e coordini i processi worker Eserciti Deep Learning Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Deep Learning Academy?
Non è richiesta alcuna esperienza precedente. Deep Learning Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Avviare job con torchrun»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Deep Learning Academy?
Sì. Ogni lezione Deep Learning Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Parallelismo dei dati e del modello
- Nozioni di base su DistributedDataParallel
- Batch norm sincronizzata e stato suddiviso
- Avviare job con torchrun