Exemple de flux de travail de RL à l'aide d'Amazon SageMaker RL - Amazon SageMaker

Exemple de flux de travail de RL à l'aide d'Amazon SageMaker RL

L'exemple suivant décrit les étapes de développement des modèles d'apprentissage par renforcement utilisant Amazon SageMaker RL.

Pour obtenir des exemples de codes, consultez l'exemple de blocs-notes à l'adresse https://github.com/awslabs/amazon-sagemaker-examples/tree/master/reinforcement-learning.

  1. Formuler le problème d'apprentissage par renforcement—Tout d'abord, formulez le problème métier dans un problème d'apprentissage par renforcement. Par exemple, la scalabilité automatique permet aux services d'augmenter ou de réduire la capacité de manière dynamique selon les conditions que vous définissez. Actuellement, cela exige la configuration des alarmes, la mise à l'échelle des stratégies et des seuils, ainsi que d'autres étapes manuelles. Pour résoudre cela avec l'apprentissage à renforcement, nous définissons les composantes du processus de décision markovien :

    1. Objectif—Mettre à l'échelle la capacité d'instance afin qu'elle corresponde au profil de charge souhaité.

    2. Environnement—Un environnement personnalisé qui inclut le profil de chargement. Il génère un charge simulée avec des variations quotidiennes et hebdomadaires ainsi que des pics occasionnels. Le système simulé souffre d'un décalage entre les demandes de nouvelles ressources et leur disponibilité pour servir les demandes.

    3. État—La charge actuelle, le nombre de tâches en échec et le nombre de machines actives.

    4. Action—Supprimer, ajouter ou conserver le même nombre d'instances.

    5. Récompense—Une récompense positive pour des transactions réussie et une pénalité élevée pour des transactions en échec au-delà d'un seuil spécifié.

  2. Définir l'environnement d'apprentissage par renforcement—L'environnement d'apprentissage par renforcement peut être l'environnement concret dans lequel l'agent d'apprentissage par renforcement interagit ou une simulation concrète. Vous pouvez connecter des environnements open source et personnalisés développés grâce à des interfaces Gym, ainsi que des environnements de simulation commerciaux tels que MATLAB et Simulink.

  3. Définir les préréglages—Les préréglages configurent les tâches d'entraînement d'apprentissage par renforcement et définissent les hyperparamètres pour les algorithmes d'apprentissage par renforcement.

  4. Écrire le code d'entraînement—Écrivez un code d'entraînement en tant que script Python et transmettez le script à une tâche d'entraînement SageMaker. Dans votre code d'entraînement, importez les fichiers d'environnement ainsi que les fichiers de préréglage, puis définissez la fonctionnalité main().

  5. Entraîner le modèle d'apprentissage par renforcement—Utilisez le RLEstimator SageMaker dans le kit SDK Amazon SageMaker Python pour démarre une tâche d'entraînement d'apprentissage par renforcement. Si vous utilisez un mode local, la tâche d'entraînement s'exécute sur l'instance de bloc-notes. Lorsque vous utilisez SageMaker pour l'entraînement, vous pouvez sélectionner des instances GPU ou UC. Stockez la sortie de la tâche d'entraînement dans un répertoire local si vous entraînez en mode local, ou sur Amazon S3 si vous utilisez l'entraînement SageMaker.

    Le RLEstimator exige les informations suivantes comme paramètres.

    1. Le répertoire source dans lequel l'environnement, les préréglages et le code d'entraînement sont chargés.

    2. Le chemin d'accès au script d'entraînement.

    3. La boîte à outils d'apprentissage à renforcement et l'infrastructure de deep learning que vous souhaitez utiliser. Cela se résout automatiquement en chemin d'accès Amazon ECR du conteneur d'apprentissage par renforcement.

    4. Les paramètres d'entraînement, tels que le nombre d'instances, le nom de la tâche et le chemin d'accès S3 pour la sortie.

    5. Les définitions de métriques que vous souhaitez capturer dans vos journaux. Elles peuvent également être visualisées dans CloudWatch et dans des blocs-notes SageMaker.

  6. Visualiser des métriques et une sortie d'entraînement—Après la fin d'une tâche d'entraînement utilisant un modèle d'apprentissage par renforcement, vous pouvez afficher les métriques définies dans les tâches d'entraînement dans CloudWatch. Vous pouvez également tracer les métriques dans un bloc-notes à l'aide de la bibliothèque d'analytique du kit SDK Amazon SageMaker Python. La visualisation des métriques vous aide à comprendre comment les performances du modèle, telles que mesurées par la récompense, s'améliorent au fil du temps.

    Note

    Si vous entraînez en mode local, vous ne pouvez pas visualiser les métriques dans CloudWatch.

  7. Évaluer le modèle—Les données contrôlées depuis des modèles précédemment entraînés peuvent être transmises pour évaluation et inférence dans le canal de vérification. En mode local, utilisez le répertoire local. En mode entraînement SageMaker, vous devez d'abord télécharger les données sur S3.

  8. Déployer des modèles d'apprentissage par renforcement—Enfin, déployez le modèle entraîné sur un point de terminaison hébergé sur SageMaker ou sur un appareil Edge grâce à AWS IoT Greengrass.

Pour de plus amples informations sur RL avec SageMaker, veuillez consulter Using RL with the SageMaker Python SDK.