Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
k-dense-ai avatar

Pytorch Lightning

  • 915 installs
  • 32k repo stars
  • Updated July 29, 2026
  • k-dense-ai/scientific-agent-skills

pytorch-lightning is a best-practices agent skill that enforces clean separation between LightningModule research code and L.Trainer engineering for developers training deep learning models at scale.

About

pytorch-lightning is a skill from k-dense-ai/scientific-agent-skills that enforces clean separation between research logic and engineering boilerplate when training deep learning models with PyTorch Lightning. It documents good patterns—training_step and compute_loss inside L.LightningModule while L.Trainer handles max_epochs, GPU accelerator, devices, and ddp strategy—and flags anti-patterns like manual device management inside training_step. Developers reach for pytorch-lightning when refactoring messy training scripts, setting up multi-GPU DDP runs, or onboarding agents to write maintainable Lightning code where research experiments stay isolated from distributed training configuration. The skill targets scientific ML workflows where reproducibility and code organization matter as much as model architecture.

  • Separates research code (model behavior) from engineering code (training loop, hardware)
  • Enforces use of LightningDataModule for data handling across train/val/test
  • Prevents manual device management, optimizer steps, and cuda() calls inside LightningModule
  • Provides standardized Trainer configuration patterns for multi-GPU and distributed training
  • 9 core best-practice rules for maintainable PyTorch Lightning projects

Pytorch Lightning by the numbers

  • 915 all-time installs (skills.sh)
  • +41 installs in the week ending Jul 29, 2026 (Skillselion tracking)
  • Ranked #1,151 of 16,570 AI & Agent Building skills by installs in the Skillselion catalog
  • Security screen: CRITICAL risk (skills.sh audit)
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/k-dense-ai/scientific-agent-skills --skill pytorch-lightning

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs915
repo stars32k
Security audit2 / 3 scanners passed
Last updatedJuly 29, 2026
Repositoryk-dense-ai/scientific-agent-skills

How do you structure PyTorch Lightning training code cleanly?

Enforce clean separation between research logic and engineering boilerplate when training deep learning models with PyTorch Lightning.

Who is it for?

ML engineers training deep learning models who want LightningModule research code separated from L.Trainer distributed training configuration.

Skip if: Developers using raw PyTorch loops exclusively or teams already standardized on unrelated frameworks like JAX or TensorFlow/Keras.

When should I use this skill?

A PyTorch Lightning project mixes device management into training_step or needs multi-GPU DDP Trainer setup guidance.

What you get

LightningModule with isolated training_step logic and L.Trainer config for epochs, GPU accelerator, devices, and DDP strategy.

  • refactored LightningModule
  • Trainer configuration block

By the numbers

  • Documents Trainer config with max_epochs 100, accelerator gpu, devices 4, strategy ddp

Files

SKILL.mdMarkdownGitHub ↗

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. Use import lightning as L (the pytorch-lightning package name still installs the same library).

Installation

uv pip install lightning

Optional extras:

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:

   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:

   # 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:

   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

Related skills

How it compares

Use pytorch-lightning guidance when standardizing on PyTorch Lightning rather than raw PyTorch training loops or framework-agnostic ML tips.

FAQ

What separation does pytorch-lightning enforce?

pytorch-lightning keeps research logic—training_step and compute_loss—inside L.LightningModule while L.Trainer owns engineering concerns like max_epochs, GPU accelerator, devices count, and ddp strategy.

What anti-pattern does pytorch-lightning warn against?

pytorch-lightning flags manual device management inside training_step as an anti-pattern; PyTorch Lightning's Trainer should handle GPU placement and distributed strategy instead of inline tensor device moves.

Is Pytorch Lightning safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

AI & Agent Buildingagentsllmautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.