本文へ移動
cccskills
無料GitHub で公開

training-llms-megatron

Treina modelos de linguagem grandes (2B-462B de parâmetros) usando NVIDIA Megatron-Core com estratégias avançadas de paralelismo. Use ao treinar modelos >1B de parâmetros, precisar de máxima eficiência de GPU (47% MFU em H100), ou necessitar de paralelismo tensor/pipeline/sequência/contexto/expert. Framework pronto para produção usado em Nemotron, LLaMA, DeepSeek.

インストール方法を見る

含まれるファイル(5)

  • SKILL.md10.1 KB
  • references/benchmarks.md7.2 KB
  • references/parallelism-guide.md9.4 KB
  • references/production-examples.md10.6 KB
  • references/training-recipes.md11.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Megatron-Core - Treinamento de LLMs em Larga Escala

Início rápido

Megatron-Core treina LLMs de 2B a 462B de parâmetros com até 47% de Model FLOP Utilization em GPUs H100 através de estratégias avançadas de paralelismo.

Instalação:

# Docker (recomendado)
docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:25.04-py3

# Ou pip
pip install megatron-core

Treinamento distribuído simples:

# Treinar com 2 GPUs usando data parallelism
torchrun --nproc_per_node=2 examples/run_simple_mcore_train_loop.py

# Ou treinamento LLaMA-3 8B
./examples/llama/train_llama3_8b_fp8.sh

Fluxos de trabalho comuns

Fluxo 1: Treinar modelo estilo LLaMA com paralelismo 3D

Copie esta lista de verificação:

Configuração de Treinamento LLaMA:
- [ ] Passo 1: Escolher configuração de paralelismo
- [ ] Passo 2: Configurar hiperparâmetros de treinamento
- [ ] Passo 3: Lançar treinamento distribuído
- [ ] Passo 4: Monitorar métricas de desempenho

Passo 1: Escolher configuração de paralelismo

O tamanho do modelo determina a estratégia de paralelismo:

Tamanho do ModeloGPUsTensor ParallelPipeline ParallelData ParallelContext Parallel
7B81181
13B82141
70B644441
405B1288822

Passo 2: Configurar hiperparâmetros de treinamento

#!/bin/bash
# train_llama_70b.sh

GPUS_PER_NODE=8
NNODES=8  # 64 GPUs total
TP=4      # Tensor parallel
PP=4      # Pipeline parallel
CP=1      # Context parallel

# Configuração LLaMA 70B
MODEL_SIZE=70  # Billion parameters
HIDDEN_SIZE=8192
NUM_LAYERS=80
NUM_HEADS=64
SEQ_LENGTH=4096

# Hiperparâmetros de treinamento
MICRO_BATCH=1
GLOBAL_BATCH=1024
LR=3e-4

torchrun \
  --nproc_per_node=$GPUS_PER_NODE \
  --nnodes=$NNODES \
  pretrain_gpt.py \
  --tensor-model-parallel-size $TP \
  --pipeline-model-parallel-size $PP \
  --context-parallel-size $CP \
  --sequence-parallel \
  --num-layers $NUM_LAYERS \
  --hidden-size $HIDDEN_SIZE \
  --num-attention-heads $NUM_HEADS \
  --seq-length $SEQ_LENGTH \
  --max-position-embeddings $SEQ_LENGTH \
  --micro-batch-size $MICRO_BATCH \
  --global-batch-size $GLOBAL_BATCH \
  --lr $LR \
  --train-iters 100000 \
  --lr-decay-style cosine \
  --lr-warmup-iters 2000 \
  --weight-decay 0.1 \
  --clip-grad 1.0 \
  --bf16 \
  --use-mcore-models \
  --transformer-impl transformer_engine \
  --data-path /path/to/data \
  --vocab-file /path/to/vocab.json \
  --merge-file /path/to/merges.txt

Passo 3: Lançar treinamento distribuído

# Nó único (8 GPUs)
bash train_llama_70b.sh

# Multi-nó com SLURM
sbatch --nodes=8 --gpus-per-node=8 train_llama_70b.sh

Passo 4: Monitorar métricas de desempenho

Métricas-chave para acompanhar:

Model FLOP Utilization (MFU): Meta >40% em H100
Throughput: Tokens/seg/GPU
Uso de memória: <80GB por GPU para modelo 70B
Loss: Deve diminuir constantemente

Fluxo 2: Configurar treinamento Mixture of Experts (MoE)

Para modelos MoE esparsos como Mixtral.

