As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
SDKpara Python (Boto3)
As regras integradas do Amazon SageMaker Debugger podem ser configuradas para um trabalho de treinamento usando a create_training_job()
RuleEvaluatorImage
parâmetro, e os exemplos a seguir explicam como configurar o corpo da solicitação para a create_training_job()
O código a seguir mostra um exemplo completo de como configurar o Debugger para o corpo da create_training_job()
solicitação e iniciar um trabalho de treinamento emus-west-2
, supondo que um script entry_point/train.py
de treinamento seja preparado usando. TensorFlow Para encontrar um end-to-end exemplo de notebook, consulte Profiling TensorFlow Multi GPU Multi Node Training Job with Amazon SageMaker Debugger
nota
Certifique-se de usar as imagens de contêiner do Docker corretas. Para encontrar imagens de contêineres de aprendizado AWS profundo disponíveis, consulte Imagens de contêineres de aprendizado profundo disponíveis
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'} } ] )
Para configurar uma regra do Debugger para depurar os parâmetros do modelo
Os exemplos de código a seguir mostram como configurar uma VanishingGradient
regra incorporada usando isso SageMaker API.
Para habilitar o Debugger para coletar tensores de saída
Especifique a configuração do hook do Debugger da seguinte forma:
DebugHookConfig={ 'S3OutputPath': '
s3://<default-bucket>/<training-job-name>/debug-output
', 'CollectionConfigurations': [ { 'CollectionName': 'gradients
', 'CollectionParameters' : { 'train.save_interval': '500
', 'eval.save_interval': '50
' } } ] }
Isso fará com que a tarefa de treinamento salve uma coleção, gradients
, a cada save_interval
de 500 etapas. Para encontrar CollectionName
os valores disponíveis, consulte Debugger Built-in Collections na documentaçãoCollectionParameters
parâmetros disponíveis, consulte a sagemaker.debugger.CollectionConfig
Para habilitar as regras do Debugger para depurar os tensores de saída
O DebugRuleConfigurations
API exemplo a seguir mostra como executar a VanishingGradient
regra incorporada na gradients
coleção salva.
DebugRuleConfigurations=[ { 'RuleConfigurationName': '
VanishingGradient
', 'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest
', 'RuleParameters': { 'rule_to_invoke': 'VanishingGradient
', 'threshold': '20.0
' } } ]
Com uma configuração como a desse exemplo, o Debugger inicia uma tarefa de avaliação de regra para a tarefa de treinamento usando a regra VanishingGradient
na coleção do tensor de gradients
. Para encontrar uma lista completa das imagens do Docker disponíveis para usar as regras do Debugger, consulte Imagens do Docker para regras do Debugger. Para encontrar os pares de valores-chave para RuleParameters
, consulte Lista de regras integradas do Debugger.
Para configurar a regra integrada do Debugger para criar perfis do sistema e métricas do framework
O código de exemplo a seguir mostra como especificar a ProfilerConfig API operação para permitir a coleta de métricas do sistema e da estrutura.
Para habilitar a criação de perfil do Debugger para coletar métricas do sistema e da estrutura
Para habilitar as regras do Debugger para criar perfil das métricas
O código de exemplo a seguir mostra como configurar a regra 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
' } } ]
Para encontrar uma lista completa das imagens do Docker disponíveis para usar as regras do Debugger, consulte Imagens do Docker para regras do Debugger. Para encontrar os pares de valores-chave para RuleParameters
, consulte Lista de regras integradas do Debugger.
Atualize a configuração de criação de perfil do depurador usando a operação UpdateTrainingJob
API
A configuração do perfil do depurador pode ser atualizada enquanto seu trabalho de treinamento está em execução usando a update_training_job()
TrainingJobName
parâmetro.
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
'
Adicionar configuração de regra personalizada do depurador à operação CreateTrainingJob API
Uma regra personalizada pode ser configurada para um trabalho de treinamento usando os DebugRuleConfigurationobjetos DebugHookConfige usando a função do SageMaker create_training_job()
ImproperActivation
regra personalizada escrita com a biblioteca smdebug usando essa SageMaker API operação. Este exemplo pressupõe que você tenha escrito a regra personalizada no arquivo custom_rules.py e o tenha carregado em um bucket do Amazon S3. O exemplo fornece imagens pré-criadas do Docker que podem ser usadas para executar as regras personalizadas. Elas estão listadas em Imagem do Amazon SageMaker Debugger URIs para avaliadores de regras personalizadas. Você especifica o endereço URL do registro para a imagem pré-criada do Docker no RuleEvaluatorImage
parâmetro.
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
' } } ]
Para encontrar uma lista completa das imagens do Docker disponíveis para usar as regras do Debugger, consulte Imagens do Docker para regras do Debugger. Para encontrar os pares de valores-chave para RuleParameters
, consulte Lista de regras integradas do Debugger.