Hari ini, kami dengan bangga mengumumkan pratinjaunya Profiler Amazon SageMaker, kemampuan Amazon SageMaker yang memberikan gambaran mendetail tentang sumber daya komputasi AWS yang disediakan selama pelatihan model pembelajaran mendalam di SageMaker. Dengan SageMaker Profiler, Anda dapat melacak semua aktivitas di CPU dan GPU, seperti penggunaan CPU dan GPU, pengoperasian kernel di GPU, peluncuran kernel di CPU, operasi sinkronisasi, operasi memori di seluruh GPU, latensi antara peluncuran kernel dan proses terkait, serta transfer data antara CPU dan GPU. Dalam postingan ini, kami memandu Anda melalui kemampuan SageMaker Profiler.
SageMaker Profiler menyediakan modul Python untuk membuat anotasi skrip pelatihan PyTorch atau TensorFlow dan mengaktifkan SageMaker Profiler. Ia juga menawarkan antarmuka pengguna (UI) yang memvisualisasikan profil, ringkasan statistik peristiwa yang diprofilkan, dan garis waktu tugas pelatihan untuk melacak dan memahami hubungan waktu peristiwa antara GPU dan CPU.
Kebutuhan untuk membuat profil pekerjaan pelatihan
Dengan maraknya deep learning (DL), machine learning (ML) telah menjadi komputasi dan data yang intensif, yang biasanya memerlukan cluster multi-node dan multi-GPU. Seiring bertambahnya ukuran model canggih hingga triliunan parameter, kompleksitas komputasi dan biayanya juga meningkat pesat. Praktisi ML harus mengatasi tantangan umum dalam pemanfaatan sumber daya secara efisien saat melatih model besar tersebut. Hal ini terutama terlihat pada model bahasa besar (LLM), yang biasanya memiliki miliaran parameter dan oleh karena itu memerlukan cluster GPU multi-node yang besar untuk melatihnya secara efisien.
Saat melatih model ini pada kluster komputasi besar, kita dapat menghadapi tantangan pengoptimalan sumber daya komputasi seperti kemacetan I/O, latensi peluncuran kernel, batas memori, dan pemanfaatan sumber daya yang rendah. Jika konfigurasi tugas pelatihan tidak dioptimalkan, tantangan ini dapat mengakibatkan pemanfaatan perangkat keras yang tidak efisien dan waktu pelatihan yang lebih lama atau pelaksanaan pelatihan yang tidak lengkap, sehingga meningkatkan keseluruhan biaya dan jadwal proyek.
Prasyarat
Berikut ini adalah prasyarat untuk mulai menggunakan SageMaker Profiler:
- Domain SageMaker di akun AWS Anda โ Untuk petunjuk tentang menyiapkan domain, lihat Onboarding ke Amazon SageMaker Domain menggunakan pengaturan cepat. Anda juga perlu menambahkan profil pengguna domain untuk pengguna individu untuk mengakses aplikasi UI SageMaker Profiler. Untuk informasi lebih lanjut, lihat Menambah dan menghapus profil pengguna Domain SageMaker.
- izin โ Daftar berikut adalah kumpulan izin minimum yang harus ditetapkan ke peran eksekusi untuk menggunakan aplikasi UI SageMaker Profiler:
sagemaker:CreateApp
sagemaker:DeleteApp
sagemaker:DescribeTrainingJob
sagemaker:SearchTrainingJobs
s3:GetObject
s3:ListBucket
Mempersiapkan dan menjalankan tugas pelatihan dengan SageMaker Profiler
Untuk mulai menangkap kernel yang dijalankan pada GPU saat tugas pelatihan sedang berjalan, modifikasi skrip pelatihan Anda menggunakan modul SageMaker Profiler Python. Impor perpustakaan dan tambahkan start_profiling()
dan stop_profiling()
metode untuk menentukan awal dan akhir pembuatan profil. Anda juga dapat menggunakan anotasi khusus opsional untuk menambahkan penanda dalam skrip pelatihan guna memvisualisasikan aktivitas perangkat keras selama operasi tertentu di setiap langkah.
Ada dua pendekatan yang dapat Anda ambil untuk membuat profil skrip pelatihan Anda dengan SageMaker Profiler. Pendekatan pertama didasarkan pada pembuatan profil fungsi penuh; pendekatan kedua didasarkan pada pembuatan profil baris kode tertentu dalam fungsi.
Untuk membuat profil berdasarkan fungsi, gunakan pengelola konteks smppy.annotate
untuk membubuhi keterangan fungsi penuh. Contoh skrip berikut menunjukkan cara mengimplementasikan manajer konteks untuk menggabungkan loop pelatihan dan fungsi penuh di setiap iterasi:
Anda juga dapat menggunakan smppy.annotation_begin()
dan smppy.annotation_end()
untuk membubuhi keterangan pada baris kode tertentu dalam fungsi. Untuk informasi lebih lanjut, lihat dokumentasi.
Konfigurasikan peluncur tugas pelatihan SageMaker
Setelah Anda selesai membuat anotasi dan menyiapkan modul inisiasi profiler, simpan skrip pelatihan dan siapkan estimator kerangka SageMaker untuk pelatihan menggunakan SageMaker Python SDK.
- Mengatur
profiler_config
objek menggunakanProfilerConfig
danProfiler
modul sebagai berikut: - Buat estimator SageMaker dengan
profiler_config
objek yang dibuat pada langkah sebelumnya. Kode berikut menunjukkan contoh pembuatan estimator PyTorch:
Jika Anda ingin membuat estimator TensorFlow, impor sagemaker.tensorflow.TensorFlow
sebagai gantinya, dan tentukan salah satu versi TensorFlow yang didukung oleh SageMaker Profiler. Untuk informasi lebih lanjut tentang kerangka kerja yang didukung dan tipe instans, lihat Kerangka kerja yang didukung.
- Mulai pekerjaan pelatihan dengan menjalankan metode fit:
Luncurkan UI Profiler SageMaker
Ketika tugas pelatihan selesai, Anda dapat meluncurkan UI SageMaker Profiler untuk memvisualisasikan dan menjelajahi profil tugas pelatihan. Anda dapat mengakses aplikasi UI SageMaker Profiler melalui halaman arahan SageMaker Profiler di konsol SageMaker atau melalui domain SageMaker.
Untuk meluncurkan aplikasi UI SageMaker Profiler di konsol SageMaker, selesaikan langkah-langkah berikut:
- Di konsol SageMaker, pilih Profil di panel navigasi.
- Bawah Get started, pilih domain tempat Anda ingin meluncurkan aplikasi SageMaker Profiler UI.
Jika profil pengguna Anda hanya milik satu domain, Anda tidak akan melihat opsi untuk memilih domain.
- Pilih profil pengguna yang ingin Anda luncurkan aplikasi SageMaker Profiler UI.
Jika tidak ada profil pengguna di domain, pilih Buat profil pengguna. Untuk informasi lebih lanjut tentang membuat profil pengguna baru, lihat Tambah dan Hapus Profil Pengguna.
- Pilih Buka Profiler.
Anda juga bisa luncurkan UI SageMaker Profiler dari halaman detail domain.
Dapatkan wawasan dari SageMaker Profiler
Saat Anda membuka UI SageMaker Profiler, file Pilih dan muat profil halaman terbuka, seperti yang ditunjukkan pada tangkapan layar berikut.
Anda dapat melihat daftar semua tugas pelatihan yang telah dikirimkan ke SageMaker Profiler dan mencari tugas pelatihan tertentu berdasarkan nama, waktu pembuatan, dan status pelaksanaannya (Sedang Berlangsung, Selesai, Gagal, Berhenti, atau Berhenti). Untuk memuat profil, pilih tugas pelatihan yang ingin Anda lihat dan pilih Beban. Nama pekerjaan akan muncul di Profil yang dimuat bagian di atas.
Pilih nama pekerjaan untuk menghasilkan dasbor dan garis waktu. Perhatikan bahwa ketika Anda memilih pekerjaan, UI secara otomatis membuka dasbor. Anda dapat memuat dan memvisualisasikan satu profil dalam satu waktu. Untuk memuat profil lain, Anda harus terlebih dahulu membongkar profil yang dimuat sebelumnya. Untuk membongkar profil, pilih ikon tempat sampah di Profil yang dimuat bagian.
Untuk posting ini, kami melihat profil seorang ALBEF pekerjaan pelatihan pada dua instance ml.p4d.24xlarge.
Setelah Anda selesai memuat dan memilih tugas pelatihan, UI akan membuka Menu Utama halaman, seperti yang ditunjukkan pada tangkapan layar berikut.
Anda dapat melihat plot untuk metrik utama, yaitu waktu aktif GPU, penggunaan GPU dari waktu ke waktu, waktu aktif CPU, dan penggunaan CPU dari waktu ke waktu. Diagram lingkaran waktu aktif GPU menunjukkan persentase waktu aktif GPU vs. waktu idle GPU, yang memungkinkan kami memeriksa apakah GPU lebih aktif daripada idle di seluruh tugas pelatihan. Grafik garis waktu pemanfaatan GPU dari waktu ke waktu menunjukkan rata-rata tingkat pemanfaatan GPU dari waktu ke waktu per node, yang menggabungkan semua node dalam satu grafik. Anda dapat memeriksa apakah GPU memiliki beban kerja yang tidak seimbang, masalah pemanfaatan yang kurang, kemacetan, atau masalah menganggur selama interval waktu tertentu. Untuk detail selengkapnya tentang menafsirkan metrik ini, lihat dokumentasi.
Dasbor memberi Anda plot tambahan, termasuk waktu yang dihabiskan oleh semua kernel GPU, waktu yang dihabiskan oleh 15 kernel GPU teratas, jumlah peluncuran semua kernel GPU, dan jumlah peluncuran dari 15 kernel GPU teratas, seperti yang ditunjukkan pada tangkapan layar berikut.
Terakhir, dasbor memungkinkan Anda memvisualisasikan metrik tambahan, seperti distribusi waktu langkah, yang merupakan histogram yang menunjukkan distribusi durasi langkah pada GPU, dan diagram lingkaran distribusi presisi kernel, yang menunjukkan persentase waktu yang dihabiskan untuk menjalankan kernel. dalam tipe data yang berbeda seperti FP32, FP16, INT32, dan INT8.
Anda juga dapat memperoleh diagram lingkaran distribusi aktivitas GPU yang menunjukkan persentase waktu yang dihabiskan untuk aktivitas GPU, seperti menjalankan kernel, memori (memcpy
dan memset
), dan sinkronisasi (sync
). Anda dapat memvisualisasikan persentase waktu yang dihabiskan untuk pengoperasian memori GPU dari diagram lingkaran distribusi operasi memori GPU.
Anda juga dapat membuat histogram Anda sendiri berdasarkan metrik khusus yang Anda beri anotasi secara manual seperti yang dijelaskan sebelumnya dalam postingan ini. Saat menambahkan anotasi khusus ke histogram baru, pilih atau masukkan nama anotasi yang Anda tambahkan di skrip pelatihan.
Antarmuka garis waktu
UI SageMaker Profiler juga menyertakan antarmuka garis waktu, yang memberi Anda tampilan mendetail tentang sumber daya komputasi pada tingkat operasi dan kernel yang dijadwalkan pada CPU dan dijalankan pada GPU. Garis waktu diatur dalam struktur pohon, memberi Anda informasi dari tingkat host hingga tingkat perangkat, seperti yang ditunjukkan pada tangkapan layar berikut.
Untuk setiap CPU, Anda dapat melacak penghitung kinerja CPU, seperti clk_unhalted_ref.tsc
dan itlb_misses.miss_causes_a_walk
. Untuk setiap GPU pada instans 2x p4d.24xlarge, Anda dapat melihat timeline host dan timeline perangkat. Peluncuran kernel dilakukan pada timeline host dan eksekusi kernel dilakukan pada timeline perangkat.
Anda juga dapat memperbesar langkah-langkah individual. Pada tangkapan layar berikut, kami memperbesar ke langkah_41. Strip garis waktu yang dipilih pada tangkapan layar berikut adalah AllReduce
operasi, langkah komunikasi dan sinkronisasi penting dalam pelatihan terdistribusi, dijalankan pada GPU-0. Pada tangkapan layar, perhatikan bahwa peluncuran kernel di host GPU-0 terhubung ke kernel yang dijalankan di perangkat GPU-0 aliran 1, ditandai dengan panah dalam warna cyan.
Ketersediaan dan pertimbangan
SageMaker Profiler tersedia di PyTorch (versi 2.0.0 dan 1.13.1) dan TensorFlow (versi 2.12.0 dan 2.11.1). Tabel berikut menyediakan tautan ke yang didukung Kontainer Pembelajaran Mendalam AWS untuk SageMaker.
Kerangka | Versi | URI Gambar DLC AWS |
PyTorch | 2.0.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:2.0.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
PyTorch | 1.13.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.13.1-gpu-py39-cu117-ubuntu20.04-sagemaker |
TensorFlow | 2.12.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.12.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
TensorFlow | 2.11.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.11.1-gpu-py39-cu112-ubuntu20.04-sagemaker |
SageMaker Profiler saat ini tersedia di Wilayah berikut: US East (Ohio, N. Virginia), US West (Oregon), dan Europe (Frankfurt, Irlandia).
SageMaker Profiler tersedia dalam jenis instans pelatihan ml.p4d.24xlarge, ml.p3dn.24xlarge, dan ml.g4dn.12xlarge.
Untuk daftar lengkap kerangka kerja dan versi yang didukung, lihat dokumentasi.
SageMaker Profiler dikenakan biaya setelah Tingkat Gratis SageMaker atau masa uji coba gratis fitur berakhir. Untuk informasi lebih lanjut, lihat Harga Amazon SageMaker.
Kinerja Profiler SageMaker
Kami membandingkan overhead SageMaker Profiler dengan berbagai profiler sumber terbuka. Garis dasar yang digunakan untuk perbandingan diperoleh dari menjalankan tugas pelatihan tanpa profiler.
Temuan utama kami mengungkapkan bahwa SageMaker Profiler umumnya menghasilkan durasi pelatihan yang dapat ditagih lebih pendek karena waktu overhead yang lebih sedikit pada proses pelatihan end-to-end. Ini juga menghasilkan lebih sedikit data pembuatan profil (hingga 10 kali lebih sedikit) jika dibandingkan dengan alternatif sumber terbuka. Artefak pembuatan profil yang lebih kecil yang dihasilkan oleh SageMaker Profiler memerlukan lebih sedikit penyimpanan, sehingga juga menghemat biaya.
Kesimpulan
SageMaker Profiler memungkinkan Anda mendapatkan wawasan mendetail tentang pemanfaatan sumber daya komputasi saat melatih model pembelajaran mendalam Anda. Hal ini memungkinkan Anda mengatasi titik panas dan hambatan kinerja untuk memastikan pemanfaatan sumber daya yang efisien yang pada akhirnya akan menurunkan biaya pelatihan dan mengurangi durasi pelatihan secara keseluruhan.
Untuk memulai dengan SageMaker Profiler, lihat dokumentasi.
Tentang Penulis
Roy Allela adalah Arsitek Solusi Spesialis AI/ML Senior di AWS yang berbasis di Munich, Jerman. Roy membantu pelanggan AWSโdari startup kecil hingga perusahaan besarโmelatih dan menerapkan model bahasa besar secara efisien di AWS. Roy sangat tertarik dengan masalah pengoptimalan komputasi dan meningkatkan kinerja beban kerja AI.
Sushant Bulan adalah Ilmuwan Data di AWS, India, yang berspesialisasi dalam membimbing pelanggan melalui upaya AI/ML mereka. Dengan latar belakang beragam yang mencakup bidang ritel, keuangan, dan asuransi, ia memberikan solusi yang inovatif dan disesuaikan dengan kebutuhan. Di luar kehidupan profesionalnya, Sushant menemukan kesembuhan dalam berenang dan mencari inspirasi dari perjalanannya ke berbagai tempat.
Diksa Sharma adalah Arsitek Solusi Spesialis AI/ML di Organisasi Spesialis Seluruh Dunia. Dia bekerja dengan pelanggan sektor publik untuk membantu mereka merancang aplikasi pembelajaran mesin yang efisien, aman, dan skalabel termasuk solusi AI generatif di AWS. Di waktu senggangnya, Diksha gemar membaca, melukis, dan menghabiskan waktu bersama keluarga.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoData.Jaringan Vertikal Generatif Ai. Berdayakan Diri Anda. Akses Di Sini.
- PlatoAiStream. Intelijen Web3. Pengetahuan Diperkuat. Akses Di Sini.
- PlatoESG. Otomotif / EV, Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- PlatoHealth. Kecerdasan Uji Coba Biotek dan Klinis. Akses Di Sini.
- ChartPrime. Tingkatkan Game Trading Anda dengan ChartPrime. Akses Di Sini.
- BlockOffset. Modernisasi Kepemilikan Offset Lingkungan. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/announcing-the-preview-of-amazon-sagemaker-profiler-track-and-visualize-detailed-hardware-performance-data-for-your-model-training-workloads/
- :memiliki
- :adalah
- :bukan
- $NAIK
- 1
- 10
- 100
- 11
- 12
- 125
- 13
- 15%
- 17
- 20
- 7
- 9
- a
- Tentang Kami
- mengakses
- di seluruh
- mengaktifkan
- aktif
- kegiatan
- kegiatan
- menambahkan
- menambahkan
- menambahkan
- Tambahan
- Setelah
- terhadap
- agregasi
- AI
- AI / ML
- Semua
- juga
- alternatif
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- dan
- Mengumumkan
- Mengumumkan
- Lain
- Apa pun
- muncul
- Aplikasi
- aplikasi
- pendekatan
- pendekatan
- ADALAH
- AS
- ditugaskan
- At
- secara otomatis
- tersedia
- rata-rata
- AWS
- latar belakang
- berdasarkan
- Dasar
- BE
- karena
- menjadi
- menjadi
- Awal
- milik
- antara
- Luar
- miliaran
- BIN
- by
- CAN
- kemampuan
- kemampuan
- Menangkap
- tertentu
- tantangan
- beban
- Grafik
- memeriksa
- Pilih
- kode
- Umum
- Komunikasi
- dibandingkan
- perbandingan
- lengkap
- Lengkap
- kompleksitas
- menghitung
- konfigurasi
- menghubungkan
- konsul
- Wadah
- konteks
- Sesuai
- Biaya
- Biaya
- counter
- membuat
- dibuat
- membuat
- penciptaan
- Sekarang
- adat
- pelanggan
- cyan
- dasbor
- data
- ilmuwan data
- mendalam
- belajar mendalam
- menetapkan
- memberikan
- menyebarkan
- dijelaskan
- terperinci
- rincian
- alat
- berbeda
- didistribusikan
- pelatihan terdistribusi
- distribusi
- beberapa
- domain
- domain
- dilakukan
- turun
- mendorong
- lamanya
- selama
- setiap
- Terdahulu
- Timur
- efisien
- efisien
- aktif
- memungkinkan
- akhir
- ujung ke ujung
- usaha keras
- berakhir
- memastikan
- Enter
- Seluruh
- masuk
- masa
- zaman
- penting
- Eropa
- peristiwa
- jelas
- contoh
- eksekusi
- menyelidiki
- Gagal
- keluarga
- Fitur
- keuangan
- temuan
- menemukan
- menyelesaikan
- Pertama
- cocok
- berikut
- berikut
- Untuk
- Depan
- Kerangka
- kerangka
- Gratis
- percobaan gratis
- dari
- penuh
- fungsi
- umumnya
- menghasilkan
- dihasilkan
- generatif
- AI generatif
- Jerman
- mendapatkan
- Pemberian
- GPU
- GPU
- grafik
- Tumbuh
- memiliki
- Perangkat keras
- Memiliki
- he
- membantu
- membantu
- dia
- -nya
- tuan rumah
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTML
- http
- HTTPS
- i
- ICON
- Siaga
- if
- gambar
- melaksanakan
- mengimpor
- meningkatkan
- in
- termasuk
- Termasuk
- Meningkatkan
- India
- menunjukkan
- sendiri-sendiri
- tidak efisien
- informasi
- inovatif
- input
- wawasan
- Inspirasi
- contoh
- sebagai gantinya
- instruksi
- asuransi
- Antarmuka
- ke
- Irlandia
- masalah
- IT
- perulangan
- NYA
- Pekerjaan
- Jobs
- jpg
- kunci
- Label
- pendaratan
- bahasa
- besar
- jalankan
- meluncurkan
- pengetahuan
- kurang
- Tingkat
- Perpustakaan
- Hidup
- batas
- baris
- link
- Daftar
- memuat
- pemuatan
- lagi
- lepas
- mencintai
- Rendah
- mesin
- Mesin belajar
- manajer
- manual
- Memori
- metode
- metode
- metrik
- Metrik
- minimum
- ML
- model
- model
- memodifikasi
- Modul
- lebih
- harus
- nama
- yaitu
- Navigasi
- Perlu
- New
- tidak
- simpul
- node
- obyek
- memperoleh
- diperoleh
- of
- Penawaran
- Ohio
- on
- ONE
- hanya
- Buka
- open source
- membuka
- operasi
- Operasi
- optimasi
- dioptimalkan
- pilihan
- or
- urutan
- Oregon
- organisasi
- terorganisir
- lebih
- secara keseluruhan
- sendiri
- halaman
- pane
- parameter
- tertentu
- khususnya
- bergairah
- untuk
- persentase
- prestasi
- periode
- Izin
- plato
- Kecerdasan Data Plato
- Data Plato
- senang
- Titik
- Pos
- Ketelitian
- Mempersiapkan
- prasyarat
- Preview
- sebelumnya
- sebelumnya
- masalah
- profesional
- Profil
- profil
- profil
- Kemajuan
- proyek
- menyediakan
- publik
- Ular sanca
- pytorch
- Cepat
- cepat
- Penilaian
- Baca
- menurunkan
- daerah
- peremajaan
- hubungan
- menghapus
- membutuhkan
- sumber
- Sumber
- mengakibatkan
- eceran
- Terungkap
- Naik
- Peran
- roy
- Run
- berjalan
- berjalan
- pembuat bijak
- Save
- penghematan
- terukur
- dijadwalkan
- ilmuwan
- script
- SDK
- Pencarian
- Kedua
- Bagian
- sektor
- aman
- melihat
- Mencari
- terpilih
- memilih
- senior
- Layanan
- set
- pengaturan
- dia
- harus
- ditunjukkan
- Pertunjukkan
- tunggal
- Ukuran
- kecil
- lebih kecil
- Solusi
- sumber
- ketegangan
- spesialis
- mengkhususkan diri
- tertentu
- menghabiskan
- menghabiskan
- awal
- mulai
- Startups
- state-of-the-art
- statistik
- Status
- Langkah
- Tangga
- terhenti
- henti
- penyimpanan
- aliran
- struktur
- disampaikan
- seperti itu
- RINGKASAN
- Didukung
- sinkronisasi
- tabel
- disesuaikan
- Mengambil
- tensorflow
- dari
- bahwa
- Grafik
- mereka
- Mereka
- Sana.
- dengan demikian
- karena itu
- Ini
- ini
- Melalui
- di seluruh
- tingkat
- waktu
- waktu
- garis waktu
- kali
- untuk
- puncak
- jalur
- Pelacakan
- Pelatihan VE
- Pelatihan
- transfer
- perjalanan
- pohon
- percobaan
- triliunan
- dua
- jenis
- khas
- ui
- Akhirnya
- pemahaman
- us
- menggunakan
- bekas
- Pengguna
- User Interface
- Pengguna
- menggunakan
- berbagai
- versi
- Versi
- View
- virginia
- vs
- ingin
- adalah
- we
- jaringan
- layanan web
- Barat
- ketika
- yang
- sementara
- akan
- dengan
- tanpa
- bekerja
- industri udang di seluruh dunia.
- akan
- membungkus
- Kamu
- Anda
- zephyrnet.dll
- zoom