PyTorch Lightning est le nouveau framework qui permet de faire du Deep Learning à grande échelle. Découvrez ci-dessous les tenants et les aboutissants de cet outil.
Qu'est-ce que PyTorch Lightning ?
Afin de parler de Lightning, nous allons d’abord présenter Pytorch :
Pytorch est un module qui fournit des outils afin de créer des modèles d’apprentissage profond (Deep Learning) évolutifs et de former des réseaux de neurones (Neural Networks). Il utilise la vision par ordinateur et le traitement du langage naturel. Développé par Meta.AI, il fait maintenant partie de la Linux Foundation et constitue l’un des logiciels et bibliothèques d’apprentissage profond à la croissance la plus rapide (entre autres: FastAi, Hugging Face).
Quelles sont les spécificités de PyTorch Lightning ?
PyTorch Lightning présente 2 spécificités :
- Tenseurs (gestion des tableaux multidimensionnels) qui accélèrent le calcul via GPU
- Réseaux neuronaux profonds basés sur des systèmes de différenciation automatique sur bande
Les principaux modules et classes utilisés sont torch.nn, torch.optim, Dataset et Dataloader. L’informatique quantique est l’une de ses applications séduisantes.
D’autre part, PyTorch Lightning est un framework open source qui remplace et utilise PyTorch lorsque la complexité du modèle augmente et dissocie la recherche de l’ingénierie pour une plus opérationnalité. Il a été adopté en 2019 lors de la Conférence: atelier sur les systèmes de traitement de l’information neuronale. Utilisé aussi bien pour le flux de travail de recherche que pour le pipeline de production, il peut se déployer en quelques jours au lieu de plusieurs mois et éviter beaucoup de désordre et de code boilerplate (code indépendant de l’expérimentation ou du training).
Il fournit une interface de haut niveau pour PyTorch et peut fonctionner et s’entraîner sur divers matériels. Les modèles sont indépendants de l’appareil, ce qui signifie qu’ils n’ont pas de problèmes de compatibilité. Par exemple, une application mobile est indépendante de l’appareil ou du matériel si elle peut s’exécuter sur n’importe quel type d’appareil. Les tâches sont divisées et résolues entre plusieurs processus ou composants ou ordinateurs dont chacun a son propre système de mémoire et ces périphériques communiquent par transmission de messages.
Certaines des difficultés rencontrées dans la résolution en parallèle ou en distribué sont que les horloges entre les composants doivent être synchronisées.
Vous pouvez commencer gratuitement.
Entre autres capacités, PyTorch Lightning a :
- Performances et bottlenecks : le bottleneck existant lorsque la vitesse à laquelle vos données sont consultées ne peut pas répondre à la configuration système requise ;
- Point de contrôle du modèle : il s’agit d’un instantané de votre modèle de travail stocké dans une mémoire non volatile indispensable pour récupérer un état spécifique du modèle en cas de panne ;
- Précision 16 bits : qui est une forme de stockage de format numérique qui accélère les processus qui ne nécessitent pas une grande précision ;
- Loggings : messages via votre code afin de vous aider à lire et à déboguer ;
- Métriques ;
- Early-Stopping : qui, en apprentissage automatique, est une forme de régularisation qui évite l’ « overfitting » lors de la formation d’un learner avec une méthode itérative.
Conclusion
PyTorch Lightning est un framework exceptionnel qui vous permet de travailler aisément sur des problématiques complexes de Deep Learning et vous propose une interface agréable et un grand nombre de tutoriels et de documentations.
Linkographie
- Wikipedia, PyTorch Lightning : https://en.wikipedia.org/wiki/PyTorch_Lightning
- Techopedia, Hardware-agnostic : https://www.techopedia.com/definition/31685/hardware-agnostic
- Wikipedia, PyTorch : https://en.wikipedia.org/wiki/PyTorch
- CNIPS : https://en.wikipedia.org/wiki/Conference_on_Neural_Information_Processing_Systems
- Ligthning : https://lightning.ai/
- Performance bottleneck : https://docs.oracle.com/cd/E19636-01/819-2326/gaxpt/index.html#:~:text=A%20performance%20bottleneck%20occurs%20when,access%20points%20within%20a%20system
- Checkpointing : https://docs.google.com/document/d/1QPHP2JNt7EKNo4nmwIMSm42oyvhWKOTLDUmlkIme0Ok/edit and https://www.indusmic.com/post/checkpoints-in-deep-learning#:~:text=Checkpoints%20are%20snapshots%20of%20your,up%20from%20where%20they%20left
- https://www.google.com/search?q=Early+stopping&oq=Early+stopping&aqs=chrome..69i57j0i512l9.2052j1j7&sourceid=chrome&ie=UTF-8
- https://www.assemblyai.com/blog/pytorch-lightning-for-dummies/
- http://www.idris.fr/jean-zay/gpu/jean-zay-gpu-lightning-multi.html
- https://docs.wandb.ai/v/fr/integrations/lightning