Explorer une architecture MLOps

Effectué

En tant que scientifique des données, vous souhaitez entraîner le meilleur modèle Machine Learning. Pour implémenter le modèle, vous souhaitez le déployer sur un point de terminaison et l’intégrer à une application.

Au fil du temps, vous souhaiterez peut-être réentraîner le modèle. Par exemple, vous pouvez réentraîner le modèle lorsque vous avez plus de données d’entraînement.

En général, une fois que vous avez entraîné un modèle Machine Learning, vous souhaitez préparer le modèle à l’échelle de l’entreprise. Pour préparer le modèle et l’opérationnaliser, vous souhaitez :

  • Transformez l’entraînement du modèle en un pipeline robuste et reproductible.
  • Testez le code et le modèle dans un environnement de développement .
  • Déployez le modèle dans un environnement de production .
  • Automatisez le processus de bout en bout.

Configurer des environnements pour le développement et la production

Dans MLOps, comme DevOps, un environnement fait référence à une collection de ressources. Ces ressources sont utilisées pour déployer une application ou avec des projets de Machine Learning pour déployer un modèle.

Remarque

Dans ce module, nous faisons référence à l’interprétation DevOps des environnements. Notez qu’Azure Machine Learning utilise également le terme « environnements » pour décrire une collection de packages Python nécessaires à l’exécution d’un script. Ces deux concepts d’environnements sont indépendants l’un de l’autre.

Le nombre d’environnements que vous utilisez dépend de votre organisation. En règle générale, il existe au moins deux environnements : développement ou développement et production ou prod. De plus, vous pouvez ajouter des environnements entre un environnement intermédiaire ou préproduction (pré-prod).

Une approche classique consiste à :

  • Expérimenter avec un modèle de formation dans l’environnement de développement.
  • Déplacer le meilleur modèle vers l’environnement intermédiaire ou pré-prod pour déployer et tester le modèle.
  • Enfin, relâchez le modèle dans l’environnement de production pour déployer le modèle afin que les utilisateurs finaux puissent l’utiliser.

Organiser des environnements Azure Machine Learning

Lorsque vous implémentez MLOps et que vous utilisez des modèles Machine Learning à grande échelle, il est recommandé d’utiliser des environnements séparés pour différentes phases.

Imaginez que votre équipe utilise un environnement de développement, de préproduction et de prod. Tous les membres de votre équipe ne doivent pas avoir accès à tous les environnements. Les scientifiques des données peuvent uniquement travailler dans l’environnement de développement avec des données hors production, tandis que les ingénieurs Machine Learning travaillent sur le déploiement du modèle dans les environnements de pré-production et de production avec des données de production.

L’utilisation d’environnements distincts facilite le contrôle de l’accès aux ressources. Chaque environnement peut ensuite être associé à un espace de travail Azure Machine Learning distinct.

Diagramme de plusieurs espaces de travail Azure Machine Learning pour avoir plusieurs environnements.

Dans Azure, vous utilisez le contrôle d’accès en fonction du rôle (RBAC) pour donner aux collègues le niveau d’accès approprié au sous-ensemble de ressources avec lesquelles ils doivent travailler.

Vous pouvez également utiliser un seul espace de travail Azure Machine Learning. Lorsque vous utilisez un espace de travail pour le développement et la production, vous avez une empreinte Azure plus petite et moins de charge de gestion. Toutefois, RBAC s’applique à la fois aux environnements dev et prod, ce qui peut signifier que vous donnez aux personnes trop peu ou trop d’accès aux ressources.

Concevoir une architecture MLOps

Faire passer un modèle en production signifie que vous devez mettre à l’échelle votre solution et collaborer avec d’autres équipes. Avec d’autres scientifiques des données, ingénieurs données et une équipe d’infrastructure, vous pouvez décider d’utiliser l’approche suivante :

  • Stockez toutes les données dans un stockage Blob Azure, géré par l’ingénieur données.
  • L’équipe d’infrastructure crée les ressources Azure nécessaires, comme l’espace de travail Azure Machine Learning.
  • Les scientifiques des données se concentrent sur ce qu’ils font le mieux : développer et entraîner le modèle (boucle interne).
  • Les ingénieurs Machine Learning déploient les modèles entraînés (boucle externe).

Par conséquent, votre architecture MLOps comprend les éléments suivants :

Diagramme d’une architecture présentant un projet MLOps classique.

  1. Configuration : créez toutes les ressources Azure nécessaires pour la solution.
  2. Développement de modèle (boucle interne) : explorez et traitez les données pour entraîner et évaluer le modèle.
  3. Intégration continue : Empaqueter et inscrire le modèle.
  4. Déploiement de modèle (boucle externe) : déployez le modèle.
  5. Déploiement continu : tester le modèle et le promouvoir dans un environnement de production.
  6. Surveillance : surveillez les performances du modèle et du point de terminaison.

Lorsque vous travaillez avec des équipes plus importantes, vous n’êtes pas censé être responsable de toutes les parties de l’architecture MLOps en tant que scientifique des données. Pour préparer votre modèle pour MLOps, vous devez toutefois réfléchir à la conception pour la surveillance et la réentraînation.