View a markdown version of this page

Akses data statistik profil Python - Amazon SageMaker AI

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

Akses data statistik profil Python

catatan

Pemberitahuan akhir dukungan: Pada 30 Juni 2027, dukungan untuk Amazon SageMaker Profiler AWS akan berakhir. Setelah 30 Juni 2027, Anda tidak akan lagi dapat mengakses konsol Profiler atau sumber daya Profiler. Untuk informasi selengkapnya, lihat Perubahan ketersediaan profiler.

Profil Python menyediakan metrik kerangka kerja yang terkait dengan fungsi dan operator Python dalam skrip pelatihan Anda dan kerangka kerja pembelajaran mendalam SageMaker AI.

Mode dan Fase Pelatihan untuk Profil Python

Untuk membuat profil interval tertentu selama pelatihan untuk mempartisi statistik untuk masing-masing interval ini, Debugger menyediakan alat untuk mengatur mode dan fase.

Untuk mode pelatihan, gunakan PythonProfileModes kelas berikut:

from smdebug.profiler.python_profile_utils import PythonProfileModes

Kelas ini menyediakan opsi berikut:

  • PythonProfileModes.TRAIN— Gunakan jika Anda ingin membuat profil langkah-langkah target dalam fase pelatihan. Opsi mode ini hanya tersedia untuk TensorFlow.

  • PythonProfileModes.EVAL— Gunakan jika Anda ingin membuat profil langkah-langkah target dalam fase evaluasi. Opsi mode ini hanya tersedia untuk TensorFlow.

  • PythonProfileModes.PREDICT— Gunakan jika Anda ingin membuat profil langkah-langkah target dalam fase prediksi. Opsi mode ini hanya tersedia untuk TensorFlow.

  • PythonProfileModes.GLOBAL— Gunakan jika Anda ingin membuat profil langkah-langkah target dalam fase global, yang mencakup tiga fase sebelumnya. Opsi mode ini hanya tersedia untuk PyTorch.

  • PythonProfileModes.PRE_STEP_ZERO— Gunakan jika Anda ingin membuat profil langkah-langkah target dalam tahap inisialisasi sebelum langkah pelatihan pertama dari zaman pertama dimulai. Fase ini mencakup pengiriman pekerjaan awal, mengunggah skrip pelatihan ke instans EC2, menyiapkan instans EC2, dan mengunduh data input. Opsi mode ini tersedia untuk keduanya TensorFlow dan PyTorch.

  • PythonProfileModes.POST_HOOK_CLOSE— Gunakan jika Anda ingin membuat profil langkah-langkah target pada tahap finalisasi setelah pekerjaan pelatihan selesai dan kait Debugger ditutup. Fase ini mencakup data profil sementara pekerjaan pelatihan diselesaikan dan diselesaikan. Opsi mode ini tersedia untuk keduanya TensorFlow dan PyTorch.

Untuk fase pelatihan, gunakan StepPhase kelas berikut:

from smdebug.profiler.analysis.utils.python_profile_analysis_utils import StepPhase

Kelas ini menyediakan opsi berikut:

  • StepPhase.START- Gunakan untuk menentukan titik awal fase inisialisasi.

  • StepPhase.STEP_START— Gunakan untuk menentukan langkah awal dari fase pelatihan.

  • StepPhase.FORWARD_PASS_END— Gunakan untuk menentukan langkah-langkah di mana pass maju berakhir. Opsi ini hanya tersedia untuk PyTorch.

  • StepPhase.STEP_END— Gunakan untuk menentukan langkah akhir dalam fase pelatihan. Opsi ini hanya tersedia untuk TensorFlow.

  • StepPhase.END— Gunakan untuk menentukan titik akhir fase finalisasi (post-hook-close). Jika hook callback tidak ditutup, pembuatan profil fase finalisasi tidak terjadi.

Alat Analisis Profil Python

Debugger mendukung pembuatan profil Python dengan dua alat pembuatan profil:

  • CProfile — Profiler python standar. cProfile mengumpulkan metrik kerangka kerja pada waktu CPU untuk setiap fungsi yang dipanggil saat pembuatan profil diaktifkan.

  • Pyinstrument — Ini adalah peristiwa profil pengambilan sampel profiler Python overhead rendah setiap milidetik.

Untuk mempelajari lebih lanjut tentang opsi pembuatan profil Python dan apa yang dikumpulkan, lihatPemantauan sistem default dan profil kerangka kerja yang disesuaikan dengan opsi profil yang berbeda.

