PyTorch a toujours été ma bibliothèque de référence pour construire des modèles de deep learning, grâce à sa flexibilité, son API Pythonic intuitive et sa facilité d'utilisation.

Cependant, déployer des modèles basés sur PyTorch dans des systèmes de production se heurte à de sérieuses limitations en matière de scalabilité et de performance, un point souvent négligé.

Schéma montrant PyTorch adapté au développement mais pas au déploiement, avec coche verte et croix rouge

Pour commencer, une contrainte majeure de PyTorch est sa dépendance quasi totale à Python.

Icône de modèles PyTorch reliée par une flèche "Python centric" au logo Python

Si Python offre simplicité, polyvalence et lisibilité, il est aussi connu pour être relativement plus lent que d'autres langages comme C++ ou Java.

Comparaison de vitesse entre Python, C++ et Java, Python présenté comme le plus lent des trois

Cela pose problème dans les scénarios où la faible latence et le haut débit sont essentiels, comme les applications et services en temps réel.

D'ailleurs, il est fort possible que le serveur sur lequel tu comptes déployer ton modèle utilise n'importe quel autre langage que Python, comme C++, Java, et bien d'autres.

Icône de serveur reliée par une flèche à des dossiers C++ et Java

Ainsi, les modèles que l'on construit DOIVENT être portables vers différents environnements conçus pour gérer des requêtes concurrentes à grande échelle.

Mais, comme évoqué plus haut, la nature Python-centrique des modèles PyTorch peut limiter leur intégration à ce type de systèmes ou de plateformes.

Une solution simple et élégante consiste à développer tes modèles PyTorch en script mode, spécialement conçu pour les cas d'usage en production.

Dans PyTorch, le script mode désigne un ensemble d'outils et de fonctionnalités qui permettent aux développeurs de faire tourner leurs modèles d'une manière plus adaptée à la production.

Schéma du script mode transformant un modèle PyTorch couplé à Python en modèle indépendant du langage, exécutable en C++ ou en Java

Si tu es curieux d'en savoir plus, j'ai récemment publié un dossier complet sur le sujet : Les modèles PyTorch ne sont pas faits pour le déploiement ! Boost-les avec TorchScript

Tu y apprendras comment rendre tes modèles PyTorch plus adaptés à la production et indépendants du langage.

Les compétences en déploiement sont absolument essentielles dans une carrière en data science et en machine learning.

Le plus grand atout de PyTorch, c'est sa simplicité et son design Pythonic.

Mais cet atout introduit aussi une limite majeure au moment de déployer des modèles basés sur PyTorch.

Apprendre à construire des modèles PyTorch en script mode fera une vraie différence dans ta carrière.

Envie d'aller plus loin ? DataXp t'attend : formations et parcours pour progresser en data science, machine learning et IA.


Commentaires

Avatar

ou participer

À lire ensuite

Des shots dans la même veine, à lire entre deux tâches.

Voir tous les shots
caret-right