La route vers le MLOps -- Niveau 2 : Partie 3
Le niveau 2 du MLOps va encore plus loin en termes de type de systeme que nous sommes maintenant capables d'operer. Par la, nous entendons des systemes a grande echelle et a haute frequence.
Picsellia Team
·8 min read

Mettez votre MLOps en pratique
Arretez d'assembler des outils. Adoptez une plateforme CV de bout en bout avec automatisation integree.
Cet article fait partie de notre guide MLOps pour la Vision par Ordinateur — commencez par la pour une vue d'ensemble.
Ceci est le dernier article de notre serie sur le MLOps. Dans les derniers articles, nous sommes passes du MLOps niveau 0 au niveau 1. Si vous souhaitez rattraper votre retard, voici les liens des articles precedents :
Presentation du MLOps niveau 0 : /post/what-is-mlops-and-why-its-important
Presentation du MLOps niveau 1 : /post/road-to-mlops-part-2
Dans cette troisieme partie, nous allons couvrir le niveau 2 du MLOps et presenter quelques outils et techniques pour y parvenir.
Qu'est-ce que le MLOps Niveau 2 ?
Le niveau 2 va encore plus loin en termes de ce que nous pouvons faire et du type de systeme que nous sommes maintenant capables d'operer. Par la, nous entendons des systemes a grande echelle et a haute frequence. Les data scientists peuvent maintenant se concentrer sur l'analyse des donnees et devenir data-centric, ils peuvent egalement passer plus de temps a tester de nouvelles techniques, algorithmes et analyses.
Vous avez developpe des outils pour empaqueter et conteneuriser leur code, donc quand ils ont termine, l'ensemble du pipeline est automatiquement teste et deploye. Cela signifie que nous avons atteint une Integration Continue et une Livraison Continue entierement automatisees.
Les declencheurs du renouvellement du pipeline sont multiples, car nous surveillons tout de nombreuses facons a differentes etapes, chaque metrique surveillee peut declencher le pipeline. Ou bien, tout peut etre programme, c'est votre choix. Les quelques etapes manuelles qui restent obligatoires sont l'analyse des donnees et des erreurs, pour s'assurer que les donnees d'entrainement et les modeles repondent a nos standards eleves.
Maintenant, parlons de quelques outils pour vous aider a progresser dans votre chemin vers le niveau 2 (ou au moins le niveau 1) de maturite MLOps.
La route vers le MLOps
Nous allons couvrir certaines des etapes les plus importantes qui viennent a l'esprit lorsque nous traitons du MLOps.
-
La premiere etape (l'une des plus importantes) est le deploiement, car c'est celle qui devrait finalement resoudre votre cas d'usage metier ou votre projet (du moins au debut).
-
Ensuite vient la surveillance (monitoring), il n'y a pas de MLOps sans moyens adequats de surveiller les systemes sous-jacents.
-
Et enfin, toutes les differentes etapes qui caracterisent les differents niveaux de MLOps : la boucle de retour (feedback loop), l'entrainement continu (Continuous Training) et la livraison continue (Continuous Delivery) des modeles.
Les derniers points dependent des exigences de l'entreprise ou du projet, de l'organisation, des equipes, etc.
Deploiement de modeles dans le cloud
Le deploiement est l'une des etapes les plus passionnantes du projet, ou vous pouvez enfin voir votre modele en action, etudier ses performances, mais aussi prier pour qu'il ne tombe jamais en panne !
Voici un diagramme de ce que nous considerons comme le minimum de configuration et de packaging pour deployer un modele en "production". Tout ce qui est moins complet que cela ne peut pas etre considere comme pret pour le MLOps.
Road to mlops part 3 61deec127f04aea44af7918b bvn9u7jo2rev0wwsic6a17kqzzxo2ezllezja6fdxdndy5lqp7ilml64bi0yzbxmipfqaq 5tpkdxhpfyqdbhhfqrgp8jsroe4zm04klazeob11kbhkplri5xpsitw5celsdjxe
Mais nous allons quand meme examiner les differentes facons de deployer des modeles et voir comment elles se comparent entre elles.
Options de deploiement
Voici (en resume) nos options pour deployer des modeles de machine learning aujourd'hui. Si vous pouvez faire des predictions en utilisant un systeme connecte au web, il y a quelques options a votre disposition.
- La premiere, que vous avez peut-etre deja faite, est de deployer un serveur web simple pour gerer les requetes et faire les predictions.
- La deuxieme, plus avancee, est d'utiliser des moteurs complets et puissants comme Tensorflow Serving, et ensuite dans la partie Autres, nous verrons quelques services de fournisseurs cloud.
- La derniere est de deployer un modele en edge. Je ne la couvrirai pas car la logique pour integrer ces options dans un pipeline n'est pas differente des premieres.
Deploiement sur un serveur web simple
Le deploiement Flask vous montre a quel point il est facile de "deployer" un modele de machine learning sur un endpoint API, et voici un court exemple fonctionnel d'un modele deploye sur un serveur Flask.
Road to mlops part 3 61deec12719222228e7addbb aurdwfalilvwvchdv7ecko i ly0ewa05i35a88omgovuqno01ohydq wp16pgf94na65vrcpvi omcozicokhsmjzyyebjmdms0d1quwpwew 12t4 tzd ovssz35yaazmvxwg
Exemple d'endpoint Flask
Le probleme principal avec cette methode est qu'elle melange la logique du modele et des predictions avec la logique de l'API, ce qui conduit a des stack traces plus compliquees et un code moins propre. L'API peut etre incoherente. Par exemple, vous pourriez devoir changer une route, vous ne pouvez pas creer de routage dynamique vers les nouvelles versions de modeles au fur et a mesure que vous les ajoutez aux serveurs. Et enfin, c'est inefficace et dangereux de gerer vos ressources de calcul.
Que se passe-t-il si votre modele doit monter en charge mais pas le serveur web, comment pouvez-vous decoreller les besoins de performance des deux cotes ? Comment attenuez-vous les couts d'une telle solution ?
Cela ne peut monter en charge qu'avec difficulte.
Tensorflow Serving -- Avantages et inconvenients
Passons a une approche plus robuste de serving : Tensorflow Serving.
Premierement, cela resout notre probleme precedent de logique melangee. Meme si c'est plus complique qu'un serveur Flask, c'est tout de meme assez facile, et y consacrer du temps en vaut la peine. Vous pouvez maintenant faire des predictions par lots (batch), ce qui signifie paralleliser vos predictions.
Vous avez une API qui ne change pas, car elle est dediee a la gestion des modeles et aux predictions. De plus, c'est assez standardise, et vous pouvez utiliser soit l'API REST soit l'API gRPC (par exemple, chez Picsellia, nous utilisons gRPC car cela ameliore les performances et la robustesse des API -- mais cela demande une courbe d'apprentissage plus importante, alors choisissez ce qui vous convient le mieux).
Il prend en charge nativement differentes versions pour le meme modele, standardisant la facon dont les routes API sont ecrites.
Mais, est-ce que TensorFlow Serving ne peut executer que du TensorFlow ?
Il n'execute que des modeles TensorFlow et Keras pour le moment, mais des ameliorations sont en cours et comme nous le verrons plus tard, il existe des solutions de contournement. Nous pouvons recommander cet article Medium fait par Analytics India sur la conversion de modeles Pytorch vers Tensorflow Serving.
Tensorflow Serving - Execution
Juste pour vous montrer a quel point il est facile d'executer TensorFlow Serving et de deployer un modele, nous avons pris ces captures d'ecran.
Road to mlops part 3 61deec12ce937b30decfb48c jqlbaj mkq4e ujup0zj2taj09 yj4hvdxihbpukypnstncff1slxkgnczfij4utpw0lz7cmiy2vogbo6zalwiyhsvrte fgfvhkhtocb8qmmmy8snwrajmzenotrtvmcv43bww
Exemple Docker TFX
La premiere vous montre la commande minimale pour lancer le moteur de serving et l'autre pour voir a quoi cela ressemble lorsqu'il est correctement lance. Magnifique, n'est-ce pas ?
Tensorflow Serving - Exemple gRPC
Ici, nous avons ecrit un exemple minimal sur la facon d'interroger le serveur Tensorflow Serving, en utilisant le protocole gRPC.
Road to mlops part 3 61deec12e1d4d53c211cad4c itrvem9l5dzmrpaw8tt0h4caekx4bw 5bossbctxiwogh1lwi16etl7xxvl 7dhenbf6icntcei0ktd7ux jvq3vjsd7khjcugoah jrdyas9ehotzo1ctu8ekrcwmzqj43b3zs
Exemple de requete gRPC en Python 3+
On peut dire que c'est moins intuitif que l'exemple Flask, mais ce n'est meme pas si long et je peux vous garantir que cela vous donnera beaucoup plus de confiance dans votre moteur de serving.
Autres options
-
Graphpipe resout le probleme des modeles multi-frameworks. Vous pouvez deployer des modeles Tensorflow, et les modeles MXnet et Pytorch peuvent etre convertis au format ONNX, qui peut ensuite etre deploye sur le meme serving. Il est egalement fourni avec de nombreux clients pour differents langages de programmation, de sorte qu'il peut etre inclus dans pratiquement n'importe quelle stack.
-
Kubeflow est une solution lourde, basee sur Kubernetes, qui vous permet d'orchestrer des experiences, du serving et des pipelines de support a grande echelle sur n'importe quelle architecture de maniere efficace. Meme si elle est tres puissante, il peut etre complique de prendre en main la solution et de la maintenir correctement.
-
Simple Tensorflow serving prend en charge presque tous les frameworks existants, y compris Pytorch et MXnet, et semble encore assez facile a implementer.
-
Enfin, nous avons les solutions de deploiement cloud comme les plateformes des fournisseurs cloud (AWS, GCP, Azure...) et des solutions comme la notre ; Picsellia. L'avantage de ces solutions est que tout est gere, maintenu et surveille pour vous, fonctionnant comme des outils puissants pour vos projets de ML. Mais elles doivent etre compatibles avec vos workflows existants, vos politiques, et elles ont un cout.
Si vous souhaitez en savoir plus sur notre solution MLOps, Picsellia, n'hesitez pas a reserver un rapide appel d'introduction et nous vous mettrons en route en un rien de temps !
Suggestions Picsellia
Automatisez vos pipelines ML
Configurez l'entrainement et le deploiement continus avec des declencheurs automatiques, des deploiements shadow et des boucles de feedback.
Explorer les pipelines automatisesOrganisez et versionnez vos datasets
Versionnez, decoupez et gerez vos datasets avec une tracabilite complete — des images brutes aux splits prets pour la production.
Explorer la gestion de datasetsRestez informe
Recevez les derniers articles sur la vision par ordinateur, le MLOps et l'IA directement dans votre boite mail.
Articles associes

MLOps for Computer Vision: The Complete Guide
What CVOps actually means, why classical MLOps tooling breaks down on image and video data, and how the six stages of a computer vision pipeline fit together in production.
Le coût du changement d'outils dans les pipelines de vision par ordinateur
La surcharge liée aux outils n'est pas additive, elle se cumule. Découvrez comment le changement de contexte entre outils ML coûte aux équipes CV des centaines d'heures d'ingénierie par an.
Top 5 des outils de suivi d'experiences pour la vision par ordinateur
L'IA est generalement obtenue par des processus iteratifs et experimentaux tels que la modification du modele, l'execution de multiples experiences et l'examen des resultats.