Plusieurs secteurs mondiaux commencent à investir davantage dans l'apprentissage automatique (ML).
Les modèles ML peuvent être initialement lancés et exploités par des équipes de spécialistes, mais l'un des plus grands obstacles est le transfert des connaissances acquises au modèle suivant afin que les processus puissent être étendus.
Pour améliorer et standardiser les processus impliqués dans la gestion du cycle de vie des modèles, les techniques MLOps sont de plus en plus utilisées par les équipes qui créent des modèles d'apprentissage automatique.
Continuez à lire pour en savoir plus sur certains des meilleurs outils et plates-formes MLOps disponibles aujourd'hui et comment ils peuvent faciliter l'apprentissage automatique du point de vue de l'outil, du développeur et de la procédure.
Qu'est-ce que MLOps?
Une technique de création de politiques, de normes et de meilleures pratiques pour les modèles d'apprentissage automatique est connue sous le nom d'"opérations d'apprentissage automatique" ou "MLOps".
MLOps vise à garantir que l'ensemble du cycle de vie du développement ML - de la conception au déploiement - est méticuleusement documenté et géré pour les meilleurs résultats plutôt que d'y investir beaucoup de temps et de ressources sans stratégie.
L'objectif de MLOps est de codifier les meilleures pratiques de manière à rendre le développement de l'apprentissage automatique plus évolutif pour les opérateurs et les développeurs ML, ainsi que d'améliorer la qualité et la sécurité des modèles ML.
Certains appellent MLOps "DevOps pour l'apprentissage automatique" car il applique avec succès les principes DevOps à un domaine plus spécialisé du développement technologique.
C'est une façon utile de penser à MLOps car, comme DevOps, il met l'accent sur le partage des connaissances, la collaboration et les meilleures pratiques entre les équipes et les outils.
MLOps fournit aux développeurs, aux scientifiques des données et aux équipes d'exploitation un cadre pour coopérer et, par conséquent, produire les modèles ML les plus puissants.
Pourquoi utiliser les outils MLOps ?
Les outils MLOps peuvent effectuer un large éventail de tâches pour une équipe ML, cependant, ils sont souvent divisés en deux groupes : l'administration de la plate-forme et la gestion des composants individuels.
Alors que certains produits MLOps se concentrent uniquement sur une seule fonction principale, telle que la gestion des données ou des métadonnées, d'autres outils adoptent une stratégie plus globale et fournissent une plate-forme MLOps pour contrôler plusieurs aspects du cycle de vie ML.
Recherchez des solutions MLOps qui aident votre équipe à gérer ces domaines de développement ML, que vous recherchiez un spécialiste ou un outil plus large :
- Traitement des données
- Conception et modélisation
- Gestion de projets et de poste de travail
- Déploiement et maintenance continue du modèle ML
- La gestion du cycle de vie du début à la fin, qui est généralement offerte par les plates-formes MLOps à service complet.
Outils MLOps
1. MLFlow
Le cycle de vie de l'apprentissage automatique est contrôlé par la plate-forme open source MLflow et comprend un enregistrement, un déploiement et une expérimentation du modèle central.
MLflow peut être utilisé par une équipe de toute taille, à la fois individuellement et collectivement. Les bibliothèques n'ont aucune incidence sur l'outil.
N'importe quel langage de programmation et bibliothèque d'apprentissage automatique peut l'utiliser.
Pour simplifier la formation, le déploiement et la gestion des applications d'apprentissage automatique, MLFlow interagit avec un certain nombre de cadres d'apprentissage automatique, notamment TensorFlow et Pytorch.
De plus, MLflow fournit des API faciles à utiliser qui peuvent être incluses dans n'importe quel programme ou bibliothèque d'apprentissage automatique existant.
MLflow possède quatre fonctionnalités clés qui facilitent le suivi et la planification des expériences :
- MLflow Tracking - une API et une interface utilisateur pour enregistrer les paramètres, les versions, les métriques et les artefacts du code d'apprentissage automatique, ainsi que pour afficher et contraster ultérieurement les résultats
- Projets MLflow - empaqueter le code d'apprentissage automatique dans un format réutilisable et reproductible pour le transfert en production ou le partage avec d'autres scientifiques des données
- Modèles MLflow - maintenance et déploiement de modèles sur une gamme de systèmes de service et d'inférence de modèles à partir de diverses bibliothèques ML
- MLflow Model Registry - un magasin de modèles central qui permet la gestion coopérative de toute la durée de vie d'un modèle MLflow, y compris la gestion des versions du modèle, les transitions d'étape et les annotations.
2. Kubeflow
La boîte à outils ML pour Kubernetes s'appelle Kubeflow. Emballage et gestion des conteneurs Docker, aide à la maintenance des systèmes d'apprentissage automatique.
En simplifiant l'orchestration des exécutions et les déploiements de workflows d'apprentissage automatique, il favorise l'évolutivité des modèles d'apprentissage automatique.
Il s'agit d'un projet open source qui comprend un groupe soigneusement choisi d'outils et de cadres complémentaires adaptés aux différents besoins de ML.
Les longues tâches de formation ML, l'expérimentation manuelle, la répétabilité et les défis DevOps peuvent être gérés avec Kubeflow Pipelines.
Pour plusieurs étapes de l'apprentissage automatique, y compris la formation, le développement du pipeline et la maintenance de Cahiers Jupyter, Kubeflow propose des services et une intégration spécialisés.
Il simplifie la gestion et le suivi de la durée de vie de vos charges de travail d'IA, ainsi que le déploiement de modèles d'apprentissage automatique (ML) et de pipelines de données sur les clusters Kubernetes.
CA offre:
- Blocs-notes pour utiliser le SDK pour interagir avec le système
- une interface utilisateur (UI) pour contrôler et surveiller les exécutions, les tâches et les expériences
- Pour concevoir rapidement des solutions de bout en bout sans avoir à reconstruire à chaque fois, et réutiliser les composants et les pipelines.
- En tant que composant clé de Kubeflow ou en tant qu'installation autonome, Kubeflow Pipelines est proposé.
3. Contrôle de la version des données
Une solution de contrôle de version open source pour les projets d'apprentissage automatique s'appelle DVC, ou Data Version Control.
Quelle que soit la langue que vous choisissez, il s'agit d'un outil expérimental qui facilite la définition du pipeline.
DVC utilise le code, la gestion des versions des données et la reproductibilité pour vous aider à gagner du temps lorsque vous découvrez un problème avec une version antérieure de votre modèle ML.
De plus, vous pouvez utiliser des pipelines DVC pour former votre modèle et le distribuer aux membres de votre équipe. L'organisation et la gestion des versions des données volumineuses peuvent être gérées par DVC, et les données peuvent être stockées de manière facilement accessible.
Bien qu'il inclue certaines fonctionnalités (limitées) de suivi des expériences, il se concentre principalement sur la gestion et la gestion des versions des données et des pipelines.
CA offre:
- Il est indépendant du stockage, il est donc possible d'utiliser une variété de types de stockage.
- Il fournit également des statistiques de suivi.
- un moyen prédéfini de joindre les étapes ML dans un DAG et d'exécuter l'ensemble du pipeline du début à la fin
- L'intégralité du développement de chaque modèle ML peut être suivie à l'aide de l'intégralité de son code et de la provenance des données.
- Reproductibilité en préservant fidèlement la configuration initiale, les données d'entrée et le code de programme d'une expérience.
4. Pachyderme
Pachyderm est un programme de contrôle de version pour l'apprentissage automatique et la science des données, similaire à DVC.
De plus, parce qu'il a été créé à l'aide de Docker et Kubernetes, il peut exécuter et déployer des applications d'apprentissage automatique sur n'importe quelle plate-forme cloud.
Pachyderm garantit que chaque élément de données consommé dans un modèle d'apprentissage automatique peut être suivi et versionné.
Il est utilisé pour créer, distribuer, gérer et surveiller les modèles d'apprentissage automatique. Un registre de modèles, un système de gestion de modèles et une boîte à outils CLI sont tous inclus.
Les développeurs peuvent automatiser et étendre leur cycle de vie d'apprentissage automatique à l'aide de la base de données de Pachyderm, qui garantit également la répétabilité.
Il prend en charge des normes strictes de gouvernance des données, réduit les coûts de traitement et de stockage des données et aide les entreprises à commercialiser plus rapidement leurs initiatives de science des données.
5. Polyaxone
Grâce à la plate-forme Polyaxon, les projets d'apprentissage automatique et les applications d'apprentissage en profondeur peuvent être répliqués et gérés tout au long de leur cycle de vie.
Polyaxon est capable d'héberger et d'administrer l'outil, et il peut être placé dans n'importe quel centre de données ou fournisseur de cloud. Tels que Torch, Tensorflow et MXNet, qui prennent en charge tous les frameworks d'apprentissage en profondeur les plus populaires.
En ce qui concerne l'orchestration, Polyaxon vous permet de tirer le meilleur parti de votre cluster en planifiant des tâches et des tests via leur CLI, tableau de bord, SDK ou API REST.
CA offre:
- Vous pouvez utiliser la version open-source dès maintenant, mais elle inclut également des choix pour l'entreprise.
- Bien qu'il couvre le cycle de vie complet, y compris l'orchestration des exécutions, il est capable de bien plus.
- Avec des documents de référence techniques, des directives de démarrage, du matériel d'apprentissage, des manuels, des didacticiels, des journaux des modifications, etc., il s'agit d'une plate-forme très bien documentée.
- Avec le tableau de bord des informations sur les expériences, il est possible de surveiller, de suivre et d'évaluer chaque expérience d'optimisation.
6. Comet
Comet est une plate-forme de méta-apprentissage automatique qui suit, met en contraste, explique et améliore les expériences et les modèles.
Toutes vos expériences peuvent être vues et comparées en un seul endroit.
Il fonctionne pour n'importe quelle tâche d'apprentissage automatique, partout où votre code est exécuté et avec n'importe quelle bibliothèque d'apprentissage automatique.
Comet convient aux groupes, aux particuliers, aux institutions universitaires, aux entreprises et à toute autre personne souhaitant visualiser rapidement des expériences, rationaliser le travail et mener des expériences.
Les scientifiques et les équipes de données peuvent suivre, clarifier, améliorer et comparer les expériences et les modèles à l'aide de la plateforme d'apprentissage méta-machine auto-hébergée et basée sur le cloud Comet.
CA offre:
- De nombreuses fonctionnalités permettent aux membres de l'équipe de partager des tâches.
- Il a plusieurs intégrations qui le rendent simple à relier à d'autres technologies
- Fonctionne bien avec les bibliothèques ML actuelles
- S'occupe de la gestion des utilisateurs
- La comparaison des expériences est activée, y compris une comparaison du code, des hyperparamètres, des métriques, des prédictions, des dépendances et des métriques système.
- Fournit des modules distincts pour la vision, l'audio, le texte et les données tabulaires qui vous permettent de visualiser des échantillons.
7. Opter
Optuna est un système d'optimisation autonome d'hyperparamètres qui peut être appliqué à la fois à l'apprentissage automatique et à l'apprentissage en profondeur, ainsi qu'à d'autres domaines.
Il contient une variété d'algorithmes de pointe parmi lesquels vous pouvez sélectionner (ou lier), rend très simple la distribution de la formation sur de nombreux ordinateurs et offre une visualisation attrayante des résultats.
Les bibliothèques d'apprentissage automatique populaires telles que PyTorch, TensorFlow, Keras, FastAI, sci-kit-learn, LightGBM et XGBoost y sont toutes intégrées.
Il fournit des algorithmes de pointe qui permettent aux clients d'obtenir des résultats plus rapidement en réduisant rapidement les échantillons qui ne semblent pas prometteurs.
À l'aide d'algorithmes basés sur Python, il recherche automatiquement les hyperparamètres idéaux. Optuna encourage les recherches d'hyperparamètres parallélisés sur de nombreux threads sans modifier le code d'origine.
CA offre:
- Il prend en charge la formation distribuée sur un cluster ainsi que sur un seul ordinateur (multi-processus) (multi-nœud)
- Il prend en charge plusieurs techniques de découpage pour accélérer la convergence (et utiliser moins de calcul)
- Il dispose d'une variété de visualisations puissantes, telles que le tracé de tranche, le tracé de contour et les coordonnées parallèles.
8. Kédro
Kedro est un framework Python gratuit pour écrire du code qui peut être mis à jour et maintenu pour les projets de science des données.
Il apporte des idées des meilleures pratiques en génie logiciel au code d'apprentissage automatique. Python est la base de cet outil d'orchestration de flux de travail.
Pour rendre vos processus ML plus simples et plus précis, vous pouvez développer des workflows reproductibles, maintenables et modulaires.
Kedro intègre des principes d'ingénierie logicielle tels que la modularité, la séparation des responsabilités et la gestion des versions dans un environnement d'apprentissage automatique.
Sur la base de Cookiecutter Data Science, il fournit un cadre de projet commun et adaptable.
Un certain nombre de connecteurs de données simples utilisés pour stocker et charger des données sur plusieurs systèmes de fichiers et formats de fichiers sont gérés par le catalogue de données. Cela rend les projets d'apprentissage automatique plus efficaces et simplifie la création d'un pipeline de données.
CA offre:
- Kedro permet le déploiement de machines dispersées ou solitaires.
- Vous pouvez automatiser les dépendances entre le code Python et la visualisation du flux de travail à l'aide de l'abstraction de pipeline.
- Grâce à l'utilisation d'un code modulaire et réutilisable, cette technologie facilite la collaboration d'équipe à différents niveaux et améliore la productivité dans l'environnement de codage.
- L'objectif principal est de surmonter les inconvénients des blocs-notes Jupyter, des scripts uniques et du code de colle en écrivant une programmation de science des données maintenable.
9. BentoML
La création de points de terminaison d'API d'apprentissage automatique est simplifiée avec BentoML.
Il fournit une infrastructure typique mais condensée pour mettre en production des modèles d'apprentissage automatique appris.
Il vous permet de conditionner des modèles appris pour les utiliser dans un environnement de production, en les interprétant à l'aide de n'importe quel framework ML. Le service par lots hors ligne et le service d'API en ligne sont pris en charge.
Un serveur de modèles hautes performances et un flux de travail flexible sont les caractéristiques de BentoML.
De plus, le serveur offre un micro-batch adaptatif. Une approche unifiée pour l'organisation des modèles et le suivi des procédures de déploiement est fournie par le tableau de bord de l'interface utilisateur.
Il n'y aura pas d'indisponibilité du serveur car le mécanisme de fonctionnement est modulaire et la configuration est réutilisable. Il s'agit d'une plate-forme flexible pour fournir, organiser et déployer des modèles ML.
CA offre:
- Il a une conception modulaire qui est adaptable.
- Il permet un déploiement sur plusieurs plates-formes.
- Il ne peut pas gérer automatiquement la mise à l'échelle horizontale.
- Il permet un format de modèle unique, la gestion des modèles, l'empaquetage des modèles et la diffusion de modèles hautes performances.
10. Seldon
Les scientifiques des données peuvent créer, déployer et gérer des modèles et des expériences d'apprentissage automatique à grande échelle sur Kubernetes à l'aide du framework open source Seldon Core.
TensorFlow, sci-kit-learn, Spark, R, Java et H2O ne sont que quelques-uns des kits d'outils pris en charge par celui-ci.
Il s'interface également avec Kubeflow et OpenShift de RedHat. Le noyau Seldon transforme les modèles d'apprentissage automatique (modèles ML) ou les wrappers de langage (langages comme Python, Java, etc.) en microservices de production REST/GRPC.
L'un des meilleurs outils MLOps pour améliorer les processus d'apprentissage automatique est celui-ci.
Il est simple de conteneuriser les modèles ML et de tester la convivialité et la sécurité à l'aide de Seldon Core.
CA offre:
- Le déploiement du modèle peut être simplifié grâce à plusieurs alternatives, telles que le déploiement Canary.
- Pour comprendre pourquoi des prédictions spécifiques ont été faites, utilisez des explicateurs de modèles.
- Lorsque des problèmes surviennent, gardez un œil sur les modèles de production à l'aide du système d'alerte.
Conclusion
MLOps peut aider à améliorer les opérations d'apprentissage automatique. Les MLOps peuvent accélérer le déploiement, simplifier la collecte et le débogage des données et améliorer la collaboration entre les ingénieurs et les data scientists.
Afin que vous puissiez choisir l'outil MLOps qui correspond le mieux à vos besoins, cet article a examiné 10 solutions MLOps populaires, dont la plupart sont open-source.
Soyez sympa! Laissez un commentaire