Configuration des règles de profilage intégrées gérées par Amazon SageMaker Debugger - Amazon SageMaker

Configuration des règles de profilage intégrées gérées par Amazon SageMaker Debugger

Les règles de profilage intégrées d'Amazon SageMaker Debugger analysent les métriques système et les opérations de framework collectées pendant l'entraînement d'un modèle. Debugger propose l'opération d'API ProfilerRule qui aide à configurer les règles pour surveiller la progression des tâches d'entraînement et détecter les anomalies. Par exemple, les règles peuvent détecter si les gradients deviennent trop grands ou trop petits, si un modèle est surajusté ou surentraîné et si une tâche d'entraînement ne diminue pas la fonction de perte et ne s'améliore pas. Pour afficher la liste complète des règles intégrées disponibles, consultez Liste des règles intégrées du Debugger.

Note

Les règles intégrées sont préparées dans les conteneurs de traitement Amazon SageMaker et entièrement gérées par SageMaker Debugger. Par défaut, Debugger lance la règle ProfilerReport pour toutes les tâches d'entraînement SageMaker, sans aucun paramètre de règle propre à Debugger spécifié pour les estimateurs SageMaker. La règle ProfilerReport appelle toutes les règles intégrées suivantes pour contrôler les goulets d'étranglement du système et les métriques du cadre de profilage :

Debugger enregistre le rapport de profilage dans un compartiment S3 par défaut. Le format de l'URI du compartiment S3 par défaut est s3://sagemaker-<region>-<12digit_account_id>/<training-job-name>/rule-output/. Pour en savoir plus sur le téléchargement du rapport de profilage, consultez Rapport de profilage SageMaker Debugger. SageMaker Debugger gère entièrement les règles intégrées et analyse votre tâche d'entraînement en parallèle. Pour de plus amples informations sur la facturation, veuillez consulter la section Amazon SageMaker Studio est disponible sans frais supplémentaires de la page Tarification d'Amazon SageMaker.

Dans les rubriques suivantes, découvrez comment utiliser les règles intégrées de Debugger.

Utilisation des règles de profilage intégrées de Debugger avec les valeurs de paramètre par défaut

Pour spécifier des règles intégrées de Debugger dans un estimateur, vous devez configurer un objet de liste rules. L'exemple de code suivant présente la structure de base permettant de répertorier les règles intégrées de Debugger :

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_1()), ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_2()), ... ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_n()), ... # You can also append more debugging rules in the Rule.sagemaker(rule_configs.*()) format. ]

Pour de plus amples informations sur les valeurs de paramètres par défaut et les descriptions de la règle intégrée, veuillez consulter Liste des règles intégrées du Debugger.

Par exemple, pour inspecter les performances globales d'entraînement et la progression de votre modèle, créez un estimateur SageMaker avec la configuration de règle intégrée suivante.

from sagemaker.debugger import Rule, rule_configs rules=[ ProfilerRule.sagemaker(rule_configs.ProfilerReport()) ]

Lorsque vous démarrez la tâche d'entraînement, Debugger collecte les données d'utilisation des ressources système toutes les 500 millisecondes et les valeurs de perte et de précision toutes les 500 étapes par défaut. Debugger analyse l'utilisation des ressources pour identifier si votre modèle rencontre des problèmes de goulet d'étranglement. loss_not_decreasing, overfit, overtraining etstalled_training_rule contrôlent si votre modèle optimise la fonction de perte sans ces problèmes d'entraînement. Si les règles détectent des anomalies d'entraînement, le statut d'évaluation de la règle passe à IssueFound. Vous pouvez configurer des actions automatisées, telles que la notification des problèmes d'entraînement et l'arrêt des tâches d'entraînement, à l'aide d'Amazon CloudWatch Events et de AWS Lambda. Pour plus d'informations, consultez Action sur les règles Amazon SageMaker Debugger.

Utilisation des règles de profilage intégrées de Debugger avec les valeurs de paramètre personnalisées

Si vous souhaitez ajuster les valeurs des paramètres des règles intégrées et personnaliser l'expression regex de la collection de tenseurs, configurez les paramètres base_config et rule_parameters pour les méthodes de classe ProfilerRule.sagemaker et Rule.sagemaker. Dans le cas des méthodes de classe Rule.sagemaker, vous pouvez également personnaliser les collections de tenseurs via le paramètre collections_to_save. Vous trouverez des instructions sur l'utilisation de la classe CollectionConfig dans la section Configurer les collections de tenseurs en utilisant l'API CollectionConfig.

Utilisez le modèle de configuration suivant pour personnaliser les valeurs des paramètres des règles intégrées. En modifiant les paramètres de règle comme vous le souhaitez, vous pouvez ajuster la sensibilité des règles pour le déclenchement.

  • L'argument base_config sert à appeler les méthodes de règles intégrées.

  • L'argument rule_parameters sert à ajuster les valeurs de clé par défaut des règles intégrées répertoriées dans Liste des règles intégrées du Debugger.

Pour de plus amples informations sur la classe, les méthodes et les paramètres des règles Debugger, veuillez consulter SageMaker Debugger Rule class dans Amazon SageMaker Python SDK.

from sagemaker.debugger import Rule, ProfilerRule, rule_configs, CollectionConfig rules=[ ProfilerRule.sagemaker( base_config=rule_configs.BuiltInProfilerRuleName(), rule_parameters={ "key": "value" } ) ]

Les descriptions de paramètres et des exemples de personnalisation de valeur sont fournis pour chaque règle dans Liste des règles intégrées du Debugger.

Pour une configuration JSON de bas niveau des règles intégrées de Debugger à l'aide de l'API CreateTrainingJob, consultez Configurer Debugger à l'aide de l'API Amazon SageMaker.