Que signifie le CI/CD pour le machine learning ?

Intégration continue et déploiement continu

Topics MLOps CI/CD for Machine Learning

Définition

Un pipeline CI/CD aide les équipes de ML à réaliser des mises à jour rapides et fiables des modèles en production, ce qui leur permet de construire plus rapidement des modèles robustes et exempts de bogues.

Aperçu

Les méthodologies DevOps s’imposent de plus en plus dans le domaine du MLOps, au fur et à mesure que ce dernier gagne en maturité. L’un des concepts clés du DevOps qui a favorisé cette évolution et qui contribue aujourd’hui à définir le domaine du MLOps est l’intégration continue et la livraison/déploiement continu (continuous integration et continuous delivery ou CI/CD).

En tant que pratique au cœur de DevOps, le CI/CD englobe des outils et des méthodes pour la livraison continue et fiable d’applications logicielles en rationalisant la construction, les tests et le déploiement d’applications en production.

  • Intégration continue (Continuous integration, ou CI) : La pratique consistant à automatiser l’intégration des changements de code provenant de plusieurs contributeurs dans un logiciel unique ou un projet de ML.
  • Livraison continue (Continuous delivery, ou CD) : La pratique consistant à déployer chaque build dans un environnement similaire à la production pour l’intégration et les tests avant le déploiement final.
  • Déploiement continu (Continuous deployment, ou CD) : Il s’agit d’une étape supplémentaire à la livraison continue qui automatise la configuration et le déploiement d’une application en production.

Pour des mises à jour rapides et fiables des modèles en production, les équipes de ML ont besoin d’un système CI/CD puissant et automatisé. Cela permet aux équipes chargées des données d’explorer rapidement de nouvelles idées concernant l’ingénierie des fonctionnalités et les architectures de modèles, et de les mettre en œuvre plus rapidement. Le CI/CD permet également aux équipes d’assembler, tester et déployer de nouveaux composants de pipeline dans leur environnement cible.

Un pipeline CI/CD aide les équipes de ML à atteindre cet objectif, en leur permettant de construire plus rapidement des modèles robustes et exempts de bogues. Il s’agit d’une solution solide et durable qui, à bien des égards, est essentielle à la mise à l’échelle efficace des modèles. Par essence, un pipeline CI/CD aide les équipes de ML à construire de meilleurs modèles plus rapidement. Il s’agit d’une solution solide et durable qui, à bien des égards, est cruciale pour la mise à l’échelle efficace des modèles.

Pourquoi le CI/CD est important pour le machine learning

Le développement de modèles d’apprentissage automatique peut être un processus lent, avec de nombreuses étapes manuelles qui prennent du temps et laissent une grande place à l’erreur humaine. C’est un problème, car en apprentissage automatique, il est crucial d’être précis et efficace lors du développement des modèles pour éviter des problèmes tels que le décalage entre l’entraînement et l’exploitation ainsi que les biais des modèles.

C’est pour ces raisons que le CI/CD, et par extension DevOps et MLOps en général, est si important. Un bon pipeline CI/CD permet aux équipes de ML de rationaliser les tests et le déploiement grâce à l’automatisation, ce qui leur permet de gagner beaucoup de temps tout en livrant un produit de bien meilleure qualité.

Definition : MLOps est une fonction essentielle de l’ingénierie du machine learning qui vise à rationaliser le processus de déploiement des modèles d’apprentissage automatique en production. Il s’agit d’un mouvement collaboratif qui implique tous les acteurs de la chaîne de valeur de l’apprentissage automatique pour atteindre cet objectif. Pour plus d’informations : Le guide ultime des outils MLOps en 2024.

Lien externe.

Ouvre le lien dans une nouvelle fenêtre.

Éléments clés d’un pipeline CI/CD

