# Pytorch Lightning > Framework de deep learning (PyTorch Lightning): organiza código en LightningModules, configura Trainers multi-GPU/TPU, pipelines de datos, callbacks, logging (W&B, TensorBoard, MLflow) y entrenamiento distribuido (DDP, FSDP, DeepSpeed). Fuente: https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/pytorch-lightning Markdown: https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/pytorch-lightning.md Repositorio: https://github.com/K-Dense-AI/scientific-agent-skills Autor: K-Dense-AI Licencia: Apache-2.0 license Actualizado: el mes pasado Coste de contexto: 76 tok instalada, 1.9k tok al activarse, 35k tok con todos los archivos del bundle Bundle: 11 archivos, 137 KB Permisos que pide: read write edit bash ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add K-Dense-AI/scientific-agent-skills --skill pytorch-lightning --agent claude-code # Cursor npx -y skills add K-Dense-AI/scientific-agent-skills --skill pytorch-lightning --agent cursor # Codex npx -y skills add K-Dense-AI/scientific-agent-skills --skill pytorch-lightning --agent codex # Gemini CLI npx -y skills add K-Dense-AI/scientific-agent-skills --skill pytorch-lightning --agent gemini # Windsurf npx -y skills add K-Dense-AI/scientific-agent-skills --skill pytorch-lightning --agent windsurf # Cline npx -y skills add K-Dense-AI/scientific-agent-skills --skill pytorch-lightning --agent cline ``` ## Qué hace - Organiza código PyTorch en LightningModules eliminando boilerplate sin perder flexibilidad - Configura el Trainer para entrenamiento multi-GPU/TPU, precisión mixta, checkpointing y early stopping - Estructura pipelines de datos reutilizables con LightningDataModule (prepare_data, setup, dataloaders) - Integra logging con TensorBoard, W&B, MLflow o Comet, y añade callbacks personalizados en hooks de entrenamiento - Guía la elección de estrategia distribuida (DDP, FSDP, DeepSpeed) según el tamaño del modelo ## Cuándo usarla - El usuario construye, entrena o despliega redes neuronales con PyTorch Lightning - Necesita organizar código PyTorch en LightningModules o LightningDataModules - Configura Trainers para entrenamiento multi-GPU/TPU - Trabaja con callbacks, logging o estrategias de entrenamiento distribuido (DDP, FSDP, DeepSpeed) ## Qué la activa - "Convierte este modelo PyTorch en un LightningModule" - "Configura el Trainer para entrenar en 4 GPUs con FSDP" - "Añade early stopping y checkpointing a mi entrenamiento" - "Crea un LightningDataModule para este dataset" ## Antes de instalar - Requiere Python 3.10+ y lightning 2.6+ (uv pip install lightning); entrenamiento en GPU necesita PyTorch con CUDA, y loggers como wandb o mlflow se instalan aparte. ## Archivos - SKILL.md — 7 KB - references/best_practices.md — 16 KB - references/callbacks.md — 15 KB - references/data_module.md — 14 KB - references/distributed_training.md — 14 KB - references/lightning_module.md — 13 KB - references/logging.md — 14 KB - references/trainer.md — 14 KB - scripts/quick_trainer_setup.py — 14 KB - scripts/template_datamodule.py — 9 KB - scripts/template_lightning_module.py — 6 KB ## SKILL.md Reproducido tal cual desde K-Dense-AI/scientific-agent-skills bajo Apache-2.0 license. Esta sección es el documento original y está en inglés. # PyTorch Lightning ## Overview PyTorch Lightning is a deep learning framework that organizes PyTorch code to eliminate boilerplate while maintaining full flexibility. Automate training workflows, multi-device orchestration, and implement best practices for neural network training and scaling across multiple GPUs/TPUs. **Current upstream:** lightning 2.6.4 (PyPI, May 2026). Docs: [lightning.ai/docs/pytorch/stable](https://lightning.ai/docs/pytorch/stable/). Use `import lightning as L` (the `pytorch-lightning` package name still installs the same library). ## Installation ```bash uv pip install lightning ``` Optional extras: ```bash uv pip install lightning[extra] # loggers, strategies, etc. uv pip install wandb mlflow # specific loggers as needed ``` ## When to Use This Skill This skill should be used when: - Building, training, or deploying neural networks using PyTorch Lightning - Organizing PyTorch code into LightningModules - Configuring Trainers for multi-GPU/TPU training - Implementing data pipelines with LightningDataModules - Working with callbacks, logging, and distributed training strategies (DDP, FSDP, DeepSpeed) - Structuring deep learning projects professionally ## Core Capabilities ### 1. LightningModule - Model Definition Organize PyTorch models into six logical sections: 1. **Initialization** - `__init__()` and `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()` **Quick template reference:** See `scripts/template_lightning_module.py` for a complete boilerplate. **Detailed documentation:** Read `references/lightning_module.md` for comprehensive method documentation, hooks, properties, and best practices. ### 2. Trainer - Training Automation The Trainer automates the training loop, device management, gradient operations, and callbacks. Key features: - Multi-GPU/TPU support with strategy selection (DDP, FSDP, DeepSpeed) - Automatic mixed precision training - Gradient accumulation and clipping - Checkpointing and early stopping - Progress bars and logging **Quick setup reference:** See `scripts/quick_trainer_setup.py` for common Trainer configurations. **Detailed documentation:** Read `references/trainer.md` for all parameters, methods, and configuration options. ### 3. LightningDataModule - Data Pipeline Organization Encapsulate all data processing steps in a reusable class: 1. `prepare_data()` - Download and process data (single-process) 2. `setup()` - Create datasets and apply transforms (per-GPU) 3. `train_dataloader()` - Return training DataLoader 4. `val_dataloader()` - Return validation DataLoader 5. `test_dataloader()` - Return test DataLoader **Quick template reference:** See `scripts/template_datamodule.py` for a complete boilerplate. **Detailed documentation:** Read `references/data_module.md` for method details and usage patterns. ### 4. Callbacks - Extensible Training Logic Add custom functionality at specific training hooks without modifying your LightningModule. Built-in callbacks include: - **ModelCheckpoint** - Save best/latest models - **EarlyStopping** - Stop when metrics plateau - **LearningRateMonitor** - Track LR scheduler changes - **BatchSizeFinder** - Auto-determine optimal batch size **Detailed documentation:** Read `references/callbacks.md` for built-in callbacks and custom callback creation. ### 5. Logging - Experiment Tracking Integrate with multiple logging platforms: - TensorBoard (default) - Weights & Biases (WandbLogger) - MLflow (MLFlowLogger) - Comet (CometLogger) - CSV (CSVLogger) Note: `NeptuneLogger` was removed in lightning 2.6.4. Use W&B, MLflow, or TensorBoard instead. Log metrics using `self.log("metric_name", value)` in any LightningModule method. **Detailed documentation:** Read `references/logging.md` for logger setup and configuration. ### 6. Distributed Training - Scale to Multiple Devices Choose the right strategy based on model size: - **DDP** - For models <500M parameters (ResNet, smaller transformers) - **FSDP** - For models 500M+ parameters (large transformers, recommended for Lightning users) - **DeepSpeed** - For cutting-edge features and fine-grained control Configure with: `Trainer(strategy="ddp", accelerator="gpu", devices=4)` **Detailed documentation:** Read `references/distributed_training.md` for strategy comparison and configuration. ### 7. Best Practices - Device agnostic code - Use `self.device` instead of `.cuda()` - Hyperparameter saving - Use `self.save_hyperparameters()` in `__init__()` - Metric logging - Use `self.log()` for automatic aggregation across devices - Reproducibility - Use `seed_everything()` and `Trainer(deterministic=True)` - Debugging - Use `Trainer(fast_dev_run=True)` to test with 1 batch **Detailed documentation:** Read `references/best_practices.md` for common patterns and pitfalls. ## Quick Workflow 1. **Define model:** ```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 data:** ```python # Option 1: Direct DataLoaders train_loader = DataLoader(train_dataset, batch_size=32) # Option 2: LightningDataModule (recommended for reusability) dm = MyDataModule(batch_size=32) ``` 3. **Train:** ```python trainer = L.Trainer(max_epochs=10, accelerator="gpu", devices=2) trainer.fit(model, train_loader) # or trainer.fit(model, datamodule=dm) ``` ## Resources ### scripts/ Executable Python templates for common PyTorch Lightning patterns: - `template_lightning_module.py` - Complete LightningModule boilerplate - `template_datamodule.py` - Complete LightningDataModule boilerplate - `quick_trainer_setup.py` - Common Trainer configuration examples ### references/ Detailed documentation for each PyTorch Lightning component: - `lightning_module.md` - Comprehensive LightningModule guide (methods, hooks, properties) - `trainer.md` - Trainer configuration and parameters - `data_module.md` - LightningDataModule patterns and methods - `callbacks.md` - Built-in and custom callbacks - `logging.md` - Logger integrations and usage - `distributed_training.md` - DDP, FSDP, DeepSpeed comparison and setup - `best_practices.md` - Common patterns, tips, and pitfalls ## Dónde encaja - Categoría: [Datos y analítica](https://skillsagentes.com/categorias/datos-analitica.md) — Consulta, limpia y visualiza datos sin salir del agente. - Creador: [K-Dense-AI](https://skillsagentes.com/creators/k-dense-ai.md) — 163 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Citation Management](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/citation-management.md): Gestión integral de citas académicas: busca en OpenAlex, PubMed y Google Scholar, extrae metadatos precisos, valida citas y genera entradas BibTeX correctamente formateadas. - [Scientific Slides](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/scientific-slides.md): Crea decks de diapositivas y presentaciones para charlas de investigación: PowerPoint, presentaciones de conferencia, seminarios, defensas de tesis. Da estructura, plantillas, guía de tiempos y validación visual. - [Literature Review](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/literature-review.md): Realiza revisiones bibliográficas sistemáticas y completas usando varias bases académicas (PubMed, arXiv, bioRxiv, Semantic Scholar). Genera markdown y PDF con citas verificadas en varios estilos (APA, Nature, Vancouver). - [Infographics](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/infographics.md): Crea infografías profesionales con Nano Banana Pro AI y refinamiento iterativo inteligente. Usa Gemini 3.6 Flash para revisar la calidad e integra investigación con Perplexity Sonar. Soporta 10 tipos, 8 estilos y paletas para daltonismo. - [Latex Posters](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/latex-posters.md): Crea pósteres de investigación profesionales en LaTeX con beamerposter, tikzposter o baposter, para conferencias y comunicación científica: layout, colores, columnas múltiples e integración de figuras. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)