Issu d’une collaboration entre AWS et Facebook, TorchServe est livré dans le cadre du projet open source PyTorch, l’un des frameworks les plus utilisés pour construire et entraîner des modèles de deep learning. L’utilisation de PyTorch, initialement créé par Facebook, est facilitée par son interface proche de ce que les utilisateurs de Python connaissent, mais le déploiement et la gestion des modèles en production est une toute autre histoire. Cette étape constitue souvent la partie la plus difficile à réaliser du processus d’apprentissage machine. C’est là qu’interviennent les serveurs de modèles conçus pour servir les prédictions ML en production. Les plus connus sont actuellement TensorFlow Serving et Multi Model Server.
Annoncé en début de semaine dans un billet sur Medium, TorchServe, actuellement en mode expérimental, vient faciliter le déploiement à l’échelle de modèles PyTorch entraînés et accélérer leur mise en production, en dispensant d’écrire du code. Il crée automatiquement une API de prédiction à faible latence et embarque les outils pour manipuler les applications courantes telles que la détection d’objets et la classification textuelle. Il inclut la capacité multi-modèle pour l’inférence des modèles de réseaux neuronaux, le versioning de modèles pour l’A/B testing, les métriques de monitoring et les terminaisons Restful pour l’intégration dans les applications.
AWS précise que TorchServer supporte différents environnements d’apprentissage machine dont, bien sûr, le sien, SageMaker. Parmi les entreprises ayant déjà recours au serveur de modèles open source, AWS cite Toyota Research Institute Advanced Development (TRI-AD) qui travaille sur les logiciels de conduite automatisée de Toyota Motor, et Matroid, fabricant de logiciels de vision par ordinateur qui détecte des objets et des événements dans les séquences vidéo. TorchServe est bâti et maintenu par AWS en collaboration avec Facebook.
Un contrôleur Kubernetes intégré avec TorchElastic
En même temps que TorchServe est annoncé aussi un contrôleur Kubernetes étroitement intégré avec TorchElastic, encore en mode expérimental. Avec le contrôleur TorchElastic Kubernetes, les développeurs peuvent créer des tâches d’entraînement distribuées PyTorch à tolérance de panne, sur un mode élastique, en utilisant leurs clusters Kubernetes, expliquent les équipes d’AWS et de Facebook sur Medium. Cela peut se faire en particulier chez AWS, sur les instances Spot d’EC2 sur Elastic Kubernetes Service (EKS).
Parallèlement, le framework PyTorch est livré dans sa version 1.5 qui fait évoluer plusieurs de ses bibliothèques et apporte le support d’une API C++ stable, à parité avec Python.