Framework de deep learning (PyTorch Lightning). Organize código PyTorch em LightningModules, configure Trainers para multi-GPU/TPU, implemente data pipelines, callbacks, logging (W&B, TensorBoard), distributed training (DDP, FSDP, DeepSpeed), para treinamento escalável de redes neurais.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add artubss/SKILLS-CLAUDE-CODE --skill pytorch-lightning --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Pytorch Lightning?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/artubss-pytorch-lightning)More formats (shields.io, HTML) on the badges page.
---
name: pytorch-lightning
description: "Framework de deep learning (PyTorch Lightning). Organize código PyTorch em LightningModules, configure Trainers para multi-GPU/TPU, implemente data pipelines, callbacks, logging (W&B, TensorBoard), distributed training (DDP, FSDP, DeepSpeed), para treinamento escalável de redes neurais."
---
# PyTorch Lightning
## Visão Geral
PyTorch Lightning é um framework de deep learning que organiza código PyTorch para eliminar boilerplate mantendo total flexibilidade. Automatize workflows de treinamento, orquestração multi-device e implemente boas práticas para treinamento e scaling de redes neurais em múltiplas GPUs/TPUs.
## Quando Usar Esta Skill
Esta skill deve ser usada quando:
- Construir, treinar ou fazer deploy de redes neurais usando PyTorch Lightning
- Organizar código PyTorch em LightningModules
- Configurar Trainers para treinamento multi-GPU/TPU
- Implementar data pipelines com LightningDataModules
- Trabalhar com callbacks, logging e estratégias de distributed training (DDP, FSDP, DeepSpeed)
- Estruturar projetos de deep learning profissionalmente
## Capacidades Principais
### 1. LightningModule - Definição de Modelo
Organize modelos PyTorch em seis seções lógicas:
1. **Inicialização** - `__init__()` e `setup()`
2. **Training Loop** - `training_step(batch, batch_idx)`
3. **Validation Loop** - `validation_step(batch, batch_idx)`
4. **Test Loop** - `test_step(batch, batch_idx)`
5. **Prediction** - `predict_step(batch, batch_idx)`
6. **Optimizer Configuration** - `configure_optimizers()`
**Referência de template rápido:** Veja `scripts/template_lightning_module.py` para boilerplate completo.
**Documentação detalhada:** Leia `references/lightning_module.md` para documentação abrangente de métodos, hooks, propriedades e boas práticas.
### 2. Trainer - Automação de Treinamento
O Trainer automatiza o loop de treinamento, gerenciamento de devices, operações de gradiente e callbacks. Recursos principais:
- Suporte multi-GPU/TPU com seleção de strategy (DDP, FSDP, DeepSpeed)
- Treinamento com precisão mista automática
- Gradient accumulation e clipping
- Checkpointing e early stopping
- Barras de progresso e logging
**Referência de setup rápido:** Veja `scripts/quick_trainer_setup.py` para configurações comuns de Trainer.
**Documentação detalhada:** Leia `references/trainer.md` para todos os parâmetros, métodos e opções de configuração.
### 3. LightningDataModule - Organização de Data Pipeline
Encapsule todos os passos de processamento de dados em uma classe reutilizável:
1. `prepare_data()` - Download e processe dados (single-process)
2. `setup()` - Crie datasets e aplique transforms (per-GPU)
3. `train_dataloader()` - Retorne training DataLoader
4. `val_dataloader()` - Retorne validation DataLoader
5. `test_dataloader()` - Retorne test DataLoader
**Referência de template rápido:** Veja `scripts/template_datamodule.py` para boilerplate completo.
**Documentação detalhada:** Leia `references/data_module.md` para detalhes de métodos e padrões de uso.
### 4. Callbacks - Lógica de Treinamento Extensível
Adicione funcionalidade customizada em hooks específicos de treinamento sem modificar seu LightningModule. Callbacks built-in incluem:
- **ModelCheckpoint** - Salve modelos melhores/mais recentes
- **EarlyStopping** - Pare quando métricas platô
- **LearningRateMonitor** - Rastreie mudanças do LR scheduler
- **BatchSizeFinder** - Determine automaticamente batch size ótimo
**Documentação detalhada:** Leia `references/callbacks.md` para callbacks built-in e criação de callbacks customizados.
### 5. Logging - Rastreamento de Experimentos
Integre com múltiplas plataformas de logging:
- TensorBoard (padrão)
- Weights & Biases (WandbLogger)
- MLflow (MLFlowLogger)
- Neptune (NeptuneLogger)
- Comet (CometLogger)
- CSV (CSVLogger)
Log de métricas usando `self.log("metric_name", value)` em qualquer método de LightningModule.
**Documentação detalhada:** Leia `references/logging.md` para setup de loggers e configuração.
### 6. Distributed Training - Escale para Múltiplos Devices
Escolha a strategy correta baseada no tamanho do modelo:
- **DDP** - Para modelos <500M parâmetros (ResNet, transformers menores)
- **FSDP** - Para modelos 500M+ parâmetros (transformers grandes, recomendado para usuários Lightning)
- **DeepSpeed** - Para recursos de ponta e controle fine-grained
Configure com: `Trainer(strategy="ddp", accelerator="gpu", devices=4)`
**Documentação detalhada:** Leia `references/distributed_training.md` para comparação de strategies e configuração.
### 7. Boas Práticas
- Código device agnostic - Use `self.device` ao invés de `.cuda()`
- Salvamento de hiperparâmetros - Use `self.save_hyperparameters()` em `__init__()`
- Logging de métricas - Use `self.log()` para agregação automática entre devices
- Reproducibilidade - Use `seed_everything()` e `Trainer(deterministic=True)`
- Debugging - Use `Trainer(fast_dev_run=True)` para testar com 1 batch
**Documentação detalhada:** Leia `references/best_practices.md` para padrões comuns e armadilhas.
## Workflow Rápido
1. **Defina o modelo:**
```python
class MyModel(L.LightningModule):
def __init__(self):
super().__init__()
self.save_hyperparameters()
self.model = YourNetwork()
def training_step(self, batch, batch_idx):
x, y = batch
loss = F.cross_entropy(self.model(x), y)
self.log("train_loss", loss)
return loss
def configure_optimizers(self):
return torch.optim.Adam(self.parameters())
```
2. **Prepare dados:**
```python
# Option 1: DataLoaders diretos
train_loader = DataLoader(train_dataset, batch_size=32)
# Option 2: LightningDataModule (recomendado para reusabilidade)
dm = MyDataModule(batch_size=32)
```
3. **Treine:**
```python
trainer = L.Trainer(max_epochs=10, accelerator="gpu", devices=2)
trainer.fit(model, train_loader) # ou trainer.fit(model, datamodule=dm)
```
## Recursos
### scripts/
Templates Python executáveis para padrões comuns de PyTorch Lightning:
- `template_lightning_module.py` - Boilerplate completo de LightningModule
- `template_datamodule.py` - Boilerplate completo de LightningDataModule
- `quick_trainer_setup.py` - Exemplos de configuração comum de Trainer
### references/
Documentação detalhada para cada componente de PyTorch Lightning:
- `lightning_module.md` - Guia abrangente de LightningModule (métodos, hooks, propriedades)
- `trainer.md` - Configuração de Trainer e parâmetros
- `data_module.md` - Padrões e métodos de LightningDataModule
- `callbacks.md` - Callbacks built-in e customizados
- `logging.md` - Integrações de loggers e uso
- `distributed_training.md` - Comparação de DDP, FSDP, DeepSpeed e setup
- `best_practices.md` - Padrões comuns, dicas e armadilhasIs this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!