Réglage des hyperparamètres distribués pour les modèles Machine Learning

Container Registry
Cosmos DB
Data Lake Storage
Data Science Virtual Machine
Machine Learning

Cet article décrit le réglage des hyperparamètres distribués pour les modèles Machine Learning Python. Les hyperparamètres sont des paramètres réglables qui contrôlent l’entraînement du modèle Machine Learning. Les performances du modèle Machine Learning dépendent fortement des hyperparamètres.

Le réglage des hyperparamètres, également appelé optimisation des hyperparamètres, est le processus de recherche de la configuration des hyperparamètres qui produit les meilleures performances. Azure Machine Learning peut vous aider à automatiser et à distribuer le réglage des hyperparamètres.

Architecture

Diagramme montrant le processus d’optimisation des hyperparamètres dans le flux de travail Azure Machine Learning.

Téléchargez un fichier Visio de cette architecture.

Workflow

  1. L’écosystème Machine Learning ingère les données à partir d’Azure Data Lake Storage.

  2. Python ou YAML peut configurer des ensembles d’hyperparamètres.

  3. Le réglage des hyperparamètres distribué entraîne les instances de modèle sur plusieurs processeurs et GPU pour identifier le modèle le plus performant.

  4. Un registre de modèles Azure Container Registry contient les modèles entraînés. L’inscription des modèles dans le registre des modèles facilite leur organisation et leur suivi.

  5. Le modèle le plus performant s’inscrit auprès de Machine Learning et se déploie via des points de terminaison managés Machine Learning.

  6. Azure Cosmos DB stocke le modèle afin que l’application web ou mobile puisse l’utiliser.

  7. Azure Monitor surveille et journalise les activités tout au long du processus.

Composants

  • Azure Data Lake Storage fournit un lac de données éminemment évolutif et sécurisé pour les charges de travail d’analytique à haute performance.

  • Microsoft Data Science Virtual Machine (DSVM) offre des images de machine virtuelle Windows Server et Linux configurées avec des outils d’analytique des données et d’apprentissage automatique. Les scénarios de cet article utilisent des machines virtuelles DSVM Linux Ubuntu.

  • Azure Machine Learning entraîne, teste, déploie, automatise et gère les modèles Machine Learning et IA à l’échelle du cloud. Le calcul managé Machine Learning alloue des nœuds cibles de calcul à la demande, en fonction d’une option de mise à l’échelle automatique. Chaque nœud de calcul est une machine virtuelle qui exécute une tâche d’apprentissage pour un ensemble d’hyperparamètres défini.

  • Azure Container Registry stocke des images pour les déploiements de conteneur Docker. Dans cette charge de travail, les conteneurs sur chaque nœud de calcul exécutent des scripts d’entraînement Python qu’ils extraient à partir de Container Registry.

  • Azure Cosmos DB est une base de données NoSQL serverless entièrement managée, qui est conçue pour les applications à haute performance de toute taille ou échelle.

  • Azure Monitor collecte, analyse et agit sur les données de télémétrie des environnements Azure et locaux. Monitor permet d’optimiser les performances et la disponibilité des applications et d’identifier de manière proactive les problèmes.

Détails du scénario

Les paramètres d’entraînement réglables ou les hyperparamètres contrôlent l’entraînement du modèle Machine Learning. Par exemple, les hyperparamètres pour les réseaux neuronaux Deep Learning incluent le nombre de couches masquées et le nombre de nœuds dans chaque couche. Il est important de déterminer les ensembles d’hyperparamètres qui produisent les meilleures performances d’entraînement de modèle.

Le processus d’optimisation ou d’optimisation des hyperparamètres est généralement manuel, informatiquement coûteux et long. Machine Learning peut automatiser l’optimisation des hyperparamètres et exécuter des expérimentations parallèles pour optimiser efficacement les hyperparamètres.

Les sections suivantes décrivent les scénarios d’optimisation des hyperparamètres pour les modèles scikit-learn et les modèles Deep Learning avec des unités de traitement graphique (GPU). Pour rendre ces scénarios opérationnels, consultez MLOps (Opérationnalisation de Machine Learning) pour les modèles Python avec Azure Machine Learning.

Scénario de correspondance FAQ Stack Overflow

Ce scénario règle un pipeline scikit-learn pour répondre aux questions fréquentes (FAQ). Ce scénario utilise un sous-ensemble de données de questions Stack Overflow qui comprend des questions d’origine, leurs questions dupliquées et leurs réponses. Ce modèle prévoit la probabilité qu’une question répétée corresponde à l’une des questions originales. L’objectif est de créer un modèle qui trouve des similitudes entre les questions en double.

