Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
JSON (AWS CLI)
Le regole integrate di Amazon SageMaker Debugger possono essere configurate per un job di addestramento utilizzando gli oggetti DebugHookConfig, DebugRuleConfiguration, ProfilerConfig e ProfilerRuleConfiguration tramite l’operazione API SageMaker AI CreateTrainingJob. È necessario specificare l'URI corretto dell'immagine nel parametro RuleEvaluatorImage e gli esempi seguenti illustrano come configurare le stringhe JSON per richiedere createTrainingJob.
Il codice seguente mostra un modello JSON completo per eseguire un processo di addestramento con le impostazioni e le configurazioni di Debugger richieste. Salva il modello come file JSON nella tua directory di lavoro ed esegui il processo di addestramento utilizzando la CLI AWS. Ad esempio, salva il seguente codice come debugger-training-job-cli.json
Nota
Assicurati di utilizzare le immagini corrette del container Docker. Per trovare le immagini del container AWS Deep Learning, consulta Immagini del container Deep Learning disponibili
{ "TrainingJobName": "debugger-aws-cli-test", "RoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-YYYYMMDDT123456", "AlgorithmSpecification": { // Specify a training Docker container image URI (Deep Learning Container or your own training container) to TrainingImage. "TrainingImage": "763104351884.dkr.ecr.us-west-2.amazonaws.com/tensorflow-training:2.4.1-gpu-py37-cu110-ubuntu18.04", "TrainingInputMode": "File", "EnableSageMakerMetricsTimeSeries": false }, "HyperParameters": { "sagemaker_program": "entry_point/tf-hvd-train.py", "sagemaker_submit_directory": "s3://sagemaker-us-west-2-111122223333/debugger-boto3-profiling-test/source.tar.gz" }, "OutputDataConfig": { "S3OutputPath": "s3://sagemaker-us-west-2-111122223333/debugger-aws-cli-test/output" }, "DebugHookConfig": { "S3OutputPath": "s3://sagemaker-us-west-2-111122223333/debugger-aws-cli-test/debug-output", "CollectionConfigurations": [ { "CollectionName": "losses", "CollectionParameters" : { "train.save_interval": "50" } } ] }, "DebugRuleConfigurations": [ { "RuleConfigurationName": "LossNotDecreasing", "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest", "RuleParameters": {"rule_to_invoke": "LossNotDecreasing"} } ], "ProfilerConfig": { "S3OutputPath": "s3://sagemaker-us-west-2-111122223333/debugger-aws-cli-test/profiler-output", "ProfilingIntervalInMilliseconds":500, "ProfilingParameters": { "DataloaderProfilingConfig": "{\"StartStep\":5, \"NumSteps\":3, \"MetricsRegex\": \".*\", }", "DetailedProfilingConfig": "{\"StartStep\":5, \"NumSteps\":3, }", "PythonProfilingConfig": "{\"StartStep\":5, \"NumSteps\":3, \"ProfilerName\": \"cprofile\", \"cProfileTimer\": \"total_time\"}", "LocalPath": "/opt/ml/output/profiler/" } }, "ProfilerRuleConfigurations": [ { "RuleConfigurationName": "ProfilerReport", "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest", "RuleParameters": {"rule_to_invoke": "ProfilerReport"} } ], "ResourceConfig": { "InstanceType": "ml.p3.8xlarge", "InstanceCount":1, "VolumeSizeInGB": 30 }, "StoppingCondition": { "MaxRuntimeInSeconds":86400} }
Dopo aver salvato il file JSON, esegui il comando seguente nel terminale. (Usa ! all'inizio della riga se usi un notebook Jupyter).
aws sagemaker create-training-job --cli-input-json file://debugger-training-job-cli.json
Configurazione di una regola di Debugger per il debug dei parametri del modello
Negli esempi di codice riportati di seguito viene illustrato come configurare una regola VanishingGradient integrata utilizzando questa API SageMaker.
Per consentire a Debugger di raccogliere tensori di output
Specifica la configurazione dell’hook Debugger come segue:
"DebugHookConfig": { "S3OutputPath": "s3://<default-bucket>/<training-job-name>/debug-output", "CollectionConfigurations": [ { "CollectionName": "gradients", "CollectionParameters" : { "save_interval": "500" } } ] }
Ciò farà sì che il processo di addestramento salvi la raccolta di tensori, gradients, ogni save_interval di 500 fasi. Per trovare i valori CollectionName disponibili, consulta Raccolte integrate di DebuggerCollectionParameters disponibili, consulta la classe sagemaker.debugger.CollectionConfig
Per abilitare le regole di Debugger per il debug dei tensori di output
Il seguente esempio di API DebugRuleConfigurations mostra come eseguire la regola VanishingGradient integrata nella raccolta gradients salvata.
"DebugRuleConfigurations": [ { "RuleConfigurationName": "VanishingGradient", "RuleEvaluatorImage": "503895931360.dkr.ecr.us-east-1.amazonaws.com/sagemaker-debugger-rules:latest", "RuleParameters": { "rule_to_invoke": "VanishingGradient", "threshold": "20.0" } } ]
Con una configurazione come quella in questo esempio, Debugger avvia un processo di valutazione della regola per il processo di addestramento utilizzando la regola VanishingGradient nella raccolta del tensore gradients. Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta Immagini Docker per le regole di Debugger. Per trovare le coppie chiave-valore per RuleParameters, consulta Elenco delle regole integrate di Debugger.
Configurazione di una regola integrata di Debugger per la profilazione dei parametri del sistema e del framework
Il codice di esempio seguente mostra come specificare l'operazione dell'API ProfilerConfig per consentire la raccolta dei parametri del sistema e del framework.
Per abilitare la profilazione di Debugger per raccogliere i parametri del sistema e del framework
Per abilitare le regole di Debugger per la profilazione dei parametri
Il codice di esempio seguente mostra come configurare la regola ProfilerReport.
"ProfilerRuleConfigurations": [ { "RuleConfigurationName": "ProfilerReport", "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest", "RuleParameters": { "rule_to_invoke": "ProfilerReport", "CPUBottleneck_cpu_threshold": "90", "IOBottleneck_threshold": "90" } } ]
Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta Immagini Docker per le regole di Debugger. Per trovare le coppie chiave-valore per RuleParameters, consulta Elenco delle regole integrate di Debugger.
Aggiornamento della configurazione della profilazione di Debugger utilizzando l’API UpdateTrainingJob
La configurazione della profilazione di Debugger può essere aggiornata durante l'esecuzione del processo di addestramento utilizzando l'operazione API UpdateTrainingJob. Configura i nuovi oggetti ProfilerConfig e ProfilerRuleConfiguration e specifica il nome del processo di addestramento nel parametro TrainingJobName.
{ "ProfilerConfig": { "DisableProfiler":boolean, "ProfilingIntervalInMilliseconds":number, "ProfilingParameters": { "string" : "string" } }, "ProfilerRuleConfigurations": [ { "RuleConfigurationName": "string", "RuleEvaluatorImage": "string", "RuleParameters": { "string" : "string" } } ], "TrainingJobName": "your-training-job-name-YYYY-MM-DD-HH-MM-SS-SSS" }
Aggiunta della configurazione delle regole personalizzate di Debugger all’API CreateTrainingJob
Puoi configurare una regola personalizzata per un processo di addestramento utilizzando gli oggetti DebugHookConfig e DebugRuleConfiguration nell’operazione API CreateTrainingJob. Nell'esempio di codice riportato di seguito viene illustrato come configurare una regolaImproperActivation personalizzata scritta con la libreria smdebug utilizzando l'operazione API SageMaker. In questo esempio si presuppone che la regola personalizzata sia stata scritta nel file custom_rules.py e che sia stata caricata in un bucket Amazon S3. Nell'esempio vengono fornite immagini Docker predefinite che puoi utilizzare per eseguire le regole personalizzate. Queste immagini sono elencate in URI delle immagini di Amazon SageMaker Debugger per strumenti di valutazione di regole personalizzate. Specifica l'indirizzo del registro di URL per l'immagine Docker integrata nel parametro RuleEvaluatorImage.
"DebugHookConfig": { "S3OutputPath": "s3://<default-bucket>/<training-job-name>/debug-output", "CollectionConfigurations": [ { "CollectionName": "relu_activations", "CollectionParameters": { "include_regex": "relu", "save_interval": "500", "end_step": "5000" } } ] }, "DebugRulesConfigurations": [ { "RuleConfigurationName": "improper_activation_job", "RuleEvaluatorImage": "552407032007.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rule-evaluator:latest", "InstanceType": "ml.c4.xlarge", "VolumeSizeInGB":400, "RuleParameters": { "source_s3_uri": "s3://bucket/custom_rules.py", "rule_to_invoke": "ImproperActivation", "collection_names": "relu_activations" } } ]
Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta Immagini Docker per le regole di Debugger. Per trovare le coppie chiave-valore per RuleParameters, consulta Elenco delle regole integrate di Debugger.