К основному содержанию
скилл CX Codex

distributed-llm-pretraining-torchtitan — скилл Claude Code

Помогает настраивать предобучение LLM через torchtitan с 4D-параллелизмом (FSDP2, TP, PP, CP). Пригодится при запуске Llama 3.1 или DeepSeek V3 на кластерах от 8 до 512+ GPU.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Orchestra-Research/AI-Research-SKILLs --skill distributed-llm-pretraining-torchtitan -a claude-code
npx skills add Orchestra-Research/AI-Research-SKILLs --skill torchtitan -a claude-code
Открыть на GitHub

Что делает distributed-llm-pretraining-torchtitan

Скилл даёт готовые инструкции по запуску предобучения моделей масштаба от 8B до 405B параметров на базе torchtitan. Внутри собраны шаблоны конфигураций TOML для FSDP2, тензорного, пайплайн- и контекстного параллелизма. Агент помогает подготовить скрипты запуска для одного узла или кластера под управлением SLURM.

Для работы требуются torch>=2.6.0, torchtitan>=0.2.0 и torchao>=0.5.0. Если вы обучаете модель на ускорителях H100, скилл показывает, как подключить квантование Float8 через библиотеку torchao и задействовать torch.compile. Это даёт прирост скорости и снижает потребление памяти.

При нехватке видеопамяти скилл предлагает переключить activation checkpointing в полный режим или настроить накопление градиентов. Без свежего PyTorch запустить окружение не выйдет.

Какие задачи решает

  • подготовить TOML-конфиг для распределённого обучения Llama 3.1
  • настроить 4D-параллелизм для масштабирования на 512 GPU
  • составить SLURM-скрипт запуска для многоузлового кластера
  • включить Float8 и torch.compile для ускорения обучения на H100
  • устранить ошибку Out of Memory через activation checkpointing

Примеры запросов агенту

  • Сделай TOML-конфиг для предобучения Llama 3.1 8B на 8 GPU через torchtitan
  • Напиши SLURM-скрипт для запуска torchtitan на 32 нодах с тензорным параллелизмом
  • Как включить Float8 обучение через torchao в torchtitan?

Как установить distributed-llm-pretraining-torchtitan

1Через Skills CLI (Vercel)

npx skills add Orchestra-Research/AI-Research-SKILLs --skill distributed-llm-pretraining-torchtitan -a claude-code
npx skills add Orchestra-Research/AI-Research-SKILLs --skill torchtitan -a claude-code

2Вручную: положить файлы

~/.claude/skills/torchtitan/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/torchtitan/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о distributed-llm-pretraining-torchtitan

Как установить distributed-llm-pretraining-torchtitan в Claude Code?

Выполните команду npx skills add Orchestra-Research/AI-Research-SKILLs --skill distributed-llm-pretraining-torchtitan -a claude-code.

Что делает distributed-llm-pretraining-torchtitan?

Скилл обучает ИИ-агента разворачивать распределённое предобучение LLM с 4D-параллелизмом (FSDP2, TP, PP, CP) и сохранять распределённые чекпоинты.

Какие зависимости нужны для работы со скиллом?

В окружении должны быть установлены пакеты torch>=2.6.0, torchtitan>=0.2.0 и библиотека torchao>=0.5.0 для поддержки Float8.

Исходный текст

SKILL.md · MIT
---
name: distributed-llm-pretraining-torchtitan
description: Provides PyTorch-native distributed LLM pretraining using torchtitan with 4D parallelism (FSDP2, TP, PP, CP). Use when pretraining Llama 3.1, DeepSeek V3, or custom models at scale from 8 to 512+ GPUs with Float8, torch.compile, and distributed checkpointing.
version: 1.0.0
author: Orchestra Research
license: MIT
tags: [Model Architecture, Distributed Training, TorchTitan, FSDP2, Tensor Parallel, Pipeline Parallel, Context Parallel, Float8, Llama, Pretraining]
dependencies: [torch>=2.6.0, torchtitan>=0.2.0, torchao>=0.5.0]
---

# TorchTitan - PyTorch Native Distributed LLM Pretraining

## Quick start

TorchTitan is PyTorch's official platform for large-scale LLM pretraining with composable 4D parallelism (FSDP2, TP, PP, CP), achieving 65%+ speedups over baselines on H100 GPUs.

