Konfigurasikan untuk pembuatan profil kerangka kerja - Amazon SageMaker

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

Konfigurasikan untuk pembuatan profil kerangka kerja

Awas

Untuk mendukung Amazon SageMaker Profiler, SageMaker Debugger menghentikan fitur pembuatan profil kerangka kerja mulai dari 2.11 dan 2.0. TensorFlow PyTorch Anda masih dapat menggunakan fitur ini di versi kerangka kerja dan SDK sebelumnya sebagai berikut.

  • SageMaker Python SDK <= v2.130.0

  • PyTorch >= v1.6.0, < v2.0

  • TensorFlow >= v2.3.1, < v2.11

Lihat juga 16 Maret 2023.

Untuk mengaktifkan pembuatan profil kerangka kerja Debugger, konfigurasikan framework_profile_params parameter saat Anda membuat estimator. Pemprofilan kerangka kerja debugger mengumpulkan metrik kerangka kerja, seperti data dari tahap inisialisasi, proses pemuat data, operator Python dari kerangka kerja pembelajaran mendalam dan skrip pelatihan, pembuatan profil terperinci di dalam dan di antara langkah-langkah, dengan opsi CProfile atau Pyinstrument. Menggunakan FrameworkProfile kelas, Anda dapat mengonfigurasi opsi pembuatan profil kerangka kustom.

catatan

Sebelum memulai dengan pembuatan profil kerangka kerja Debugger, verifikasi bahwa kerangka kerja yang digunakan untuk membangun model Anda didukung oleh Debugger untuk pembuatan profil kerangka kerja. Untuk informasi selengkapnya, lihat Kerangka Kerja dan Algoritma yang Didukung.

Debugger menyimpan metrik kerangka kerja dalam bucket S3 default. Format URI bucket S3 default adalahs3://sagemaker-<region>-<12digit_account_id>/<training-job-name>/profiler-output/.

Mulai pekerjaan pelatihan dengan pembuatan profil kerangka kerja default

Kode contoh berikut adalah pengaturan profiler_config parameter paling sederhana untuk memulai pemantauan sistem default dan pembuatan profil kerangka kerja default. FrameworkProfileKelas dalam kode contoh berikut memulai profil kerangka kerja default ketika pekerjaan pelatihan dimulai. Pemprofilan kerangka kerja debugger mencakup opsi berikut: pembuatan profil terperinci, profil pemuat data, dan profil Python.

from sagemaker.debugger import ProfilerConfig, FrameworkProfile profiler_config=ProfilerConfig( framework_profile_params=FrameworkProfile() )

Dengan konfigurasi profiler_config parameter ini, Debugger memanggil pengaturan default pemantauan dan pembuatan profil. Debugger memantau metrik sistem setiap 500 milidetik; profil langkah kelima dengan opsi profil terperinci; langkah ketujuh dengan opsi profil pemuat data; dan langkah kesembilan, kesepuluh, dan kesebelas dengan opsi profil Python.

Untuk menemukan opsi konfigurasi profil yang tersedia, pengaturan parameter default, dan contoh cara mengonfigurasinya, lihat Mulai pekerjaan pelatihan dengan pemantauan sistem default dan pembuatan profil kerangka kerja yang disesuaikan dengan opsi pembuatan profil yang berbeda dan SageMaker Debugger API — FrameworkProfile di Amazon Python SageMaker SDK.

Jika Anda ingin mengubah interval pemantauan sistem dan mengaktifkan profil kerangka kerja default, Anda dapat menentukan system_monitor_interval_millis parameter secara eksplisit dengan parameter. framework_profile_params Misalnya, untuk memantau setiap 1000 milidetik dan mengaktifkan profil kerangka kerja default, gunakan kode contoh berikut.

from sagemaker.debugger import ProfilerConfig, FrameworkProfile profiler_config=ProfilerConfig( system_monitor_interval_millis=1000, framework_profile_params=FrameworkProfile() )

Untuk informasi selengkapnya tentang FrameworkProfile class, lihat API SageMaker Debugger — FrameworkProfile di Amazon Python SageMaker SDK.

