Salta ai contenuti

TorchTitan - Pretraining LLM Nativo PyTorch Cheatsheet

TorchTitan - Pretraining LLM Nativo PyTorch Cheatsheet

TorchTitan è una piattaforma open-source nativa PyTorch per il pretraining su larga scala di modelli generativi (LLM). È un”implementazione di riferimento pulita delle tecniche di addestramento distribuito più recenti di PyTorch, componendo parallelismo 4D — dati, tensore, pipeline e contesto paralleli — in modo modulare, in cima a FSDP2, torch.compile e checkpoint distribuito, con scaling elastico. È il punto di partenza preferito per i team che vogliono preaddestramento di modelli usando scaling nativo PyTorch piuttosto che uno stack di terze parti.

L”addestramento distribuito è ad alta intensità di risorse. Convalida le configurazioni su un modello/scala piccolo prima di impegnarti in una grande esecuzione multi-nodo.

Installazione

MetodoComando
Dal sorgentegit clone https://github.com/pytorch/torchtitan && cd torchtitan && pip install -e .
RequisitiPyTorch recente (spesso consigliato notturno), GPU CUDA
DatasetUtilizza dataset/tokenizer HF
Verificaesegui una configurazione di debug su 1 GPU

Dimensioni del Parallelismo (4D)

DimensioneDivide
Data Parallel (FSDP2)Il batch, parametri sharding/optimizer/grads
Tensor ParallelSingoli livelli attraverso GPU
Pipeline ParallelIl modello in stadi attraverso GPU
Context ParallelSequenze lunghe attraverso GPU

Questi si compongono: ad es. dp × tp × pp × cp mappa un modello su una mesh GPU grande.

Configurazione

TorchTitan è guidato da file di configurazione TOML più override da riga di comando.

# Avvia l''addestramento con una configurazione (multi-GPU via torchrun)
CONFIG_FILE=./train_configs/llama3_8b.toml ./run_train.sh
Sezione configControlla
[model]Architettura, dimensione, sapore
[training]Dimensione batch, step, lunghezza seq, LR
[parallelism]data_parallel_shard_degree, tensor_parallel_degree, pipeline_parallel_degree, context_parallel_degree
[optimizer]Optimizer + iperparametri
[checkpoint]Frequenza/percorsi checkpoint distribuiti
[activation_checkpoint]Politica di ricomputazione

Caratteristiche Principali

CaratteristicaBeneficio
FSDP2Parallelismo dei dati completamente condiviso moderno
torch.compileCompilazione del grafico per la velocità
Checkpoint distribuito asincronoSalva/riprendi esecuzioni enormi in modo efficiente
Float8 / bassa precisioneAddestramento più veloce su hardware supportato
Scaling elasticoAdattati alla disponibilità di GPU in cambiamento
Meta-device initCostruisci enormi modelli senza OOM all”init

Avvio Multi-Nodo

# torchrun attraverso i nodi (concettuale)
torchrun --nnodes=4 --nproc_per_node=8 \
  --rdzv_backend=c10d --rdzv_endpoint=$MASTER:29500 \
  -m torchtitan.train --job.config_file llama3_70b.toml
OverrideEsempio
Gradi paralleli--parallelism.tensor_parallel_degree 8
Step--training.steps 10000
Lunghezza seq--training.seq_len 8192
Compila--training.compile

Monitoraggio & Checkpoint

AspettoCome
LoggingIntegrazione TensorBoard / W&B
MetrichePerdita, token/sec, MFU (utilizzo FLOP del modello)
CheckpointCheckpoint distribuito (DCP) salva/carica
RiprendiPunta la configurazione a uno step di checkpoint

TorchTitan vs Altri Framework di Training

AspettoTorchTitanMegatron-LMNanotron
OrigineTeam PyTorchNVIDIAHugging Face
StileNativo PyTorch, componibileFeature-rich, maturoMinimalista 3D
Parallelismo4D (dp/tp/pp/cp)3D+ (esteso)3D
Migliore perScaling di riferimento nativo PyTorchMoE/denso di scala massimaAddestramento 3D piccolo e hackerabile

Risorse