**Installation**:
```bash
# From PyPI (stable)
pip install torchtitan

# From source (latest features, requires PyTorch nightly)
git clone https://github.com/pytorch/torchtitan
cd torchtitan
pip install -r requirements.txt
```

**Download tokenizer**:
```bash
# Get HF token from https://huggingface.co/settings/tokens
python scripts/download_hf_assets.py --repo_id meta-llama/Llama-3.1-8B --assets tokenizer --hf_token=...
```

**Start training on 8 GPUs**:
```bash
CONFIG_FILE="./torchtitan/models/llama3/train_configs/llama3_8b.toml" ./run_train.sh
```

## Common workflows

### Workflow 1: Pretrain Llama 3.1 8B on single node

Copy this checklist:

```
Single Node Pretraining:
- [ ] Step 1: Download tokenizer
- [ ] Step 2: Configure training
- [ ] Step 3: Launch training
- [ ] Step 4: Monitor and checkpoint
```

**Step 1: Download tokenizer**

```bash
python scripts/download_hf_assets.py \
  --repo_id meta-llama/Llama-3.1-8B \
  --assets tokenizer \
  --hf_token=YOUR_HF_TOKEN
```

**Step 2: Configure training**

Edit or create a TOML config file:

```toml
# llama3_8b_custom.toml
[job]
dump_folder = "./outputs"
description = "Llama 3.1 8B training"

[model]
name = "llama3"
flavor = "8B"
hf_assets_path = "./assets/hf/Llama-3.1-8B"

[optimizer]
name = "AdamW"
lr = 3e-4

[lr_scheduler]
warmup_steps = 200

[training]
local_batch_size = 2
seq_len = 8192
max_norm = 1.0
steps = 1000
dataset = "c4"

[parallelism]
data_parallel_shard_degree = -1  # Use all GPUs for FSDP

[activation_checkpoint]
mode = "selective"
selective_ac_option = "op"

[checkpoint]
enable = true
folder = "checkpoint"
interval = 500
```

**Step 3: Launch training**

```bash
# 8 GPUs on single node
CONFIG_FILE="./llama3_8b_custom.toml" ./run_train.sh

# Or explicitly with torchrun
torchrun --nproc_per_node=8 \
  -m torchtitan.train \
  --job.config_file ./llama3_8b_custom.toml
```

**Step 4: Monitor and checkpoint**

TensorBoard logs are saved to `./outputs/tb/`:
```bash
tensorboard --logdir ./outputs/tb
```

### Workflow 2: Multi-node training with SLURM

```
Multi-Node Training:
- [ ] Step 1: Configure parallelism for scale
- [ ] Step 2: Set up SLURM script
- [ ] Step 3: Submit job
- [ ] Step 4: Resume from checkpoint
```

**Step 1: Configure parallelism for scale**

For 70B model on 256 GPUs (32 nodes):
```toml
[parallelism]
data_parallel_shard_degree = 32  # FSDP across 32 ranks
tensor_parallel_degree = 8        # TP within node
pipeline_parallel_degree = 1      # No PP for 70B
context_parallel_degree = 1       # Increase for long sequences
```

**Step 2: Set up SLURM script**

```bash
#!/bin/bash
#SBATCH --job-name=llama70b
#SBATCH --nodes=32
#SBATCH --ntasks-per-node=8
#SBATCH --gpus-per-node=8

srun torchrun \
  --nnodes=32 \
  --nproc_per_node=8 \
  --rdzv_backend=c10d \
  --rdzv_endpoint=$MASTER_ADDR:$MASTER_PORT \
  -m torchtitan.train \
  --job.config_file ./llama3_70b.toml
```

**Step 3: Submit job**

```bash
sbatch multinode_trainer.slurm
```

**Step 4: Resume from checkpoint**

Training auto-resumes if checkpoint exists in configured folder.

### Workflow 3: Enable Float8 training for H100s

Float8 provides 30-50% speedup on H100 GPUs.

```
Float8 Training:
- [ ] Step 1: Install torchao
- [ ] Step 2: Configure Float8
- [ ] Step 3: Launch with compile
```

**Step 1: Install torchao**

```bash
USE_CPP=0 pip install git+https://github.com/pytorch/ao.git
```

**Step 2: Configure Float8**