Mulai pekerjaan pelatihan dengan pemantauan sistem default dan pembuatan profil kerangka kerja yang disesuaikan untuk langkah target atau rentang waktu target

Jika Anda ingin menentukan langkah target atau interval waktu target untuk membuat profil pekerjaan pelatihan Anda, Anda perlu menentukan parameter untuk FrameworkProfile kelas. Contoh kode berikut menunjukkan cara menentukan rentang target untuk pembuatan profil bersama dengan pemantauan sistem.

  • Untuk rentang langkah target

    Dengan konfigurasi contoh berikut, Debugger memantau seluruh pekerjaan pelatihan setiap 500 milidetik (pemantauan default) dan profil rentang langkah target dari langkah 5 hingga langkah 15 (untuk 10 langkah).

    from sagemaker.debugger import ProfilerConfig, FrameworkProfile profiler_config=ProfilerConfig( framework_profile_params=FrameworkProfile(start_step=5, num_steps=10) )

    Dengan konfigurasi contoh berikut, Debugger memantau seluruh pekerjaan pelatihan setiap 1000 milidetik dan profil rentang langkah target dari langkah 5 hingga langkah 15 (untuk 10 langkah).

    from sagemaker.debugger import ProfilerConfig, FrameworkProfile profiler_config=ProfilerConfig( system_monitor_interval_millis=1000, framework_profile_params=FrameworkProfile(start_step=5, num_steps=10) )
  • Untuk rentang waktu target

    Dengan konfigurasi contoh berikut, Debugger memantau seluruh pekerjaan pelatihan setiap 500 milidetik (pemantauan default) dan profil rentang waktu target dari waktu Unix saat ini selama 600 detik.

    import time from sagemaker.debugger import ProfilerConfig, FrameworkProfile profiler_config=ProfilerConfig( framework_profile_params=FrameworkProfile(start_unix_time=int(time.time()), duration=600) )

    Dengan konfigurasi contoh berikut, Debugger memantau seluruh pekerjaan pelatihan setiap 1000 milidetik dan profil rentang waktu target dari waktu Unix saat ini selama 600 detik.

    import time from sagemaker.debugger import ProfilerConfig, FrameworkProfile profiler_config=ProfilerConfig( system_monitor_interval_millis=1000, framework_profile_params=FrameworkProfile(start_unix_time=int(time.time()), duration=600) )

    Pembuatan profil kerangka kerja dilakukan untuk semua opsi pembuatan profil pada langkah target atau rentang waktu.

    Untuk menemukan informasi selengkapnya tentang opsi pembuatan profil yang tersedia, lihat API SageMaker Debugger — FrameworkProfile di Amazon Python SageMaker SDK.

    Bagian selanjutnya menunjukkan kepada Anda cara membuat skrip opsi profil yang tersedia.

Mulai pekerjaan pelatihan dengan pemantauan sistem default dan pembuatan profil kerangka kerja yang disesuaikan dengan opsi pembuatan profil yang berbeda

