0Pricing
Deep Learning Academy · Lezione

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.py

Processi 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.py

Compaiono 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.py

Indicare 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.py

Resistere 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.py

Registrare 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

  1. Parallelismo dei dati e del modello
  2. Nozioni di base su DistributedDataParallel
  3. Batch norm sincronizzata e stato suddiviso
  4. Avviare job con torchrun
← Torna a Deep Learning Academy