Configure um estimador com parâmetros para a criação de perfil básico usando os módulos Python do Amazon SageMaker Debugger. - SageMaker IA da Amazon

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á.

Configure um estimador com parâmetros para a criação de perfil básico usando os módulos Python do Amazon SageMaker Debugger.

Por padrão, o perfil básico do SageMaker Debugger está ativado por padrão e monitora as métricas de utilização de recursos, como utilização da CPU, utilização da GPU, utilização da memória da GPU, rede e tempo de espera de E/S, de todos os trabalhos de treinamento do SageMaker enviados usando o Amazon SageMaker Python SDK. O SageMaker Debugger coleta essas métricas de utilização de recursos a cada 500 milissegundos. Você não precisa fazer alterações adicionais em seu código, script de treinamento ou iniciador de trabalho para rastrear a utilização de recursos básicos. Se quiser alterar o intervalo de coleta de métricas para criação de perfil básico, você pode especificar parâmetros específicos do Debugger ao criar um iniciador de trabalho de treinamento do SageMaker usando o SageMaker Python SDK, AWS SDK para Python (Boto3) ou AWS Command Line Interface (CLI). Neste guia, vamos nos concentrar em como alterar as opções de criação de perfil usando o Amazon SageMaker Python SDK. Esta página fornece modelos de referência para configurar esse objeto estimador.

Se quiser acessar o painel de métricas de utilização de recursos do seu trabalho de treinamento no SageMaker Studio, você pode ir para o Interface de usuário do Amazon SageMaker Debugger nos Experimentos do Amazon SageMaker Studio Classic.

Se você quiser ativar as regras que detectam problemas de utilização de recursos do sistema automaticamente, você pode adicionar o parâmetro rules no objeto estimador para ativar as regras.

Importante

Para usar os atributos mais recentes do SageMaker Debugger, você precisa atualizar o SageMaker Python SDK e a biblioteca cliente SMDebug. No kernel do iPython, no caderno Jupyter ou no ambiente do JupyterLab, execute o código a seguir para instalar as versões mais recentes das bibliotecas e reiniciar o kernel.

import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)

Modelo de código para configurar um objeto estimador do SageMaker AI com os módulos Python do SageMaker Debugger no SageMaker AI Python SDK

Para ajustar a configuração básica de criação de perfil (profiler_config) ou adicionar as regras do criador de perfil (rules), escolha uma das guias para obter o modelo para configurar um estimador do SageMaker AI. Nas páginas seguintes, você pode encontrar mais informações sobre como configurar os dois parâmetros:

nota

Os exemplos de código a seguir não são executáveis diretamente. Vá para as próximas seções para saber como configurar cada parâmetro.

PyTorch
# An example of constructing a SageMaker AI PyTorch estimator import boto3 import sagemaker from sagemaker.pytorch import PyTorch from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs session=boto3.session.Session() region=session.region_name profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=PyTorch( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.12.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
TensorFlow
# An example of constructing a SageMaker AI TensorFlow estimator import boto3 import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs session=boto3.session.Session() region=session.region_name profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=TensorFlow( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.8.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
MXNet
# An example of constructing a SageMaker AI MXNet estimator import sagemaker from sagemaker.mxnet import MXNet from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=MXNet( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.7.0", py_version="py37", # SageMaker Debugger parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
nota

Para o MXNet, ao configurar o parâmetro profiler_config, você só pode configurar para monitoramento do sistema. As métricas da framework de criação de perfil não são compatíveis com o MXNet.

XGBoost
# An example of constructing a SageMaker AI XGBoost estimator import sagemaker from sagemaker.xgboost.estimator import XGBoost from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=XGBoost( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-profiling-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.5-1", # Debugger-specific parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)
nota

Para o XGBoost, ao configurar o parâmetro profiler_config, você só pode configurar para monitoramento do sistema. As métricas da framework de criação de perfil não são compatíveis com o XGBoost.

Generic estimator
# An example of constructing a SageMaker AI generic estimator using the XGBoost algorithm base image import boto3 import sagemaker from sagemaker.estimator import Estimator from sagemaker import image_uris from sagemaker.debugger import ProfilerConfig, DebuggerHookConfig, Rule, ProfilerRule, rule_configs profiler_config=ProfilerConfig(...) rules=[ ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] region=boto3.Session().region_name xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.5-1") estimator=Estimator( role=sagemaker.get_execution_role() image_uri=xgboost_container, base_job_name="debugger-demo", instance_count=1, instance_type="ml.m5.2xlarge", # Debugger-specific parameters profiler_config=profiler_config, rules=rules ) estimator.fit(wait=False)

A seguir, são apresentadas breves descrições dos parâmetros.

nota

O Debugger salva com segurança os dados de saída em subpastas do seu bucket S3 padrão. Por exemplo, o formato do URI padrão do bucket do S3 é s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Há três subpastas criadas pelo Debugger: debug-output, profiler-output e rule-output. Você também pode recuperar os URIs padrão do bucket do S3 usando os métodos da classe de estimadores do SageMaker AI.

Consulte os tópicos a seguir para descobrir como configurar detalhadamente os parâmetros específicos do Debugger.