Qu’est-ce qu’un composant Azure Machine Learning ?

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)

Un composant Azure Machine Learning est un élément de code autonome qui effectue une étape dans un pipeline Machine Learning. Un composant est similaire à une fonction : il a un nom, des entrées, des sorties et un corps. Les composants sont les blocs de construction des pipelines Azure Machine Learning.

Un composant se compose de trois parties :

  • Métadonnées : nom, nom d’affichage, version, type, etc.
  • Interface : spécifications d’entrée/sortie (nom, type, description, valeur par défaut, etc.).
  • Commande, code et environnement : la commande, le code et l’environnement nécessaires pour exécuter le composant.

Diagram of what a component looks like and how it looks in a pipeline. In addition to screenshots of a component in the CLI, SDK, and portal UI.

Pourquoi utiliser un composant ?

Il est recommandé de créer un pipeline Machine Learning pour fractionner une tâche Machine Learning complète en un workflow en plusieurs étapes. Ainsi, tout le monde peut travailler indépendamment sur l’étape spécifique. Dans Azure Machine Learning, un composant représente une étape réutilisable dans un pipeline. Les composants sont conçus pour améliorer la productivité de la création de pipelines. Plus précisément, les composants offrent les éléments suivants :

  • Interface bien définie : les composants nécessitent une interface bien définie (entrée et sortie). L’interface permet à l’utilisateur de créer des étapes et de connecter facilement les étapes. L’interface masque également la logique complexe d’une étape et supprime la charge de la compréhension du mode d’implémentation de l’étape.

  • Partager et réutiliser : en tant que blocs de construction d’un pipeline, les composants peuvent être facilement partagés et réutilisés entre les pipelines, les espaces de travail et les abonnements. Les composants créés par une équipe peuvent être découverts et utilisés par une autre équipe.

  • Gestion de version : les composants sont versionnés. Les fabricants de composants peuvent continuer à améliorer les composants et à publier de nouvelles versions. Les consommateurs peuvent utiliser des versions de composants spécifiques dans leurs pipelines. Cela leur donne la compatibilité et la reproductibilité.

Unité pouvant être testée : un composant est un élément de code autonome. Il est facile d’écrire un test unitaire pour un composant.

Composant et pipeline

Un pipeline Machine Learning est le workflow d’une tâche Machine Learning complète. Les composants sont les blocs de construction d’un pipeline Machine Learning. Lorsque vous envisagez un composant, il doit se trouver dans le contexte du pipeline.

Pour créer des composants, la première chose consiste à définir le pipeline Machine Learning. Cela nécessite de décomposer la tâche de Machine Learning complète en un workflow en plusieurs étapes. Chaque étape est un composant. Par exemple, si vous envisagez une tâche de Machine Learning simple de l’utilisation de données historiques pour effectuer l'apprentissage d’un modèle de prévision des ventes, vous pouvez créer un workflow séquentiel avec le traitement des données, la formation du modèle et les étapes d’évaluation du modèle. Pour les tâches complexes, vous souhaiterez peut-être décomposer davantage. Par exemple, fractionnez une seule étape de traitement des données en étapes d’ingestion de données, de nettoyage des données, de prétraitement des données et de caractérisation.

Une fois les étapes du workflow définies, il convient ensuite de spécifier la façon dont chaque étape est connectée dans le pipeline. Par exemple, pour connecter votre étape de traitement des données et l’étape de formation du modèle, vous pouvez définir un composant de traitement des données pour générer un dossier qui contient les données traitées. Un composant de formation prend un dossier comme entrée et génère un dossier qui contient le modèle entraîné. Ces entrées et définitions de sorties feront partie de votre définition d’interface de composant.

Maintenant, il est temps de développer le code d’exécution d’une étape. Vous pouvez utiliser vos langages préférés (python, R, etc.). Le code doit pouvoir être exécuté par une commande shell. Pendant le développement, vous pouvez ajouter quelques entrées pour contrôler l’exécution de cette étape. Par exemple, pour une étape de formation, vous pouvez ajouter le taux d’apprentissage, le nombre d’époques en tant qu’entrées pour contrôler la formation. Ces entrées supplémentaires, ainsi que les entrées et sorties nécessaires pour se connecter à d’autres étapes, sont l’interface du composant. L’argument d’une commande shell permet de transmettre des entrées et des sorties au code. L’environnement pour exécuter la commande et le code doit être spécifié. L’environnement peut être un environnement Azure Machine Learning organisé, une image Docker ou un environnement Conda.

Enfin, vous pouvez tout empaqueter, notamment le code, la commande, l’environnement, les entrées, les sorties, les métadonnées dans un composant. Connectez ensuite ces composants ensemble pour créer des pipelines pour votre workflow Machine Learning. Un composant peut être utilisé dans plusieurs pipelines.

Pour en savoir plus sur la procédure de création d’un composant, consultez :

Étapes suivantes