Add to your TOML config:
```toml
[model]
converters = ["quantize.linear.float8"]

[quantize.linear.float8]
enable_fsdp_float8_all_gather = true
precompute_float8_dynamic_scale_for_fsdp = true
filter_fqns = ["output"]  # Exclude output layer

[compile]
enable = true
components = ["model", "loss"]
```

**Step 3: Launch with compile**

```bash
CONFIG_FILE="./llama3_8b.toml" ./run_train.sh \
  --model.converters="quantize.linear.float8" \
  --quantize.linear.float8.enable_fsdp_float8_all_gather \
  --compile.enable
```

### Workflow 4: 4D parallelism for 405B models

```
4D Parallelism (FSDP + TP + PP + CP):
- [ ] Step 1: Create seed checkpoint
- [ ] Step 2: Configure 4D parallelism
- [ ] Step 3: Launch on 512 GPUs
```

**Step 1: Create seed checkpoint**

Required for consistent initialization across PP stages:
```bash
NGPU=1 CONFIG_FILE=./llama3_405b.toml ./run_train.sh \
  --checkpoint.enable \
  --checkpoint.create_seed_checkpoint \
  --parallelism.data_parallel_shard_degree 1 \
  --parallelism.tensor_parallel_degree 1 \
  --parallelism.pipeline_parallel_degree 1
```

**Step 2: Configure 4D parallelism**

```toml
[parallelism]
data_parallel_shard_degree = 8   # FSDP
tensor_parallel_degree = 8       # TP within node
pipeline_parallel_degree = 8     # PP across nodes
context_parallel_degree = 1      # CP for long sequences

[training]
local_batch_size = 32
seq_len = 8192
```

**Step 3: Launch on 512 GPUs**

```bash
# 64 nodes x 8 GPUs = 512 GPUs
srun torchrun --nnodes=64 --nproc_per_node=8 \
  -m torchtitan.train \
  --job.config_file ./llama3_405b.toml
```

## When to use vs alternatives

**Use TorchTitan when:**
- Pretraining LLMs from scratch (8B to 405B+)
- Need PyTorch-native solution without third-party dependencies
- Require composable 4D parallelism (FSDP2, TP, PP, CP)
- Training on H100s with Float8 support
- Want interoperable checkpoints with torchtune/HuggingFace

**Use alternatives instead:**
- **Megatron-LM**: Maximum performance for NVIDIA-only deployments
- **DeepSpeed**: Broader ZeRO optimization ecosystem, inference support
- **Axolotl/TRL**: Fine-tuning rather than pretraining
- **LitGPT**: Educational, smaller-scale training

## Common issues

**Issue: Out of memory on large models**

Enable activation checkpointing and reduce batch size:
```toml
[activation_checkpoint]
mode = "full"  # Instead of "selective"

[training]
local_batch_size = 1
```

Or use gradient accumulation:
```toml
[training]
local_batch_size = 1
global_batch_size = 32  # Accumulates gradients
```

**Issue: TP causes high memory with async collectives**

Set environment variable:
```bash
export TORCH_NCCL_AVOID_RECORD_STREAMS=1
```

**Issue: Float8 training not faster**

Float8 only benefits large GEMMs. Filter small layers:
```toml
[quantize.linear.float8]
filter_fqns = ["attention.wk", "attention.wv", "output", "auto_filter_small_kn"]
```

**Issue: Checkpoint loading fails after parallelism change**

Use DCP's resharding capability:
```bash
# Convert sharded checkpoint to single file
python -m torch.distributed.checkpoint.format_utils \
  dcp_to_torch checkpoint/step-1000 checkpoint.pt
```

**Issue: Pipeline parallelism initialization**

Create seed checkpoint first (see Workflow 4, Step 1).

## Supported models

| Model | Sizes | Status |
|-------|-------|--------|
| Llama 3.1 | 8B, 70B, 405B | Production |
| Llama 4 | Various | Experimental |
| DeepSeek V3 | 16B, 236B, 671B (MoE) | Experimental |
| GPT-OSS | 20B, 120B (MoE) | Experimental |
| Qwen 3 | Various | Experimental |
| Flux | Diffusion | Experimental |

## Performance benchmarks (H100)