Treinamento MoE:
- [ ] Passo 1: Configurar expert parallelism
- [ ] Passo 2: Definir hiperparâmetros MoE
- [ ] Passo 3: Lançar treinamento com EP

Passo 1: Configurar expert parallelism

# Exemplo Mixtral 8x7B
TENSOR_PARALLEL=2
PIPELINE_PARALLEL=1
EXPERT_PARALLEL=4  # Dividir 8 experts entre 4 GPUs
DATA_PARALLEL=4

TOTAL_GPUS=$((TENSOR_PARALLEL * PIPELINE_PARALLEL * EXPERT_PARALLEL * DATA_PARALLEL))
# = 2 * 1 * 4 * 4 = 32 GPUs

Passo 2: Definir hiperparâmetros MoE

torchrun \
  --nproc_per_node=8 \
  pretrain_gpt.py \
  --tensor-model-parallel-size 2 \
  --pipeline-model-parallel-size 1 \
  --expert-model-parallel-size 4 \
  --num-experts 8 \
  --moe-router-topk 2 \
  --moe-router-load-balancing-type aux_loss \
  --moe-aux-loss-coeff 0.01 \
  --hidden-size 4096 \
  --num-layers 32 \
  --num-attention-heads 32 \
  --seq-length 4096 \
  --max-position-embeddings 4096 \
  --bf16 \
  --use-mcore-models \
  --transformer-impl transformer_engine \
  --data-path /path/to/data \
  --vocab-file /path/to/vocab.json \
  --merge-file /path/to/merges.txt

Passo 3: Lançar treinamento com EP

Expert parallelism distribui diferentes experts entre GPUs, reduzindo memória enquanto mantém a capacidade.

Memória sem EP: 8 experts × 7B = 56GB por GPU
Memória com EP=4: 2 experts × 7B = 14GB por GPU
Economia: redução de 75% em memória

Fluxo 3: Otimizar para máximo throughput

Alcançar 47% MFU em H100.

Otimização de Desempenho:
- [ ] Passo 1: Habilitar Flash Attention
- [ ] Passo 2: Usar precisão FP8 (H100)
- [ ] Passo 3: Otimizar tamanho de micro-batch
- [ ] Passo 4: Ajustar graus de paralelismo

Passo 1: Habilitar otimizações

--use-mcore-models  # Usar modelos Megatron Core
--transformer-impl transformer_engine  # Usar Transformer Engine
--sequence-parallel  # Reduzir memória de ativações (usar com TP)

Passo 2: Usar precisão FP8 (apenas H100)

--fp8-hybrid  # Treinamento com precisão mista FP8
# Transformer Engine cuida de FP8 automaticamente

Resultado: aceleração de 1,5-2x em H100 vs BF16.

Passo 3: Otimizar tamanho de micro-batch

Encontre o maior micro-batch que cabe em memória:

# Começar com 1, aumentar até OOM
for MBS in 1 2 4 8; do
  echo "Testando micro-batch-size=$MBS"
  torchrun ... --micro-batch-size $MBS
done

Valores típicos:

  • Modelo 7B: 4-8
  • Modelo 70B: 1-2
  • Modelo 405B: 1

Passo 4: Ajustar graus de paralelismo

Regras práticas:

Tensor Parallel: Usar ≤8 (limitado por NVLink dentro do nó)
Pipeline Parallel: Usar para >70B de modelos
Context Parallel: Usar para sequências >8K tokens
Data Parallel: Preencher GPUs restantes

Exemplo 405B em 128 H100s:

TP=8 (1 nó)
PP=8 (entre nós)
CP=2 (sequências longas)
DP=1
Total = 8 × 8 × 2 × 1 = 128 GPUs

Quando usar vs alternativas

Use Megatron-Core quando:

  • Treinar modelos >10B de parâmetros
  • Precisa de máxima eficiência (alvo >40% MFU)
  • Usando GPUs NVIDIA (A100, H100)
  • Treinamento em produção em larga escala
  • Quer controle fino sobre paralelismo

Use alternativas em vez disso:

  • PyTorch FSDP: Modelos <70B, API mais simples, nativo do PyTorch
  • DeepSpeed: Configuração mais fácil, bom para <100B de modelos
  • HuggingFace Accelerate: Prototipagem, fluxos de trabalho mais simples
  • LitGPT: Educacional, implementações em arquivo único

Problemas comuns

Problema: Baixa utilização de GPU (<30% MFU)

Causas:

  1. Micro-batch muito pequeno
  2. Muita sobrecarga de paralelismo
  3. Não usando Flash Attention

Correções:

# Aumentar micro-batch
--micro-batch-size 4  # Era 1

# Habilitar otimizações
--use-flash-attn
--sequence-parallel

# Reduzir TP se >8
--tensor-model-parallel-size 4  # Era 16

Problema: Memória insuficiente

Reduzir memória com:

--tensor-model-parallel-size 2  # Dividir modelo entre GPUs
--recompute-granularity full  # Gradient checkpointing
--recompute-method block  # Checkpoint de blocos transformer
--recompute-num-layers 1  # Checkpoint de cada camada

Ou usar offloading em CPU/NVMe:

--cpu-optimizer  # Offload do otimizador para CPU
--cpu-optimizer-type ADAM  # Variante Adam em CPU

Problema: Treinamento mais lento do que esperado

Verificar:

  1. Gargalo de rede: Garantir InfiniBand/NVLink habilitado
  2. Pipeline bubbles: Usar schedule de pipeline intercalado
    --num-layers-per-virtual-pipeline-stage 2
    
  3. Carregamento de dados: Usar data loader rápido
    --dataloader-type cyclic
    

Problema: Loss divergindo

Estabilizar treinamento:

--lr-warmup-iters 2000  # Warmup mais longo
--clip-grad 1.0  # Gradient clipping
--init-method-std 0.006  # Inicialização menor
--attention-dropout 0.0  # Sem dropout em attention
--hidden-dropout 0.0  # Sem dropout em FFN

Tópicos avançados

Estratégias de paralelismo: Veja references/parallelism-guide.md para comparação detalhada de TP/PP/DP/CP/EP com análise de desempenho e quando usar cada uma.

Benchmarks de desempenho: Veja references/benchmarks.md para números de MFU em diferentes tamanhos de modelo e configurações de GPU.

Configurações para produção: Veja references/production-examples.md para setups do mundo real de LLaMA 3 405B, Nemotron-4 340B e DeepSeek-V3 671B.

Receitas de treinamento: Veja references/training-recipes.md para configurações completas de hiperparâmetros para arquiteturas GPT/LLaMA/Mixtral.

Requisitos de hardware

  • GPU: NVIDIA Ampere+ (A100, H100, B200)
    • Turing funciona mas mais lento
    • FP8 requer Hopper/Ada/Blackwell
  • Rede: InfiniBand ou Ethernet 400Gb+ para multi-nó
  • Memória por GPU:
    • Modelo 7B: 40GB+
    • Modelo 70B: 80GB (com TP=4)
    • Modelo 405B: 80GB (com TP=8, PP=8)
  • Armazenamento: NVMe rápido para checkpoints (1TB+ para modelos 70B+)

Recursos

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Especialista em construir experiências 3D para a web - Three.js, React Three Fiber, Spline, WebGL e cenas 3D interativas. Cobre configuradores de produtos, portfólios 3D, websites imersivos e adição de profundidade às experiências web. Use quando: website 3D, three.js, WebGL, react three fiber, experiência 3D.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Quando o usuário quer planejar, projetar ou implementar um teste A/B ou experimento. Também use quando o usuário menciona "teste A/B", "split test", "experimento", "testar essa mudança", "copy variante", "teste multivariado" ou "hipótese". Para implementação de rastreamento, veja analytics-tracking.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Auditar e melhorar a acessibilidade web seguindo as diretrizes WCAG 2.1. Use quando solicitado para "melhorar acessibilidade", "auditoria a11y", "conformidade WCAG", "suporte a leitor de tela", "navegação por teclado" ou "tornar acessível".

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Testes e benchmarking de agentes LLM incluindo testes comportamentais, avaliação de capacidades, métricas de confiabilidade e monitoramento em produção—onde até os melhores agentes alcançam menos de 50% em benchmarks do mundo real. Use quando: testes de agentes, avaliação de agentes, benchmark de agentes, confiabilidade de agentes, teste de agentes.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Criar, gerenciar e orquestrar agentes de IA usando o CLI AI Maestro. Use quando o usuário pedir para "criar agente", "listar agentes", "deletar agente", "hibernar agente", "despertar agente", "instalar plugin", "mostrar agente", "reiniciar agente" ou qualquer tarefa de gerenciamento do ciclo de vida do agente.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Gerencie múltiplos agentes CLI locais via sessões tmux (iniciar/parar/monitorar/atribuir) com agendamento compatível com cron.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

artubss のスキルをすべて見る

このスキルの問題を報告する