Un pipeline CI/CD est un système automatisé qui, comme nous l’avons brièvement évoqué, rationalise le développement et le déploiement des modèles. Les pipelines CI/CD sont utilisés pour construire le code, exécuter les tests et déployer de nouvelles versions d’un modèle lorsque des changements sont apportés. La phase de test dans le processus CI/CD correspond à l’intégration continue (CI), tandis que la phase de déploiement correspond à la livraison ou au déploiement continu (CD), puisque le pipeline déploie ou livre automatiquement le modèle en production de façon continue.

Les pipelines CI/CD automatisés éliminent les erreurs, fournissent aux équipes de ML des boucles de rétroaction normalisées et permettent des mises à jour de modèles plus rapides. L’ensemble de ces éléments permet d’apporter des améliorations majeures aux cycles de développement de modèles manuels traditionnels. Un pipeline CI/CD typique se compose de quatre étapes clés : source, build, test et déploiement.

Examinons chacun d’entre eux tour à tour.

1. Phase source

Le pipeline CI/CD typique de MLOps commence par une source, telle qu’un dépôt de code de modèle. Lorsque des modifications sont apportées au code d’un modèle, cela déclenche le système CI/CD et lui indique de lancer le processus de pipeline. Il est également possible de configurer les pipelines de manière à ce qu’ils soient automatiquement déclenchés par des workflows planifiés, sur commande ou par d’autres pipelines attachés au pipeline CI/CD.

2. Phase build

Pour construire un modèle qui peut potentiellement être déployé et utilisé par les utilisateurs finaux, le code doit être combiné avec ses dépendances. Cette étape peut varier en fonction du langage dans lequel le programme a été écrit puisque, par exemple, les programmes Python n’ont pas besoin d’être compilés alors que les programmes Java ou Go doivent l’être. Dans le cas des MLOps, l’entraînement du modèle fait également souvent partie de la phase de build.

3. Phase test

La phase de test est sans doute la plus importante, car c’est à ce stade que les tests automatisés sont exécutés pour valider l’exactitude du code et les performances du modèle. Les tests peuvent durer de quelques secondes à quelques heures, en fonction de la taille ou de la complexité du modèle. Pour les projets plus importants, les tests ont tendance à être réalisés en plusieurs étapes.

4. Phase déploiement

Le déploiement est l’étape finale. Un modèle ne peut être prêt à être déployé que lorsqu’il existe une instance exécutable du code qui a passé avec succès l’étape des tests. La plupart des projets disposent de plusieurs environnements de déploiement (par ex., staging) ainsi qu’un environnement de production. Le premier est utilisé pour s’assurer que le modèle est déployé correctement, tandis que le second est l’environnement final de l’utilisateur où le modèle « live » existe.

Le suivi est une autre étape importante qui vient après le déploiement. Au cours de la surveillance, des données sont collectées sur les performances du modèle en fonction des données réelles, et le résultat de cette étape est un déclencheur pour l’exécution du pipeline ou pour l’exécution d’un nouveau cycle d’expérimentation.

Défis en matière de CI/CD pour le machine learning

Bien qu’un système d’apprentissage automatique soit par essence un système logiciel, le CI/CD pour le machine learning présente une série de défis majeurs par rapport aux logiciels « traditionnels ».

Tout d’abord, étant donné que le ML est de nature expérimentale, le processus de développement du modèle implique la réalisation d’expériences de ML afin de déterminer des éléments tels que les techniques de modélisation et les configurations de paramètres qui fonctionnent le mieux pour un problème défini. Le défi pour les équipes est de suivre la reproductibilité de ces expériences afin de s’assurer qu’elles sont en mesure de réutiliser le code et de reproduire les performances du modèle sur le même ensemble de données.

La phase de test présente également davantage de domaines potentiels de complexité lorsque c’est un système de ML qui est soumis aux tests plutôt qu’un système logiciel ordinaire. En effet, le développement du ML implique des données et des modèles en plus du code source, ce qui signifie que les équipes doivent tester et valider à la fois les données et les modèles pour s’assurer que le système ML est suffisamment performant.

