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 processo di formazione utilizzando DebugHookConfig, DebugRuleConfigurationProfilerConfig, e ProfilerRuleConfigurationoggetti tramite l'operazione SageMaker API AI CreateTrainingJob. È necessario specificare l'URI corretto dell'immagine nel RuleEvaluatorImage
parametro e gli esempi seguenti illustrano come configurare le stringhe JSON da 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 formazione utilizzando la AWS CLI. 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 dei AWS Deep Learning Container, consulta Immagini dei Deep Learning Containers 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
I seguenti esempi di codice mostrano come configurare una VanishingGradient
regola integrata utilizzando questa SageMaker API.
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 CollectionName
i valori disponibili, consulta Debugger Built-in Collections nella documentazioneCollectionParameters
parametri disponibili, consulta la 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 del Debugger. Per trovare le coppie chiave-valore per RuleParameters
, consulta Elenco delle regole integrate del 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' ProfilerConfig API per consentire la raccolta delle metriche 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 del Debugger. Per trovare le coppie chiave-valore per RuleParameters
, consulta Elenco delle regole integrate del Debugger.
Aggiorna la configurazione di profilazione del Debugger utilizzando l'API UpdateTrainingJob
La configurazione della profilazione del debugger può essere aggiornata durante l'esecuzione del processo di formazione utilizzando l'operazione API. UpdateTrainingJob Configura nuovi ProfilerRuleConfigurationoggetti ProfilerConfige specifica il nome del processo di formazione 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
" }
Aggiungi la configurazione delle regole personalizzate di Debugger all'API CreateTrainingJob
È possibile configurare una regola personalizzata per un processo di formazione utilizzando gli DebugRuleConfigurationoggetti DebugHookConfige nell' CreateTrainingJoboperazione API. Il seguente esempio di codice mostra come configurare una ImproperActivation
regola personalizzata scritta con la libreria smdebug utilizzando questa operazione SageMaker API. 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 Immagine Amazon SageMaker Debugger URIs per valutatori di regole personalizzati. 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 del Debugger. Per trovare le coppie chiave-valore per RuleParameters
, consulta Elenco delle regole integrate del Debugger.