Sergey - stock.adobe.com

Avec sa dernière mise à jour, PyTorch s’aligne sur Tensorflow

Une nouvelle mise à jour de PyTorch, issue d’une collaboration entre Facebook et AWS, ajoute des fonctionnalités expérimentales ainsi qu’un support étendu pour C++ au framework de machine learning.

PyTorch, principalement développé par le laboratoire AI Research de Facebook, permet aux ingénieurs et aux développeurs de créer et d’entraîner des modèles de Deep Learning en Python, à l’instar de TensorFlow. PyTorch est devenu beaucoup plus populaire qu’à sa sortie initiale en 2016, car les entreprises passent de plus en plus de modèles en production.

La mise à jour PyTorch 1.5, publiée le 21 avril, ajoute deux propositions expérimentales pour PyTorch.

TorchServe et TorchElastic doivent faciliter l’entraînement des modèles

TorchServe est une bibliothèque de services de modèles PyTorch, qui « permet aux utilisateurs d’entraîner des modèles en utilisant une infrastructure cloud distribuée plus facilement et à moindre coût », considère Kashyap Kompella, PDG et analyste en chef du cabinet d’analyse spécialisé dans l’IA, RPA2AI Research.

La bibliothèque répond au besoin qu’ont de nombreuses entreprises de disposer d’un pipeline d’apprentissage machine de bout en bout, selon Kashyap Kompella. 

TorchServe permet d’automatiser les déploiements des modèles via des API, des outils de configuration, d’observabilité, de gestion des modèles, d’archivage, de suivi de versions et de génération d’images Docker.

« TorchServe doit faciliter un peu la vie des data scientists et des ingénieurs en machine learning qui utilisent PyTorch. »
Kashyap KompellaPDG et analyste, RPA2AI Research

« La construction de modèles de machine learning n’est en réalité que la partie émergée de l’iceberg, alors que beaucoup plus d’efforts sont nécessaires à leur déploiement et à leur maintenance une fois qu’ils sont déployés », assure-t-il. « TorchServe doit faciliter un peu la vie des data scientists et des ingénieurs en machine learning qui utilisent PyTorch, car ils n’ont pas à sauter à travers plusieurs cerceaux pour passer de la recherche à la production ».

TorchElastic, quant à lui est un contrôleur Kubernetes. Il permet aux développeurs d’exécuter plus efficacement les builds de manière élastique et tolérante aux pannes, ce qui les rend plus résistantes, toujours selon l’analyste.

Selon les ingénieurs derrière PyTorch, les développeurs ont pris l’habitude d’utiliser des instances préemptives comme EC2 Spot pour lancer des entraînements. Elles ont l’avantage d’être moins chères, mais représentent la capacité excédentaire de l’engin de calcul. Celles-ci peuvent s’arrêter si la puissance de calcul est nécessaire ailleurs, tandis que la facturation est compliquée à estimer (dynamique chez AWS, fixe chez GCP). 

TorchElastic permet de reprendre automatiquement les entraînements après les arrêts des nœuds du cluster et même après le remplacement en cas de redémarrage. Le contrôleur Kubernetes est l’outil pour configurer les paramètres du job de machine learning.

La nouvelle mise à jour de PyTorch ajoute également une meilleure prise en charge pour le langage de programmation C++, ainsi qu’un meilleur support pour les API du framework RPC.

Il est par exemple possible d’exposer des classes C++ et les méthodes associées au système TorchScript afin de les instancier, puis de manipuler des objets C++ depuis Torchscript et Python, à l’instar de pybind11.

Rattraper le retard sur Tensorflow

Comme beaucoup d’autres solutions reposant sur Python, les responsables de PyTorch mettent fin au support de Python 2.7 pour se concentrer sur les versions 3.5, 3.6, 3,7 et 3.8.

« PyTorch a pris de l’ampleur en termes d’adoption. »
Kashyap KompellaPDG et analyste, RPA2AI Research

« PyTorch a pris de l’ampleur en termes d’adoption, et la nouvelle version 1.5, avec l’API C++ et des composants tels que TorchServe et TorchElastic, aide à maintenir cet élan », constate Kashyap Kompella.

Alors que la collaboration entre AWS et Facebook ajoute de nouvelles fonctionnalités à PyTorch, TensorFlow, développé principalement par Google, les incluait déjà, note l’analyste.

Néanmoins, la nouvelle version de PyTorch démontre « un signe de croissance et de maturité de l’industrie », conclut-il.

Pour approfondir sur Outils de développement