Konfigurasikan estimator dengan parameter untuk pembuatan profil dasar menggunakan modul Amazon SageMaker Debugger Python - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasikan estimator dengan parameter untuk pembuatan profil dasar menggunakan modul Amazon SageMaker Debugger Python

Secara default, pembuatan profil dasar SageMaker Debugger aktif secara default dan memantau metrik pemanfaatan sumber daya, seperti pemanfaatan CPU, pemanfaatan GPU, pemanfaatan memori GPU, Jaringan, dan waktu tunggu I/O, dari semua pekerjaan pelatihan yang diajukan menggunakan Amazon Python SDK. SageMaker SageMaker SageMaker Debugger mengumpulkan metrik pemanfaatan sumber daya ini setiap 500 milidetik. Anda tidak perlu membuat perubahan tambahan dalam kode, skrip pelatihan, atau peluncur pekerjaan untuk melacak pemanfaatan sumber daya dasar. Jika Anda ingin mengakses dasbor metrik pemanfaatan sumber daya dari pekerjaan pelatihan Anda di SageMaker Studio, Anda dapat melompat ke halaman. Amazon SageMaker Debugger UI di Eksperimen Klasik Amazon SageMaker Studio

Jika Anda ingin mengubah interval pengumpulan metrik untuk pembuatan profil dasar, Anda dapat menentukan parameter khusus Debugger saat membuat peluncur pekerjaan SageMaker pelatihan menggunakan SageMaker Python SDK,, atau (CLI). AWS SDK for Python (Boto3) AWS Command Line Interface Dalam panduan ini, kami fokus pada cara mengubah opsi pembuatan profil menggunakan Amazon SageMaker Python SDK.

Jika Anda ingin mengaktifkan aturan yang mendeteksi masalah pemanfaatan sumber daya sistem secara otomatis, Anda dapat menambahkan rules parameter di objek estimator untuk mengaktifkan aturan.

penting

Untuk menggunakan fitur SageMaker Debugger terbaru, Anda perlu memutakhirkan SageMaker Python SDK dan pustaka klien. SMDebug Di kernel IPython Anda, Jupyter Notebook, JupyterLab atau lingkungan, jalankan kode berikut untuk menginstal versi terbaru dari pustaka dan restart kernel.

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

Template kode untuk mengonfigurasi objek SageMaker estimator dengan modul SageMaker Debugger Python di Python SDK SageMaker

Untuk menyesuaikan konfigurasi profil dasar (profiler_config) atau menambahkan aturan profiler (rules), pilih salah satu tab untuk mendapatkan templat untuk menyiapkan estimator. SageMaker Di halaman berikutnya, Anda dapat menemukan informasi lebih lanjut tentang cara mengkonfigurasi dua parameter.

catatan

Contoh kode berikut tidak dapat dieksekusi secara langsung. Lanjutkan ke bagian berikutnya untuk mempelajari cara mengkonfigurasi setiap parameter.

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)
catatan

Untuk MxNet, saat mengkonfigurasi parameter, Anda hanya dapat mengonfigurasi profiler_config untuk pemantauan sistem. Metrik kerangka kerja profil tidak didukung untuk 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)
catatan

Untuk XGBoost, saat mengonfigurasi profiler_config parameter, Anda hanya dapat mengonfigurasi untuk pemantauan sistem. Metrik kerangka kerja profil tidak didukung untuk 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)

Berikut ini memberikan deskripsi singkat tentang parameter.

  • profiler_config— Konfigurasikan Debugger untuk mengumpulkan metrik sistem dan metrik kerangka kerja dari pekerjaan pelatihan Anda dan simpan ke URI bucket S3 atau mesin lokal Anda yang aman. Anda dapat mengatur seberapa sering atau longgar mengumpulkan metrik sistem. Untuk mempelajari cara mengkonfigurasi profiler_config parameter, lihat Konfigurasikan pengaturan untuk pembuatan profil dasar pemanfaatan sumber daya sistem danKonfigurasikan untuk pembuatan profil kerangka kerja.

  • rules— Konfigurasikan parameter ini untuk mengaktifkan aturan bawaan SageMaker Debugger yang ingin Anda jalankan secara paralel. Pastikan bahwa pekerjaan pelatihan Anda memiliki akses ke bucket S3 ini. Aturan berjalan pada wadah pemrosesan dan secara otomatis menganalisis pekerjaan pelatihan Anda untuk menemukan masalah kinerja komputasi dan operasional. ProfilerReportAturan ini adalah aturan paling terintegrasi yang menjalankan semua aturan pembuatan profil bawaan dan menyimpan hasil pembuatan profil sebagai laporan ke dalam bucket S3 aman Anda. Untuk mempelajari cara mengkonfigurasi rules parameter, lihatKonfigurasikan aturan profiler bawaan yang dikelola oleh Amazon SageMaker Debugger.

catatan

Debugger menyimpan data keluaran dengan aman di subfolder bucket S3 default Anda. Misalnya, format URI bucket S3 default adalahs3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/. Ada tiga subfolder yang dibuat oleh Debugger:debug-output,, profiler-output dan. rule-output Anda juga dapat mengambil URI bucket S3 default menggunakan classmethods estimator. SageMaker

Lihat topik berikut untuk mengetahui cara mengonfigurasi parameter khusus Debugger secara detail.