Bibliothèque / SDK
Lightning-AI/pytorch-lightning avatar
Lightning-AI/pytorch-lightning

PyTorch Lightning : un framework pour organiser le code d'entraînement PyTorch

Pré-entraînez et affinez TOUT modèle d'IA de TOUTE taille sur 1 ou plus de 10 000 GPU sans aucune modification de code.

31 342 étoiles3 795 forksPythonApache-2.0

En bref

De quoi s’agit-il ?
PyTorch Lightning sépare le code du modèle de l'ingénierie d'entraînement, visant à réduire le code répétitif et à faire évoluer l'entraînement sur CPU, GPU et TPU.
À qui s’adresse-t-il ?
PyTorch Lightning utilise LightningModule et Trainer pour séparer la logique d'entraînement des détails techniques tout en conservant la flexibilité des modules PyTorch. Lightning Fabric offre un contrôle de plus bas niveau aux développeurs qui souhaitent gérer eux-mêmes la boucle d'entraînement.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement Python, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

À partir du README : ce que ce projet aborde

Le README de PyTorch Lightning présente le projet comme un framework d'apprentissage profond pour le pré-entraînement et le fine-tuning de modèles d'IA. La description du dépôt indique qu'il peut entraîner des modèles de toute taille sur 1 ou plus de 10 000 GPU sans modification de code. Le README explique que l'entraînement de modèles en PyTorch pur nécessite d'écrire et de maintenir beaucoup de code d'ingénierie répétitif, comme la rétropropagation, la précision mixte, le multi-GPU et l'entraînement distribué, ce qui est sujet aux erreurs et souvent réimplémenté pour chaque projet. PyTorch Lightning organise le code PyTorch pour automatiser cette infrastructure tout en laissant aux développeurs le contrôle de la logique du modèle.

Deux packages principaux : PyTorch Lightning et Lightning Fabric

Le README présente deux packages principaux. PyTorch Lightning lui-même fournit des abstractions telles que LightningModule et Trainer : les développeurs définissent les étapes d'entraînement et les optimiseurs, et le Trainer gère les détails techniques. Lightning Fabric offre un contrôle plus fin, permettant aux développeurs de gérer eux-mêmes la boucle d'entraînement et même d'écrire leur propre Trainer. Le README illustre un continuum de niveaux d'abstraction, indiquant que les développeurs peuvent choisir la quantité d'abstraction à ajouter au-dessus de PyTorch.

Démarrage rapide : un exemple d'autoencodeur

La section de démarrage rapide montre comment installer et exécuter un exemple simple. La commande d'installation est `pip install lightning`. L'exemple définit une classe `LitAutoEncoder` qui hérite de `L.LightningModule`, implémente `training_step` et `configure_optimizers`, puis s'entraîne sur le jeu de données MNIST avec `L.Trainer()` et `trainer.fit()`. L'exemple utilise `torchvision` pour télécharger les données MNIST. Pour l'exécuter, il faut lancer `pip install torchvision` et `python main.py`.

Mise à l'échelle et matériel : d'une machine unique au multi-nœuds

Le README affirme que la mise à l'échelle de l'entraînement ne nécessite que de modifier les arguments du Trainer, par exemple `Trainer(accelerator="gpu", devices=8)` pour 8 GPU et `Trainer(accelerator="gpu", devices=8, num_nodes=32)` pour 256 GPU. Il mentionne également la prise en charge des TPU et de la précision 16 bits. Le README mentionne Lightning Cloud comme un moyen d'exécuter PyTorch Lightning sans gérer d'infrastructure, mais ne fournit pas de détails sur les performances, les coûts ou la disponibilité.

Fonctionnalités avancées : journalisation, arrêt précoce, points de contrôle et export

Le README énumère plusieurs fonctionnalités avancées fournies par le Trainer. Les gestionnaires d'expériences incluent TensorBoard, Weights and Biases, Comet et MLFlow. Les exemples de callbacks incluent `EarlyStopping` et `ModelCheckpoint`. Les modèles peuvent être exportés aux formats TorchScript et ONNX pour une utilisation en production. Le README indique également qu'il existe plus de 40 fonctionnalités avancées, mais ne les liste pas toutes.

Affirmations sur les avantages par rapport au PyTorch non structuré

Dans une section intitulée « Avantages par rapport au PyTorch non structuré », le README affirme que les modèles deviennent indépendants du matériel, que le code est plus clair car l'ingénierie est abstraite et que la reproduction est plus facile. Il affirme également moins d'erreurs car Lightning gère l'ingénierie délicate, tout en conservant la flexibilité des modules PyTorch. Il mentionne des dizaines d'intégrations avec des outils d'apprentissage automatique populaires et affirme des tests rigoureux à chaque PR, couvrant les versions de PyTorch et Python, les systèmes d'exploitation, le multi-GPU et les TPU. Sur les performances, il affirme un surcoût de vitesse minimal d'environ 300 ms par époque par rapport au PyTorch pur.

Communauté, tests et licence

Le README indique que la communauté est maintenue par plus de 10 contributeurs principaux et plus de 800 contributeurs communautaires, et que Lightning fait partie de l'écosystème PyTorch. Il fournit des liens vers Discord et GitHub Discussions. Le projet est sous licence Apache-2.0, qui permet la copie, la modification, la distribution et l'utilisation commerciale, mais le texte de la licence ne garantit rien concernant la sécurité, le support ou l'adéquation à un usage particulier.

Conclusion éditoriale

PyTorch Lightning utilise LightningModule et Trainer pour séparer la logique d'entraînement des détails techniques tout en conservant la flexibilité des modules PyTorch. Lightning Fabric offre un contrôle de plus bas niveau aux développeurs qui souhaitent gérer eux-mêmes la boucle d'entraînement. Le projet est sous licence Apache-2.0, qui ne comporte aucun engagement concernant la fonctionnalité, la sécurité ou le support.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté