Etapa 2: Iniciar e depurar trabalhos de treinamento usando Python SageMaker SDK - 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á.

Etapa 2: Iniciar e depurar trabalhos de treinamento usando Python SageMaker SDK

Para configurar um SageMaker estimador com o SageMaker Debugger, use o Amazon SageMaker Python SDK e especifique os parâmetros específicos do Debugger. Para utilizar totalmente a funcionalidade de depuração, há três parâmetros que você precisa configurar:debugger_hook_config, tensorboard_output_config e rules.

Importante

Antes de criar e executar o método de ajuste do estimador para iniciar um trabalho de treinamento, certifique-se de adaptar seu script de treinamento seguindo as instruções em Etapa 1: Adapte seu script de treinamento para registrar um hook.

Construa um SageMaker estimador com parâmetros específicos do Debugger

Os exemplos de código nesta seção mostram como construir um SageMaker estimador com os parâmetros específicos do Debugger.

nota

Os exemplos de código a seguir são modelos para construir os estimadores da SageMaker estrutura e não são diretamente executáveis. Você precisa prosseguir para as próximas seções e configurar os parâmetros específicos do Debugger.

PyTorch
# An example of constructing a SageMaker PyTorch estimator import boto3 import sagemaker from sagemaker.pytorch import PyTorch from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs session=boto3.session.Session() region=session.region_name debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] estimator=PyTorch( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.12.0", py_version="py37", # Debugger-specific parameters debugger_hook_config=debugger_hook_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 CollectionConfig, DebuggerHookConfig, Rule, rule_configs session=boto3.session.Session() region=session.region_name debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()), ProfilerRule.sagemaker(rule_configs.BuiltInRule()) ] estimator=TensorFlow( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # Debugger-specific parameters debugger_hook_config=debugger_hook_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 CollectionConfig, DebuggerHookConfig, Rule, rule_configs debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] estimator=MXNet( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.7.0", py_version="py37", # Debugger-specific parameters debugger_hook_config=debugger_hook_config, rules=rules ) estimator.fit(wait=False)
XGBoost
# An example of constructing a SageMaker XGBoost estimator import sagemaker from sagemaker.xgboost.estimator import XGBoost from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] estimator=XGBoost( entry_point="directory/to/your_training_script.py", role=sagemaker.get_execution_role(), base_job_name="debugger-demo", instance_count=1, instance_type="ml.p3.2xlarge", framework_version="1.5-1", # Debugger-specific parameters debugger_hook_config=debugger_hook_config, rules=rules ) estimator.fit(wait=False)
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 CollectionConfig, DebuggerHookConfig, Rule, rule_configs debugger_hook_config=DebuggerHookConfig(...) rules=[ Rule.sagemaker(rule_configs.built_in_rule()) ] 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 debugger_hook_config=debugger_hook_config, rules=rules ) estimator.fit(wait=False)

Configure os seguintes parâmetros para ativar o SageMaker Debugger:

  • debugger_hook_config(um objeto de DebuggerHookConfig) — Necessário para ativar o gancho no script de treinamento adaptado duranteEtapa 1: Adapte seu script de treinamento para registrar um hook, configurar o iniciador de SageMaker treinamento (estimador) para coletar tensores de saída de seu trabalho de treinamento e salvar os tensores em seu bucket S3 protegido ou em sua máquina local. Para aprender a configurar o parâmetro debugger_hook_config, consulte Configurar o SageMaker depurador para salvar tensores.

  • rules(uma lista de Ruleobjetos) — Configure esse parâmetro para ativar as regras internas do SageMaker Debugger que você deseja executar em tempo real. As regras integradas são lógicas que depuram automaticamente o progresso do treinamento do seu modelo e encontram problemas de treinamento analisando os tensores de saída salvos em seu bucket seguro do S3. Para aprender a configurar o parâmetro rules, consulte Configurar regras integradas do Depurador. Para encontrar uma lista completa de regras integradas para depuração de tensores de saída, consulte Regra do Debugger. Se você quiser criar sua própria lógica para detectar problemas de treinamento, consulte Crie regras personalizadas do Debugger para Análise de trabalho de treinamento.

    nota

    As regras integradas estão disponíveis somente por meio de instâncias SageMaker de treinamento. Você não pode usá-los no modo local.

  • tensorboard_output_config(um objeto de TensorBoardOutputConfig) — Configure o SageMaker Debugger para coletar tensores de saída no formato TensorBoard compatível e salvar no caminho de saída do S3 especificado no objeto. TensorBoardOutputConfig Para saber mais, consulte Visualize os tensores de saída do Amazon SageMaker Debugger em TensorBoard.

    nota

    O tensorboard_output_config deve ser configurado com o debugger_hook_config parâmetro, o que também exige que você adapte seu script de treinamento adicionando o hook sagemaker-debugger.

nota

SageMaker O depurador salva com segurança os tensores de saída em subpastas do seu bucket do S3. Por exemplo, o formato do bucket padrão do S3 URI em sua conta és3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Há duas subpastas criadas pelo SageMaker Debugger: e. debug-output rule-output Se você adicionar o tensorboard_output_config parâmetro, também encontrará a pasta tensorboard-output.

Consulte os tópicos a seguir para encontrar mais exemplos de como configurar os parâmetros específicos do Debugger em detalhes.