Configuração do estimador com parâmetros para criação de perfil básica usando os módulos Amazon SageMaker Debugger Python - Amazon SageMaker

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

Configuração do estimador com parâmetros para criação de perfil básica usando os módulos Amazon SageMaker Debugger Python

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, utilização, CPU utilização de GPU memória, GPU rede e tempo de espera de E/S, de todos os trabalhos de treinamento enviados usando o Amazon Python. SageMaker SageMaker SDK SageMaker O 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 a criação de perfil básica, você pode especificar parâmetros específicos do Debugger ao criar um iniciador de SageMaker trabalhos de treinamento usando Python SageMaker ,, ou (). SDK AWS SDK for Python (Boto3) 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 acessar o. Interface do SageMaker usuário do Amazon Debugger no Amazon Studio Classic Experiments SageMaker

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 recursos mais recentes do SageMaker Debugger, você precisa atualizar o SageMaker Python SDK e a biblioteca cliente. SMDebug Em seu iPython kernel, Jupyter Notebook ou JupyterLab ambiente, 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 SageMaker estimador com os módulos Debugger SageMaker Python no Python SageMaker 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. SageMaker 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 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 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 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

PoisMXNet, ao configurar o profiler_config parâmetro, você só pode configurar para monitoramento do sistema. Não há suporte para métricas da estrutura de criação de perfil. MXNet

XGBoost
# An example of constructing a SageMaker 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

PoisXGBoost, ao configurar o profiler_config parâmetro, você só pode configurar para monitoramento do sistema. Não há suporte para métricas da estrutura de criação de perfil. XGBoost

Generic estimator
# An example of constructing a SageMaker 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 bucket padrão do S3 URI é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 o bucket padrão do S3 URIs usando os métodos da classe SageMaker estimador.

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