Configurazione dello stimatore 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à.

Configurazione dello stimatore con parametri per la profilazione di base utilizzando i moduli Amazon SageMaker Debugger Python

Per impostazione predefinita, la profilazione di base di SageMaker Debugger è 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 lavori di formazione inviati utilizzando Amazon Python SDK. SageMaker SageMaker SageMaker Debugger 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 del Debugger durante la creazione di un training SageMaker job launcher utilizzando Python SDK o (CLI). SageMaker AWS SDK for Python (Boto3) AWS Command Line Interface In questa guida, ci concentriamo su come modificare le opzioni di profilazione utilizzando l'SDK Amazon SageMaker Python. Questa pagina fornisce modelli di riferimento per la configurazione di questo oggetto estimatore.

Se desideri accedere alla dashboard delle metriche di utilizzo delle risorse del tuo lavoro di formazione in SageMaker Studio, puoi passare al. Esperimenti dell'interfaccia utente di Amazon SageMaker Debugger in Amazon Studio Classic SageMaker

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 SageMaker Debugger, è necessario aggiornare l'SDK SageMaker Python e la libreria client. SMDebug Nel kernel IPython, Jupyter Notebook JupyterLab o nell'ambiente, 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 SageMaker AI estimator con i moduli SageMaker Debugger Python nell'SDK AI Python SageMaker

Per modificare la configurazione di base della profilazione (profiler_config) o aggiungere le regole del profiler (rules), scegli una delle schede per ottenere il modello per configurare uno stimatore AI. SageMaker 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

Infatti MXNet, quando si configura il profiler_config parametro, è possibile configurarlo solo per il monitoraggio del sistema. Le metriche del framework di profilazione non sono supportate 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

Infatti XGBoost, quando si configura il profiler_config parametro, è possibile configurarlo solo per il monitoraggio del sistema. Le metriche del framework di profilazione non sono supportate 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. Puoi anche recuperare il bucket URIs S3 predefinito utilizzando i metodi della classe AI estimator. SageMaker

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