PyTorch est un framework open-source de deep learning qui fournit des outils pour construire, entraîner et déployer des réseaux de neurones, connu pour sa conception axée sur Python et son graphe de calcul dynamique, défini à l'exécution. Développé à l'origine par Facebook AI Research, puis Meta AI, il a été publié pour la première fois en septembre 2016 et est devenu, au début et au milieu des années 2020, le framework dominant utilisé dans la recherche en IA.
Historique
PyTorch est issu de Torch, un framework de calcul scientifique antérieur basé sur le langage de programmation Lua, et a été réécrit avec une interface Python pour s'intégrer plus naturellement dans l'écosystème de science des données centré sur Python que les chercheurs utilisaient déjà. Ses choix de conception précoces, en particulier son graphe de calcul dynamique, qui construit la structure du réseau à la volée pendant l'exécution du code plutôt que de nécessiter une définition et une compilation préalables, ont rendu le débogage et l'expérimentation avec de nouvelles architectures nettement plus faciles que l'approche à graphe statique utilisée par les premiers TensorFlow. Cette convivialité pour les développeurs a conduit à une adoption rapide dans la recherche académique : au début des années 2020, la grande majorité des articles des grandes conférences sur l'apprentissage automatique utilisaient PyTorch. En septembre 2022, Meta a transféré la gouvernance de PyTorch à la PyTorch Foundation nouvellement créée, sous la Linux Foundation, reflétant son statut d'infrastructure open-source critique utilisée dans toute l'industrie plutôt que d'outil interne d'une seule entreprise.
Conception et écosystème
PyTorch représente les données sous forme de tenseurs, des tableaux multidimensionnels similaires à ceux de NumPy, et fournit une différenciation automatique pour calculer les gradients pour l'optimisation basée sur le descente de gradient automatiquement. Il fonctionne efficacement sur les CPU et, via CUDA, sur les Nvidia GPU, et a été étendu avec des outils pour l'entraînement distribué sur de nombreux GPU, la compilation de modèles pour la performance, et le déploiement mobile et en périphérie. Un vaste écosystème de bibliothèques construites sur PyTorch, y compris la bibliothèque Transformers de Hugging Face, en a fait le substrat par défaut pour l'entraînement et le réglage fin des modèles basés sur transformers, y compris la plupart des grands modèles de langage à poids ouverts publiés dans les années 2020.
Comparaison avec TensorFlow et importance
Le principal rival historique de PyTorch est TensorFlow de Google, publié un an plus tôt en 2015 ; la concurrence entre les deux frameworks a façonné une grande partie des outils d'apprentissage profond à la fin des années 2010, TensorFlow étant initialement favorisé pour le déploiement en production et PyTorch pour la flexibilité en recherche. TensorFlow a ensuite adopté l'exécution immédiate pour combler cet écart, mais PyTorch avait déjà conquis une part décisive de l'attention en recherche et, à mesure que l'ère des grands modèles de langage raccourcissait les délais entre recherche et production, une grande partie du déploiement en production également. Au milieu des années 2020, PyTorch était le framework sous-jacent de la plupart des modèles de fondation largement utilisés et était fréquemment cité, aux côtés de CUDA et des GPU Nvidia, comme l'une des pièces d'infrastructure dont l'industrie moderne de l'IA dépend le plus.