| Model | GPUs | Parallelism | TPS/GPU | Techniques |
|-------|------|-------------|---------|------------|
| Llama 8B | 8 | FSDP | 5,762 | Baseline |
| Llama 8B | 8 | FSDP+compile+FP8 | 8,532 | +48% |
| Llama 70B | 256 | FSDP+TP+AsyncTP | 876 | 2D parallel |
| Llama 405B | 512 | FSDP+TP+PP | 128 | 3D parallel |

## Advanced topics

**FSDP2 configuration**: See [references/fsdp.md](references/fsdp.md) for detailed FSDP2 vs FSDP1 comparison and ZeRO equivalents.

**Float8 training**: See [references/float8.md](references/float8.md) for tensorwise vs rowwise scaling recipes.

**Checkpointing**: See [references/checkpoint.md](references/checkpoint.md) for HuggingFace conversion and async checkpointing.

**Adding custom models**: See [references/custom-models.md](references/custom-models.md) for TrainSpec protocol.

## Resources

- GitHub: https://github.com/pytorch/torchtitan
- Paper: https://arxiv.org/abs/2410.06511
- ICLR 2025: https://iclr.cc/virtual/2025/poster/29620
- PyTorch Forum: https://discuss.pytorch.org/c/distributed/torchtitan/44

© Orchestra Research · MIT · Orchestra-Research/AI-Research-SKILLs

Похожие скиллы

Всё по теме «ИИ и ML» →
nemo-automodel-distributed-training NVIDIA Подсказывает, какую стратегию распределённого обучения выбрать в NeMo AutoModel и какие поля YAML выставить. Пригодится, когда модель не влезает в одну GPU. CX Codex +1 2 000установок nemo-mbridge-perf-tp-dp-comm-overlap NVIDIA Скилл ведёт по настройке перекрытия коммуникаций TP, DP и PP в Megatron-Bridge: какие ручки крутить, где смотреть код и как проверить результат. CX Codex +1 1 800установок flow-nexus-neural ruvnet Запускает обучение и инференс нейросетей в изолированных песочницах E2B через Flow Nexus. Пригодится для тренировки моделей и работы с готовыми шаблонами прямо из чата с агентом. CX Codex +1 1 100установок distributed-tracing Seth Hobson Скилл настраивает распределённую трассировку через Jaeger и Tempo. Пригодится для поиска задержек и ошибок в микросервисах. CX Codex 10 700установок llm-evaluation Seth Hobson Скилл для оценки качества LLM-приложений: автоматические метрики, человеческая разметка, LLM-as-judge и бенчмарки. Пригодится, когда нужно сравнить модели или поймать регрессию до деплоя. CX Codex 12 755установок cost-aware-llm-pipeline affaan-m Скилл для приложений, которые дёргают LLM API: выбирает модель по сложности задачи, считает расход и кэширует промпты. Пригодится, когда счёт за API растёт. CX Codex +1 4 600установок

Из того же набора66

clip Помогает применять CLIP для классификации изображений, поиска по смыслу и сопоставления картинки с текстом без дообучения. CX Codex +1 957установок pytorch-fsdp2 Учит агента добавлять PyTorch FSDP2 в цикл обучения: инициализация, шардирование, mixed precision и распределённые чекпоинты. CX Codex +1 958установок nanogpt Скилл помогает разбирать и запускать учебную реализацию GPT на PyTorch. Он пригодится для экспериментов с трансформерами и обучения на своих текстах. CX Codex +1 956установок openrlhf-training Скилл для запуска PPO, GRPO, RLOO и DPO на моделях от 7B до 70B+. Пригодится, когда обучение идёт на нескольких GPU или узлах. CX Codex +1 954установок transformer-lens-interpretability Скилл помогает исследовать внутренние механизмы трансформеров через TransformerLens: кэшировать активации, изучать внимание и проводить activation patching. CX Codex +1 954установок modal-serverless-gpu Скилл, который помогает запускать ML-задачи на серверных GPU Modal: обучение, инференс, батчи. Пригодится, когда не хочется поднимать кластер самому. CX Codex +1 954установок sglang Скилл учит агента разворачивать SGLang, настраивать кэширование префиксов RadixAttention и запускать генерацию по JSON-схемам и регулярным выражениям. CX Codex +1 954установок evaluating-code-models Скилл запускает бенчмарки для моделей генерации кода и считает pass@k. Нужен для сравнения моделей, языков и качества решений. CX Codex +1 953установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой