Configura uno strumento di stima con parametri per la profilazione di base utilizzando i moduli Amazon SageMaker Debugger Python - Amazon SageMaker AI

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

Configura uno strumento di stima con parametri per la profilazione di base utilizzando i moduli Amazon SageMaker Debugger Python

Per impostazione predefinita, la profilazione di base di Debugger SageMaker è attiva per impostazione predefinita e monitora i parametri di utilizzo delle risorse, come l'utilizzo della CPU, l'utilizzo della GPU, l'utilizzo della memoria GPU, la rete e il tempo di attesa I/O, di tutti i processi di addestramento SageMaker inviati utilizzando Amazon SageMaker Python SDK. Debugger SageMaker raccoglie questi parametri di utilizzo delle risorse ogni 500 millisecondi. Non è necessario apportare ulteriori modifiche al codice, allo script di addestramento o all’utilità di avvio del processo per tenere traccia dell'utilizzo di base delle risorse. Se desideri modificare l'intervallo di raccolta delle metriche per la profilazione di base, puoi specificare parametri specifici di Debugger durante la creazione di un’utilità di avvio del processo di addestramento SageMaker utilizzando SageMaker Python SDK o (CLI). AWS SDK per Python (Boto3) AWS Command Line Interface In questa guida, ci concentriamo su come modificare le opzioni di profilazione utilizzando Amazon SageMaker Python SDK Questa pagina fornisce modelli di riferimento per la configurazione di questo oggetto di stima.

Se desideri accedere alla dashboard delle metriche sull'utilizzo delle risorse del tuo processo di addestramento in SageMaker Studio, puoi passare al Interfaccia utente di Amazon SageMaker Debugger in Amazon SageMaker Studio Classic Experiments.

Se desideri attivare automaticamente le regole che rilevano automaticamente i problemi di utilizzo delle risorse di sistema, puoi aggiungere il parametro rules nell'oggetto dello strumento di valutazione per l'attivazione delle regole.

Importante

Per utilizzare le funzionalità più recenti di Debugegr SageMaker, è necessario aggiornare SageMaker Python SDK e la libreria client SMDebug. Nel kernel IPython, notebook Jupyter, o nell'ambiente JupyterLab, esegui il codice seguente per installare le versioni più recenti delle librerie e riavviare il kernel.

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

Modello di codice per la configurazione di un oggetto dello strumento di stima SageMaker AI con i moduli SageMaker Debugger Python in SageMaker AI Python SDK

Per modificare la configurazione della profilazione di base (profiler_config) o aggiungere le regole del profiler (rules), scegli una delle schede per ottenere il modello per configurare uno strumento di stima SageMaker AI. Nelle pagine successive, puoi trovare ulteriori informazioni su come configurare i due parametri.

Nota

I seguenti esempi di codice non sono direttamente eseguibili. Passa alle sezioni successive per scoprire come configurare ogni parametro.

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

Per MXNet, quando si configura il parametro profiler_config, è possibile configurare solo per il monitoraggio del sistema. I parametri del framework di profilazione non sono supportati per 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

Per XGBoost, quando si configura il parametro profiler_config, è possibile configurare solo per il monitoraggio del sistema. I parametri del framework di profilazione non sono supportati per 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)

Di seguito vengono fornite brevi descrizioni dei parametri.

Nota

Debugger salva in modo sicuro i dati di output nelle sottocartelle del bucket S3 predefinito. Ad esempio, il formato dell'URI del bucket S3 predefinito è s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Esistono tre sottocartelle create da Debugger: debug-output, profiler-output e rule-output. È inoltre possibile recuperare gli URI predefiniti del bucket S3 utilizzando i metodi della classe dello strumento di stima SageMaker AI.

Consulta i seguenti argomenti per scoprire come configurare in dettaglio i parametri specifici di Debugger.