Ce scénario utilise l’échantillonnage de grille, une technique d’optimisation des hyperparamètres qui effectue une recherche de grille simple sur des valeurs en fonction de la plage et de l’incrément spécifiés. Cette technique peut effectuer une recherche exhaustive sur l’ensemble de l’espace de recherche. La technique d’échantillonnage de grille prend en charge les hyperparamètres discrets et l’arrêt anticipé des tâches peu performantes.

Scénario de détection hors stock

Ce scénario règle un modèle de détection d’objets déployé en tant que service web pour aider à détecter les produits hors stock sur les étagères des magasins. Le modèle utilise des images d’étagères de magasin remplies de produits pour prédire des espaces vides et combine des prédictions d’espace vide avec d’autres sources d’informations, telles que les planogrammes et les bases de données. Ce modèle utilise un jeu de données distribué sous une licence CC-BY 4.0 et couvre uniquement la prédiction d’espace vide.

Vous pouvez distribuer le réglage des hyperparamètres dans les réseaux neuronaux en configurant plusieurs ensembles d’hyperparamètres, comme le nombre de couches masquées et le taux d’apprentissage, et en les exécutant sur des clusters de calcul compatibles GPU en parallèle. Pour plus d’informations sur les algorithmes de détection d’objets de pointe, consultez A Survey of Modern Deep Learning- based Object Detection Models.

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d'informations, consultez Microsoft Azure Well-Architected Framework.

Sécurité

La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.

Implémentez les pratiques suivantes pour améliorer la sécurité de Machine Learning dans Azure :

  • Limiter l’accès aux ressources et aux opérations par compte d’utilisateur ou par groupe
  • Limiter les communications réseau entrantes et sortantes.
  • Chiffrer des données en transit et au repos.
  • Analyser les vulnérabilités.
  • Appliquer et auditer des stratégies de configuration.

Pour plus d’informations sur la sécurité de Machine Learning, consultez Sécurité et gouvernance d’entreprise pour Azure Machine Learning.

Optimisation des coûts

L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

Le coût d’un réglage des hyperparamètres dépend de la taille de la machine virtuelle de calcul Machine Learning, de l’utilisation ou non de nœuds de faible priorité et du nombre maximum de nœuds autorisés dans le cluster.

Les coûts en cours lorsque le cluster n’est pas utilisé dépendent du nombre minimal de nœuds requis par le cluster. Avec la mise à l’échelle automatique des clusters, le système ajoute automatiquement des nœuds jusqu’au maximum autorisé lorsque nécessaire, puis supprime les nœuds jusqu’au minimum requis car ils ne sont plus nécessaires. Si le cluster peut effectuer une mise à l’échelle automatique jusqu’à zéro nœud, il ne coûte rien lorsqu’il n’est pas utilisé.

Pour plus d’informations sur les coûts d’Azure Machine Learning, consultez Planifier la gestion des coûts pour Azure Machine Learning.

Excellence opérationnelle

L’excellence opérationnelle couvre les processus d’exploitation qui déploient une application et maintiennent son fonctionnement en production. Pour plus d’informations, consultez Vue d’ensemble du pilier Excellence opérationnelle.

Pour cette charge de travail, Monitor peut journaliser les activités de formation, de registre et de déploiement. Monitor permet également de suivre les expériences et d’analyser les journaux.

Efficacité des performances

L’efficacité des performances est la capacité de votre charge de travail à s’adapter à la demande des utilisateurs de façon efficace. Pour plus d’informations, consultez Vue d’ensemble du pilier d’efficacité des performances.

Chaque ensemble d’hyperparamètres s’exécute sur un nœud de calcul Machine Learning. Pour le scénario de correspondance FAQ, chaque nœud peut être une machine virtuelle Standard_D4_v5, qui possède quatre cœurs. Ce scénario utilise un classifieur LightGBM, une infrastructure de boosting de gradient pour Machine Learning. Par conséquent, l’exécution du réglage des hyperparamètres prend un quart du temps d’origine pour effectuer une recherche dans tous les ensembles sur un seul nœud. Les exigences de calcul peuvent changer en fonction du cas d’usage et du jeu de données.

Vous pouvez utiliser des nœuds de calcul compatibles GPU, tels que Standard_NC6s_v3, pour les cas d’usage d’apprentissage profond comme le scénario de détection hors stock. Chaque exécution de réglage des hyperparamètres utilise un GPU unique sur chaque machine virtuelle Standard_NC6s_v3. Les exigences de calcul peuvent changer en fonction du cas d’usage et du jeu de données.

Bien que l’ajout de nœuds supplémentaires puisse accélérer considérablement le temps d’exécution, les temps de démarrage accrus ajoutent généralement plusieurs minutes de surcharge. Choisissez une configuration avec une capacité de calcul appropriée pour réduire les coûts d’exécution, les coûts unitaires et les heures de démarrage.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteurs principaux :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes