MLOps

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.

PT

Picsellia Team

·8 min read

Road to MLOps — Level 2: Part 3

Mettez votre MLOps en pratique

Arretez d'assembler des outils. Adoptez une plateforme CV de bout en bout avec automatisation integree.

Sans carte bancaireEssai gratuit de 14 jours

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 5tpkdxhpfyqdbhhfqrgp8jsroe4zm04klazeob11kbhkplri5xpsitw5celsdjxeRoad 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 ovssz35yaazmvxwgRoad 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 fgfvhkhtocb8qmmmy8snwrajmzenotrtvmcv43bwwRoad 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 jrdyas9ehotzo1ctu8ekrcwmzqj43b3zsRoad 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 !

clouddeploymentmlopsmodel-trainingmonitoringpipelines

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 automatises

Organisez 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 datasets

Restez informe

Recevez les derniers articles sur la vision par ordinateur, le MLOps et l'IA directement dans votre boite mail.