Enfin, le déploiement d’un système d’apprentissage automatique ne consiste pas seulement à déployer un modèle qui a été entraîné hors ligne ; il nécessite également le déploiement d’un pipeline en plusieurs étapes qui réapprend et déploie le service de prédiction du modèle d’apprentissage automatique en production. Ce pipeline distinct oblige les équipes à automatiser les étapes d’apprentissage et de validation des nouveaux modèles avant leur déploiement, ce qui ajoute une nouvelle couche de complexité dans le cadre de la livraison continue.

Avantages d’un pipeline CI/CD robuste

Les principaux avantages d’un pipeline CI/CD robuste sont les suivants :

Construire, tester et déployer rapidement

Le CI/CD permet de déployer directement chaque mise à jour mineure plutôt que d’attendre que plusieurs changements s’empilent avant d’être déployés. Les déploiements plus importants étant plus risqués, le CI/CD réduit également le facteur de risque de chaque déploiement.

S’adapter à la demande en temps réel

Les pipelines traditionnels ont une capacité limitée, alors que les pipelines CI/CD sans serveur augmentent ou diminuent leur capacité en fonction des demandes du projet. Cela signifie que les équipes ne paient que pour ce qu’elles utilisent, ce qui leur permet d’utiliser une faible capacité pour de petits projets tout en ayant la flexibilité d’augmenter la capacité rapidement lorsque nécessaire.

Construire de nouveaux pipelines plus rapidement

Les pipelines CI/CD dotés d’architectures microservices permettent de recycler des morceaux de pipelines et de les assembler rapidement dans de nouveaux pipelines, plutôt que de devoir réécrire le même morceau de code pour chaque nouveau pipeline.

Produire des outputs propres et identiques

Lors du développement d’un modèle ML, les défaillances intermittentes peuvent être à l’origine d’une grande frustration. Un pipeline CI/CD fiable permet d’éliminer ce problème en produisant toujours des outputs propres et identiques pour chaque input.

Automatiser le processus de livraison

Le CI/CD permet aux équipes de ML d’exécuter et de visualiser l’ensemble du processus de développement de modèles de bout en bout. Cela réduit considérablement les cas d’erreur humaine, en particulier dans les tâches répétitives.

Prêt à vous lancer dans le CI/CD pour le machine learning ?

La mise en œuvre du machine learning dans un environnement de production va bien au-delà du simple déploiement d’un modèle de prédiction. La mise en place d’un pipeline d’apprentissage automatique CI/CD permet aux équipes de ML de construire, tester et déployer automatiquement de nouvelles implémentations de pipeline de ML et d’itérer rapidement en fonction de l’évolution des données et des environnements commerciaux.

Vous pouvez commencer par implémenter progressivement les bonnes pratiques CI/CD dans la formation de vos modèles ML et leurs pipelines, dans le cadre de vos processus MLOps, afin de tirer parti des avantages de l’automatisation du développement et de l’opérationnalisation de vos systèmes ML ; et cela, avec JFrog ML.

JFrog ML est une plateforme de machine learning tout-en-un, conçue pour aider les équipes à transformer leurs modèles en produits technologiques aboutis. Notre plateforme basée sur le cloud élimine la friction du développement et du déploiement ML tout en permettant des itérations rapides, une mise à l’échelle illimitée et une infrastructure personnalisable.

Poursuivez votre exploration de l’IA et du ML en utilisant les liens ci-dessous, ou voyez la plateforme en action en planifiant soit une démonstration privée, une démonstration de groupe ou en commençant un essai gratuit à votre convenance.

En savoir plus sur les MLOps

Gestion des modèles ML avec JFrog

Gérez les modèles ML dans le cadre de votre chaîne d’approvisionnement logicielle sécurisée

Explorez JFrog ML

JFrog Artifactory

Une solution unique pour héberger et gérer tous vos artefacts, fichiers binaires, paquets, fichiers, conteneurs et composants.

Explorez JFrog Artifactory

JFrog Xray

Une solution universelle de scan de la composition des logiciels (SCA) qui offre un moyen efficace d’identifier les vulnérabilités de manière proactive.

En savoir plus

Release Fast Or Die