Machine Learning à grande échelle

Machine Learning (ML) est une technique utilisée pour l’apprentissage des modèles prédictifs basé sur des algorithmes mathématiques. Machine Learning analyse les relations entre les champs de données pour prédire des valeurs inconnues.

La création et le déploiement d’un modèle Machine Learning constituent un processus itératif :

  • Les scientifiques de données explorent les données sources pour déterminer les relations entre les fonctionnalités et les étiquettes prédites.
  • Les scientifiques de données forment et valident des modèles à l’aide d’algorithmes appropriés afin de rechercher le modèle optimal pour la prédiction.
  • Le modèle optimal est déployé en production, en tant que service web ou autre fonction encapsulée.
  • Lorsque de nouvelles données sont collectées, le modèle est régulièrement reformé pour améliorer son efficacité.

Machine Learning à l’échelle traite deux problèmes d’évolutivité différents. Le premier est l’apprentissage d’un modèle sur des jeux de données volumineux qui nécessitent les fonctionnalités de montée en puissance (scale-out) d’un cluster à former. Le deuxième est l’opérationnalisation du modèle entraîné afin qu’il puisse évoluer pour répondre aux demandes des applications qui le consomme. En général, cela est accompli en déployant les fonctionnalités prédictives en tant que service web qui peut ensuite être monté en puissance.

Machine Learning à l’échelle présente l’avantage qu’il peut produire des fonctionnalités prédictives, puissantes, car les modèles plus efficaces résultent généralement de davantage de données. Une fois qu’un modèle est entraîné, il peut être déployé en tant que service web sans état, très performant et pouvant subir un scale-out.

Préparation et formation du modèle

Pendant la phase de préparation et de formation du modèle, les scientifiques de données explorent les données de manière interactive à l’aide de langages tels que Python et R pour :

  • Extraire des exemples à partir d’entrepôts de données volumineux.
  • Rechercher et traiter les valeurs hors norme, les doublons et les valeurs manquantes pour nettoyer les données.
  • Déterminer les corrélations et les relations dans les données via l’analyse statistique et la visualisation.
  • Générer de nouvelles fonctionnalités calculées qui améliorent la prévisibilité des relations statistiques.
  • Former des modèles ML à l’aide d’algorithmes prédictifs.
  • Valider les modèles formés à l’aide de données retenues pendant la formation.

Pour prendre en charge cette phase d’analyse interactive et de modélisation, la plateforme de données doit permettre aux scientifiques de données d’explorer les données à l’aide de divers outils. En outre, l’apprentissage d’un modèle Machine Learning complexe peut nécessiter le traitement intensif de grands volumes de données, donc il est essentiel de disposer de ressources suffisantes pour la montée en puissance de l’apprentissage du modèle.

Déploiement et consommation du modèle

Lorsqu’un modèle est prêt à être déployé, il peut être encapsulé en tant que service web et déployé sur le cloud, dans un appareil de périphérie ou au sein d’un environnement d’exécution ML d’entreprise. Ce processus de déploiement est appelé opérationnalisme.

Défis

Machine Learning à l’échelle présente quelques défis :

  • Vous avez généralement besoin d’une grande quantité de données pour former un modèle, en particulier pour les modèles d’apprentissage profond.
  • Vous devez préparer ces jeux de données volumineux avant même de pouvoir commencer à former votre modèle.
  • La phase de formation du modèle doit accéder aux magasins de données volumineux. Il est courant d’effectuer l’apprentissage du modèle à l’aide du même cluster de données volumineux, comme Spark, que celui utilisé pour la préparation des données.
  • Pour les scénarios comme le deep learning, vous aurez non seulement besoin d’un cluster qui peut fournir un scale-out sur les processeurs, mais votre cluster devra aussi se composer de nœuds GPU.

Machine Learning à l’échelle dans Azure

Avant de choisir les services ML à utiliser pour l’apprentissage et l’opérationnalisme, vous devez vous demander si vous avez besoin de former un modèle ou si un modèle prédéfini peut répondre à vos besoins. Dans de nombreux cas, l’utilisation d’un modèle prédéfini consiste simplement appeler un service web ou à utiliser une bibliothèque ML pour charger un modèle existant. Certaines options incluent :

  • Utiliser les services web fournis par Azure Cognitive Services
  • Utiliser les modèles de réseau neuronal préentraînés fournis par Cognitive Toolkit
  • Incorporer les modèles sérialisés fournis par Core ML pour une application iOS

Si un modèle prédéfini ne correspond pas à vos données ou à votre scénario, les options Azure incluent Azure Machine Learning, HDInsight avec Spark MLlib et MMLSpark, Azure Databricks, Cognitive Toolkit et SQL Machine Learning Services. Si vous décidez d’utiliser un modèle personnalisé, vous devez créer un pipeline qui inclut l’apprentissage et l’opérationnalisme du modèle.

Pour obtenir la liste des choix technologiques pour ML dans Azure, consultez :

Étapes suivantes

Les architectures de référence suivantes présentent des scénarios de Machine Learning dans Azure :