본문으로 건너뛰기
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

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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의 스킬 모두 보기

이 스킬의 문제 신고