Machine Learning avec Amazon SageMaker - Amazon SageMaker

Machine Learning avec Amazon SageMaker

Cette section décrit un flux de machine learning classique et la façon d'effectuer ces tâches avec Amazon SageMaker.

Dans le cadre du machine learning, vous « apprenez » à un ordinateur à effectuer des prédictions, ou inférences. Tout d'abord, vous utilisez un algorithme et des exemples de données pour entraîner un modèle. Ensuite, vous intégrez votre modèle dans votre application pour générer des inférences en temps réel et à l'échelle. Dans un environnement de production, un modèle apprend généralement à partir de millions d'exemples de données et produit des inférences par centaines en moins de 20 millisecondes.

Le schéma suivant illustre le flux de travail classique pour la création d'un modèle de machine learning :

Comme le montre le diagramme, vous devez généralement effectuer les activités suivantes :

  1. Générer des exemples de données : pour entraîner un modèle, vous avez besoin d'exemples de données. Le type de données dont vous avez besoin dépend du problème métier que vous souhaitez voir résolu par le modèle (les inférences que vous voulez que le modèle génère). Par exemple, supposons que vous souhaitez créer un modèle pour prédire un nombre en fonction d'une image en entrée représentant un chiffre manuscrit. Pour entraîner un modèle de ce type, vous avez besoin d'exemples d'images de chiffre manuscrits.

    Les spécialistes des données consacrent souvent beaucoup de temps à étudier et prétraiter des exemples de données avant de les utiliser pour l'entraînement de modèle. Pour prétraiter des données, vous effectuez généralement les opérations suivantes :

    1. Récupérer les données : vous pouvez posséder des référentiels de données en interne, ou utiliser des jeux de données disponibles publiquement. En général, vous placez les ensembles de données dans un référentiel unique.

    2. Nettoyer les données : pour améliorer l'entraînement du modèle, étudiez les données et nettoyez-les si nécessaire. Par exemple, si vos données possèdent un attribut country name avec des valeurs United States et US, vous pouvez choisir de les modifier à des fins de cohérence.

    3. Préparer ou transformer les données : pour améliorer les performances, vous pouvez effectuer des transformations de données supplémentaires. Par exemple, vous pouvez choisir de combiner des attributs. Si votre modèle prédit les conditions qui nécessitent le dégivrage d'un avion, vous pouvez combiner les attributs de température et d'humidité dans un nouvel attribut plutôt que de les utiliser séparément, afin d'améliorer le modèle.

    Dans SageMaker, vous prétraitez des exemples de données dans un bloc-notes Jupyter sur votre instance de bloc-notes. Vous utilisez le bloc-notes pour récupérer votre ensemble de données, l'étudier et le préparer pour l'entraînement du modèle. Pour de plus amples informations, veuillez consulter Exploration, analyse et traitement de données. Pour de plus amples informations sur la préparation des données dans AWS Marketplace, veuillez consulter data preparation (préparation des données).

  2. Entraîner un modèle : l'entraînement d'un modèle inclut à la fois l'entraînement et l'évaluation du modèle, comme suit :

    • Entraîner le modèle : pour entraîner un modèle, vous avez besoin d'un algorithme. Le choix de votre algorithme dépend de plusieurs facteurs. Si vous recherchez une solution rapide et prête à l'emploi, vous pouvez utiliser l'un des algorithmes fournis par SageMaker. Pour obtenir une liste des algorithmes fournis par SageMaker et des considérations connexes, veuillez consulter Utiliser les algorithmes intégrés Amazon SageMaker.

       

      Vous devez également calculer les ressources nécessaires à l'entraînement. Selon la taille de votre ensemble de données d'entraînement et la rapidité à laquelle vous avez besoin des résultats, vous pouvez utiliser des ressources allant d'une seule instance à usage général jusqu'à un cluster distribué d'instances GPU. Pour de plus amples informations, veuillez consulter Entraînement d'un modèle dans Amazon SageMaker.

       

    • Évaluer le modèle : après avoir entraîné votre modèle, vous l'évaluez afin de déterminer si la précision des inférences est acceptable. Dans SageMaker, vous utilisez le AWS SDK for Python (Boto) ou la bibliothèque Python de haut niveau fournie par SageMaker pour envoyer des demandes d'inférences au modèle.

      Vous utilisez un bloc-notes Jupyter dans votre instance de bloc-notes SageMaker pour entraîner et évaluer votre modèle.

  3. Déployer le modèle : normalement, vous repensez un modèle avant de l'intégrer à votre application et de le déployer. Avec les services d'hébergement SageMaker, vous pouvez déployer votre modèle de manière indépendante, en le découplant de votre code d'application. Pour de plus amples informations, veuillez consulter Déploiement d'un modèle sur les services d'hébergement SageMaker.

Le machine learning est un cycle continu. Après avoir déployé un modèle, vous surveillez les inférences, collectez la « réalité du terrain » et évaluez le modèle pour identifier les écarts. Vous pouvez ensuite augmenter la précision de vos inférences en mettant à jour vos données d'entraînement de manière à inclure les réalités du terrain nouvellement collectées. Pour cela, vous entraînez à nouveau le modèle avec le nouvel ensemble de données. De plus en plus d'exemples de données étant disponibles, vous continuez de réentraîner votre modèle pour en augmenter la précision.