Metode berikut dari PyinstrumentAnalysis kelasPythonProfileAnalysis,cProfileAnalysis, disediakan untuk mengambil dan menganalisis data profil Python. Setiap fungsi memuat data terbaru dari URI S3 default.

from smdebug.profiler.analysis.python_profile_analysis import PythonProfileAnalysis, cProfileAnalysis, PyinstrumentAnalysis

Untuk mengatur objek profil Python untuk analisis, gunakan c ProfileAnalysis atau PyinstrumentAnalysis kelas seperti yang ditunjukkan dalam kode contoh berikut. Ini menunjukkan cara mengatur cProfileAnalysis objek, dan jika Anda ingin menggunakanPyinstrumentAnalysis, ganti nama kelas.

python_analysis = cProfileAnalysis( local_profile_dir=tf_python_stats_dir, s3_path=tj.profiler_s3_output_path )

Metode berikut tersedia untuk PyinstrumentAnalysis kelas cProfileAnalysis dan untuk mengambil data statistik profil Python:

  • python_analysis.fetch_python_profile_stats_by_time(start_time_since_epoch_in_secs, end_time_since_epoch_in_secs)— Mengambil waktu mulai dan waktu akhir, dan mengembalikan statistik fungsi statistik langkah yang waktu mulai atau berakhirnya tumpang tindih dengan interval yang disediakan.

  • python_analysis.fetch_python_profile_stats_by_step(start_step, end_step, mode, start_phase, end_phase)— Mengambil langkah awal dan langkah akhir dan mengembalikan statistik fungsi dari semua statistik langkah yang diprofilkannya step memuaskanstart_step <= step < end_step.

    • start_stepdan end_step (str) — Tentukan langkah awal dan langkah akhir untuk mengambil data statistik profil Python.

    • mode(str) — Tentukan mode pekerjaan pelatihan menggunakan kelas PythonProfileModes enumerator. Nilai default-nya PythonProfileModes.TRAIN. Opsi yang tersedia disediakan di Mode Pelatihan dan Fase untuk Profil Python bagian.

    • start_phase(str) — Tentukan fase awal pada langkah target menggunakan kelas StepPhase enumerator. Parameter ini memungkinkan pembuatan profil antara fase pelatihan yang berbeda. Nilai default-nya StepPhase.STEP_START. Opsi yang tersedia disediakan di Mode Pelatihan dan Fase untuk Profil Python bagian.

    • end_phase(str) — Tentukan fase akhir pada langkah target menggunakan kelas StepPhase enumerator. Parameter ini mengatur fase akhir pelatihan. Opsi yang tersedia sama dengan yang untuk start_phase parameter. Nilai default-nya StepPhase.STEP_END. Opsi yang tersedia disediakan di Mode Pelatihan dan Fase untuk Profil Python bagian.

  • python_analysis.fetch_profile_stats_between_modes(start_mode, end_mode)— Mengambil statistik dari profil Python antara mode awal dan akhir.

  • python_analysis.fetch_pre_step_zero_profile_stats()— Mengambil statistik dari profil Python hingga langkah 0.

  • python_analysis.fetch_post_hook_close_profile_stats()— Mengambil statistik dari profil Python setelah hook ditutup.

  • python_analysis.list_profile_stats()— Meng DataFrame embalikan statistik profil Python. Setiap baris menyimpan metadata untuk setiap contoh profil dan file statistik yang sesuai (satu per langkah).

  • python_analysis.list_available_node_ids()— Mengembalikan daftar ID node yang tersedia untuk statistik profil Python.

Metode khusus cProfileAnalysis kelas:

  • fetch_profile_stats_by_training_phase()— Mengambil dan menggabungkan statistik profil Python untuk setiap kemungkinan kombinasi mode awal dan akhir. Misalnya, jika fase pelatihan dan validasi dilakukan saat profil terperinci diaktifkan, kombinasinya adalah(PRE_STEP_ZERO, TRAIN),(TRAIN, TRAIN),(TRAIN, EVAL),(EVAL, EVAL), dan(EVAL, POST_HOOK_CLOSE). Semua file statistik dalam masing-masing kombinasi ini digabungkan.

  • fetch_profile_stats_by_job_phase()— Mengambil dan menggabungkan statistik profil Python berdasarkan fase pekerjaan. Fase pekerjaan adalah initialization (pembuatan profil hingga langkah 0), training_loop (pelatihan dan validasi), dan finalization (pembuatan profil setelah kait ditutup).