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

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 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 accedere alla dashboard delle metriche sull'utilizzo delle risorse del tuo lavoro di formazione in Studio, puoi passare al. SageMaker Esperimenti dell'interfaccia utente di Amazon SageMaker Debugger in Amazon Studio Classic SageMaker

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.

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 estimatore con i moduli SageMaker Debugger Python nell'SDK 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. 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 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

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

  • profiler_config— Configura Debugger per raccogliere i parametri di sistema e i parametri del framework dal processo di addestramento e salvarli nell'URI del bucket S3 protetto o nel computer locale. Puoi impostare la frequenza o la frequenza di raccolta dei parametri di sistema. Per informazioni su come configurare il parametro profiler_config, consulta Configurazione delle impostazioni per la profilazione di base dell'utilizzo delle risorse di sistema e Configurazione per la profilazione del framework.

  • rules— Configurare questo parametro per attivare le regole integrate del SageMaker Debugger che si desidera eseguire in parallelo. Assicurati che il tuo processo di addestramento abbia accesso a questo bucket S3. Le regole si basano sui container di elaborazione e analizzano automaticamente il processo di addestramento per individuare problemi di prestazioni computazionali e operative. La regola ProfilerReport è la regola più integrata che esegue tutte le regole di profilazione integrate e salva i risultati della profilazione come report nel tuo bucket S3 protetto. Per informazioni su come configurare il parametro rules, consulta Configura le regole di profilazione integrate gestite da Amazon SageMaker Debugger.

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 gli URI predefiniti del bucket S3 utilizzando i metodi della classe estimator. SageMaker

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