Zum Inhalt springen

TorchTitan - PyTorch-Native LLM Pretraining Cheatsheet

TorchTitan - PyTorch-Native LLM Pretraining Cheatsheet

TorchTitan ist eine Open-Source-PyTorch-native Plattform für großflächiges generatives Modell (LLM) Pretraining. Es ist eine saubere Referenzimplementierung der neuesten verteilten Trainingstechniken von PyTorch, komponiert 4D-Parallelität — Daten, Tensor, Pipeline und Kontext Parallel — auf modulare Weise auf Basis von FSDP2, torch.compile und verteiltem Checkpointing mit elastischer Skalierung. Es ist der Ausgangspunkt für Teams, die Modelle mit nativer PyTorch-Skalierung trainieren möchten, anstatt einen Drittanbieter-Stack zu verwenden.

Verteiltes Pretraining ist ressourcenintensiv. Validiere Konfigurationen auf einem kleinen Modell/Skala, bevor du einen großen Multi-Node-Lauf durchführst.

Installation

MethodCommand
From sourcegit clone https://github.com/pytorch/torchtitan && cd torchtitan && pip install -e .
RequirementsAktuelle PyTorch (Nightly oft empfohlen), CUDA GPUs
DatasetsUses HF datasets / tokenizers
Verifyrun a debug config on 1 GPU

Parallelism Dimensions (4D)

DimensionSplits
Data Parallel (FSDP2)Den Batch über Replicas sharden, Parameter/Optimizer/Grads
Tensor ParallelEinzelne Schichten über GPUs
Pipeline ParallelDas Modell in Stufen über GPUs
Context ParallelLange Sequenzen über GPUs

Diese komponieren: z.B. dp × tp × pp × cp mappt ein Modell auf ein großes GPU-Mesh.

Configuration

TorchTitan wird von TOML-Konfigurationsdateien plus Kommandozeilen-Überschreibungen angetrieben.

# Launch training with a config (multi-GPU via torchrun)
CONFIG_FILE=./train_configs/llama3_8b.toml ./run_train.sh
Config sectionSteuert
[model]Architektur, Größe, Flavor
[training]Batch Size, Schritte, Seq-Länge, LR
[parallelism]data_parallel_shard_degree, tensor_parallel_degree, pipeline_parallel_degree, context_parallel_degree
[optimizer]Optimizer + Hyperparameter
[checkpoint]Verteilte Checkpoint-Häufigkeit/Pfade
[activation_checkpoint]Recomputation Policy

Key Features

FeatureVorteil
FSDP2Modernes Fully-Sharded Data Parallel
torch.compileGraph-Kompilierung für Geschwindigkeit
Async distributed checkpointingSpeichere/fortsetze riesige Läufe effizient
Float8 / low precisionSchnelleres Training auf unterstützter Hardware
Elastic scalingPasse dich wechselnder GPU-Verfügbarkeit an
Meta-device initBaue riesige Modelle ohne OOM beim Initialisieren

Launching Multi-Node

# torchrun across nodes (conceptual)
torchrun --nnodes=4 --nproc_per_node=8 \
  --rdzv_backend=c10d --rdzv_endpoint=$MASTER:29500 \
  -m torchtitan.train --job.config_file llama3_70b.toml
OverrideBeispiel
Parallel degrees--parallelism.tensor_parallel_degree 8
Steps--training.steps 10000
Seq length--training.seq_len 8192
Compile--training.compile

Monitoring & Checkpoints

AspectHow
LoggingTensorBoard / W&B Integration
MetricsLoss, tokens/sec, MFU (Model FLOPs Utilization)
CheckpointsDistributed Checkpoint (DCP) Save/Load
ResumePoint the config at a checkpoint step

TorchTitan vs Other Training Frameworks

AspectTorchTitanMegatron-LMNanotron
OriginPyTorch TeamNVIDIAHugging Face
StylePyTorch-Native, ComposableFeature-Rich, MatureMinimalistisch 3D
Parallelism4D (dp/tp/pp/cp)3D+ (Extensive)3D
Best forNative PyTorch Reference ScalingMax-Scale MoE/DenseSmall, Hackable 3D Training

Resources