Anda dapat menggunakan kelas konfigurasi profiling berikut untuk mengelola opsi pembuatan profil kerangka kerja:

  • DetailedProfilingConfig - Tentukan langkah target atau rentang waktu untuk memprofilkan operasi kerangka kerja menggunakan profiler kerangka kerja asli (profiler dan TensorFlow profiler). PyTorch Misalnya, jika menggunakan TensorFlow, kait Debugger memungkinkan TensorFlow profiler untuk mengumpulkan TensorFlow metrik kerangka kerja khusus. Pembuatan profil terperinci memungkinkan Anda untuk membuat profil semua operator kerangka kerja pada tahap awal (sebelum langkah pertama), dalam beberapa langkah, dan di antara langkah-langkah pekerjaan pelatihan.

    catatan

    Profil terperinci dapat secara signifikan meningkatkan konsumsi memori GPU. Kami tidak menyarankan mengaktifkan profil terperinci selama lebih dari beberapa langkah.

  • DataloaderProfilingConfig — Tentukan langkah target atau rentang waktu untuk membuat profil proses pemuat data kerangka pembelajaran mendalam. Debugger mengumpulkan setiap peristiwa pemuat data dari kerangka kerja.

    catatan

    Pembuatan profil pemuat data dapat menurunkan kinerja pelatihan sambil mengumpulkan informasi dari pemuat data. Kami tidak menyarankan untuk mengaktifkan profil pemuat data selama lebih dari beberapa langkah.

    Debugger telah dikonfigurasi sebelumnya untuk membuat anotasi proses pemuat data hanya untuk wadah pembelajaran mendalam. AWS Debugger tidak dapat memprofilkan proses pemuat data dari wadah pelatihan khusus atau eksternal lainnya.

  • PythonProfilingConfig - Tentukan langkah target atau rentang waktu untuk memprofilkan fungsi Python. Anda juga dapat memilih antara dua profiler Python: CProfile dan Pyinstrument.

    • CProfile — Profiler Python standar. cProfile mengumpulkan informasi untuk setiap operator Python yang dipanggil selama pelatihan. Dengan CProfile, Debugger menghemat waktu kumulatif dan anotasi untuk setiap panggilan fungsi, memberikan detail lengkap tentang fungsi Python. Dalam pembelajaran mendalam, misalnya, fungsi yang paling sering disebut mungkin adalah filter convolutional dan operator backward pass, dan profil CProfile masing-masing. Untuk opsi CProfile, Anda dapat memilih opsi timer lebih lanjut: total waktu, waktu CPU, dan waktu off-CPU. Meskipun Anda dapat membuat profil setiap panggilan fungsi yang dijalankan pada prosesor (baik CPU dan GPU) dalam waktu CPU, Anda juga dapat mengidentifikasi I/O atau kemacetan jaringan dengan opsi waktu off-CPU. Defaultnya adalah total waktu, dan Debugger memprofilkan waktu CPU dan off-CPU. Dengan CProfile, Anda dapat menelusuri setiap fungsi saat menganalisis data profil.

    • Pyinstrument — Pyinstrument adalah profiler Python overhead rendah yang bekerja berdasarkan pengambilan sampel. Dengan opsi Pyinstrument, Debugger mengambil sampel pembuatan profil peristiwa setiap milidetik. Karena Pyinstrument mengukur waktu jam dinding yang telah berlalu alih-alih waktu CPU, opsi Pyinstrument dapat menjadi pilihan yang lebih baik daripada opsi CProfile untuk mengurangi kebisingan profil (menyaring panggilan fungsi yang tidak relevan yang secara kumulatif cepat) dan menangkap operator yang sebenarnya komputasi intensif (secara kumulatif lambat) untuk melatih model Anda. Dengan Pyinstrument, Anda dapat melihat pohon panggilan fungsi dan lebih memahami struktur dan akar penyebab kelambatan.

    catatan

    Mengaktifkan pembuatan profil Python dapat memperlambat waktu pelatihan secara keseluruhan. cProfile memprofilkan operator Python yang paling sering disebut di setiap panggilan, sehingga waktu pemrosesan pada pembuatan profil meningkat sehubungan dengan jumlah panggilan. Untuk Pyinstrument, waktu pembuatan profil kumulatif meningkat sehubungan dengan waktu karena mekanisme pengambilan sampelnya.

Contoh konfigurasi berikut menunjukkan struktur lengkap saat Anda menggunakan opsi profil yang berbeda dengan nilai yang ditentukan.

import time from sagemaker.debugger import (ProfilerConfig, FrameworkProfile, DetailedProfilingConfig, DataloaderProfilingConfig, PythonProfilingConfig, PythonProfiler, cProfileTimer) profiler_config=ProfilerConfig( system_monitor_interval_millis=500, framework_profile_params=FrameworkProfile( detailed_profiling_config=DetailedProfilingConfig( start_step=5, num_steps=1 ), dataloader_profiling_config=DataloaderProfilingConfig( start_step=7, num_steps=1 ), python_profiling_config=PythonProfilingConfig( start_step=9, num_steps=1, python_profiler=PythonProfiler.CPROFILE, cprofile_timer=cProfileTimer.TOTAL_TIME ) ) )

Untuk informasi selengkapnya tentang opsi pembuatan profil yang tersedia, lihat DetailedProfilingConfig, DataloaderProfilingConfig, PythonProfilingdan Config di SageMaker Amazon Python SDK.