Pular para o conteúdo

TorchTitan - Cheatsheet de Pré-treinamento de LLM Nativo PyTorch

TorchTitan - Cheatsheet de Pré-treinamento de LLM Nativo PyTorch

TorchTitan é uma plataforma de código aberto nativa PyTorch para pré-treinamento de modelo generativo (LLM) em larga escala. É uma implementação de referência de sala limpa das técnicas de treinamento distribuído mais recentes do PyTorch, compondo paralelismo 4D — dados, tensor, pipeline e paralelo de contexto — de forma modular, em cima de FSDP2, torch.compile e ponto de verificação distribuído, com dimensionamento elástico. É o ponto de partida ideal para equipes que desejam fazer pré-treinar modelos usando dimensionamento PyTorch nativo em vez de uma pilha de terceiros.

Pré-treinamento distribuído consome muitos recursos. Valide configs em um modelo pequeno/escala antes de se comprometer com uma execução grande de vários nós.

Instalação

MétodoComando
From sourcegit clone https://github.com/pytorch/torchtitan && cd torchtitan && pip install -e .
RequirementsPyTorch recente (nightly frequentemente recomendado), GPUs CUDA
DatasetsUsa datasets HF / tokenizers
Verifyexecute um config de depuração em 1 GPU

Dimensões de Paralelismo (4D)

DimensãoDivide
Data Parallel (FSDP2)O lote, fragmentação de params/otimizador/grads
Tensor ParallelCamadas individuais em GPUs
Pipeline ParallelO modelo em estágios em GPUs
Context ParallelSequências longas em GPUs

Esses compostos: ex. dp × tp × pp × cp mapeia um modelo em uma grande malha de GPU.

Configuração

TorchTitan é acionado por arquivos de config TOML mais overrides de linha de comando.

# Launch training with a config (multi-GPU via torchrun)
CONFIG_FILE=./train_configs/llama3_8b.toml ./run_train.sh
Seção de ConfigControla
[model]Arquitetura, tamanho, sabor
[training]Tamanho do lote, passos, comprimento da sequência, LR
[parallelism]data_parallel_shard_degree, tensor_parallel_degree, pipeline_parallel_degree, context_parallel_degree
[optimizer]Otimizador + hiperparâmetros
[checkpoint]Frequência/caminhos de ponto de verificação distribuído
[activation_checkpoint]Política de recompilação

Recursos-Chave

RecursoBenefício
FSDP2Paralelismo de dados totalmente fragmentado moderno
torch.compileCompilação gráfica para velocidade
Async distributed checkpointingSalvar/retomar execuções enormes com eficiência
Float8 / low precisionTreinamento mais rápido em hardware suportado
Elastic scalingAdapte-se à disponibilidade de GPU em mudança
Meta-device initConstruir modelos enormes sem OOM na inicialização

Iniciando 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
OverrideExemplo
Parallel degrees--parallelism.tensor_parallel_degree 8
Steps--training.steps 10000
Seq length--training.seq_len 8192
Compile--training.compile

Monitoramento & Pontos de Verificação

AspectoComo
LoggingIntegração TensorBoard / W&B
MétricasPerda, tokens/seg, MFU (utilização de FLOPs do modelo)
CheckpointsPonto de verificação distribuído (DCP) salvar/carregar
ResumeAponte o config para uma etapa de ponto de verificação salva

TorchTitan vs Outros Frameworks de Treinamento

AspectoTorchTitanMegatron-LMNanotron
OrigemEquipe PyTorchNVIDIAHugging Face
EstiloNativo PyTorch, composávelRecursos-ricos, maduroMinimalista 3D
Paralelismo4D (dp/tp/pp/cp)3D+ (extenso)3D
Melhor paraDimensionamento de referência nativo PyTorchTreinamento de MoE/denso em escala máximaTreinamento 3D pequeno e hackeável

Recursos