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à.
SDKper Python (Boto3)
Le regole integrate di Amazon SageMaker Debugger possono essere configurate per un lavoro di formazione utilizzando la create_training_job()
RuleEvaluatorImage
parametro e gli esempi seguenti illustrano come configurare il corpo della richiesta per la funzione. create_training_job()
Il codice seguente mostra un esempio completo di come configurare Debugger per il corpo della create_training_job()
richiesta e avviare un processo di formazione inus-west-2
, supponendo che uno script entry_point/train.py
di addestramento sia preparato utilizzando. TensorFlow Per trovare un notebook di end-to-end esempio, consulta Profiling TensorFlow Multi GPU Multi Node Training Job with Amazon SageMaker Debugger
Nota
Assicurati di utilizzare le immagini corrette del container Docker. Per trovare le immagini disponibili dei AWS Deep Learning Container, consulta Immagini disponibili dei Deep Learning Containers
import sagemaker, boto3 import datetime, tarfile # Start setting up a SageMaker session and a Boto3 SageMaker client session = sagemaker.Session() region = session.boto_region_name bucket = session.default_bucket() # Upload a training script to a default Amazon S3 bucket of the current SageMaker session source = 'source.tar.gz' project = '
debugger-boto3-test
' tar = tarfile.open(source, 'w:gz') tar.add ('entry_point/train.py
') # Specify the directory and name of your training script tar.close() s3 = boto3.client('s3') s3.upload_file(source, bucket, project+'/'+source) # Set up a Boto3 session client for SageMaker sm = boto3.Session(region_name=region).client("sagemaker") # Start a training job sm.create_training_job( TrainingJobName='debugger-boto3-'+datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S'), HyperParameters={ 'sagemaker_submit_directory': 's3://'+bucket+'/'+project+'/'+source, 'sagemaker_program': '/entry_point/train.py
' # training scrip file location and name under the sagemaker_submit_directory }, 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
}, RoleArn='arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-20201014T161125', OutputDataConfig={'S3OutputPath': 's3://'+bucket+'/'+project+'/output'}, ResourceConfig={ 'InstanceType': 'ml.p3.8xlarge
', 'InstanceCount':1
, 'VolumeSizeInGB': 30 }, StoppingCondition={ 'MaxRuntimeInSeconds': 86400 }, DebugHookConfig={ 'S3OutputPath': 's3://'+bucket+'/'+project+'/debug-output', 'CollectionConfigurations': [ { 'CollectionName': 'losses
', 'CollectionParameters' : { 'train.save_interval': '500
', 'eval.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://'+bucket+'/'+project+'/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/' # Optional. Local path for profiling outputs } }, ProfilerRuleConfigurations=[ { 'RuleConfigurationName': 'ProfilerReport', 'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest
', 'RuleParameters': {'rule_to_invoke': 'ProfilerReport'} } ] )
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 regola 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' : { 'train.save_interval': '500
', 'eval.save_interval': '50
' } } ] }
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, consultate la sagemaker.debugger.CollectionConfig
Per abilitare le regole di Debugger per il debug dei tensori di output
L'DebugRuleConfigurations
APIesempio seguente mostra come eseguire la VanishingGradient
regola incorporata nella gradients
raccolta salvata.
DebugRuleConfigurations=[ { 'RuleConfigurationName': '
VanishingGradient
', 'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.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' ProfilerConfig APIoperazione per abilitare 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'operazione UpdateTrainingJob
API
La configurazione della profilazione del debugger può essere aggiornata durante l'esecuzione del processo di formazione utilizzando la funzione del client AI Boto3. update_training_job()
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 del debugger all'operazione CreateTrainingJob API
È possibile configurare una regola personalizzata per un lavoro di formazione utilizzando DebugRuleConfigurationgli oggetti DebugHookConfige utilizzando la funzione del client AWS Boto3 SageMaker AI. create_training_job()
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. Si specifica l'indirizzo di URL registro per l'immagine Docker predefinita 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.