Debugger Demo Lanjutan dan Visualisasi - Amazon SageMaker

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

Debugger Demo Lanjutan dan Visualisasi

Demo berikut memandu Anda melalui kasus penggunaan lanjutan dan skrip visualisasi menggunakan Debugger.

Latih dan Setel Model Anda dengan SageMaker Eksperimen dan Debugger Amazon

Dr. Nathalie Rauschmayr, Ilmuwan AWS Terapan | Durasi: 49 menit 26 detik

Cari tahu bagaimana Amazon SageMaker Experiments and Debugger dapat menyederhanakan pengelolaan pekerjaan pelatihan Anda. Amazon SageMaker Debugger memberikan visibilitas transparan ke dalam pekerjaan pelatihan dan menyimpan metrik pelatihan ke dalam bucket Amazon S3 Anda. SageMaker Eksperimen memungkinkan Anda menyebut informasi pelatihan sebagai uji coba melalui SageMaker Studio dan mendukung visualisasi pekerjaan pelatihan. Ini membantu Anda menjaga kualitas model tetap tinggi sekaligus mengurangi parameter yang kurang penting berdasarkan peringkat kepentingan.

Video ini menunjukkan teknik pemangkasan model yang membuat ResNet 50 yang telah dilatih sebelumnya dan AlexNet model lebih ringan dan terjangkau sambil mempertahankan standar tinggi untuk akurasi model.

SageMaker Estimator melatih algoritme yang dipasok dari kebun binatang PyTorch model dalam AWS Deep Learning Containers dengan PyTorch kerangka kerja, dan Debugger mengekstrak metrik pelatihan dari proses pelatihan.

Video ini juga menunjukkan cara menyiapkan aturan khusus Debugger untuk menonton keakuratan model yang dipangkas, untuk memicu CloudWatch peristiwa Amazon dan AWS Lambda fungsi saat akurasi mencapai ambang batas, dan untuk secara otomatis menghentikan proses pemangkasan untuk menghindari iterasi yang berlebihan.

Tujuan pembelajaran adalah sebagai berikut:

  • Pelajari cara menggunakan SageMaker untuk mempercepat pelatihan model ML dan meningkatkan kualitas model.

  • Memahami cara mengelola iterasi pelatihan dengan SageMaker Eksperimen dengan secara otomatis menangkap parameter input, konfigurasi, dan hasil.

  • Temukan cara Debugger membuat proses pelatihan transparan dengan secara otomatis menangkap data tensor real-time dari metrik seperti bobot, gradien, dan keluaran aktivasi jaringan saraf convolutional.

  • Gunakan CloudWatch untuk memicu Lambda saat Debugger menangkap masalah.

  • Kuasai proses SageMaker pelatihan menggunakan SageMaker Eksperimen dan Debugger.

Anda dapat menemukan buku catatan dan skrip pelatihan yang digunakan dalam video ini dari Pemangkasan Model Iteratif SageMaker Debugger PyTorch .

Gambar berikut menunjukkan bagaimana proses pemangkasan model berulang mengurangi ukuran AlexNet dengan memotong 100 filter paling tidak signifikan berdasarkan peringkat kepentingan yang dievaluasi oleh keluaran aktivasi dan gradien.

Proses pemangkasan mengurangi 50 juta parameter awal menjadi 18 juta. Ini juga mengurangi perkiraan ukuran model dari 201 MB menjadi 73 MB.

Gambar yang berisi visualisasi keluaran hasil pemangkasan model

Anda juga perlu melacak akurasi model, dan gambar berikut menunjukkan bagaimana Anda dapat memplot proses pemangkasan model untuk memvisualisasikan perubahan akurasi model berdasarkan jumlah parameter di SageMaker Studio.

Gambar visualisasi tensor menggunakan Debugger di Studio SageMaker

Di SageMaker Studio, pilih tab Eksperimen, pilih daftar tensor yang disimpan oleh Debugger dari proses pemangkasan, lalu buat panel Daftar Komponen Uji Coba. Pilih semua sepuluh iterasi dan kemudian pilih Tambahkan bagan untuk membuat Bagan Komponen Uji Coba. Setelah Anda memutuskan model yang akan diterapkan, pilih komponen uji coba dan pilih menu untuk melakukan tindakan atau pilih Model Deploy.

catatan

Untuk menerapkan model melalui SageMaker Studio menggunakan contoh notebook berikut, tambahkan baris di akhir train fungsi dalam train.py skrip.

# In the train.py script, look for the train function in line 58. def train(epochs, batch_size, learning_rate): ... print('acc:{:.4f}'.format(correct/total)) hook.save_scalar("accuracy", correct/total, sm_metric=True) # Add the following code to line 128 of the train.py script to save the pruned models # under the current SageMaker Studio model directory torch.save(model.state_dict(), os.environ['SM_MODEL_DIR'] + '/model.pt')

Menggunakan SageMaker Debugger untuk Memantau Pelatihan Model Autoencoder Convolutional

Notebook ini menunjukkan bagaimana SageMaker Debugger memvisualisasikan tensor dari proses pembelajaran tanpa pengawasan (atau diawasi sendiri) pada kumpulan data gambar MNIST dari angka tulisan tangan.

Model pelatihan dalam notebook ini adalah autoencoder convolutional dengan framework MXNet. Autoencoder convolutional memiliki jaringan saraf convolutional berbentuk bottleneck yang terdiri dari bagian encoder dan bagian decoder.

Encoder dalam contoh ini memiliki dua lapisan konvolusi untuk menghasilkan representasi terkompresi (variabel laten) dari gambar input. Dalam hal ini, encoder menghasilkan variabel ukuran laten (1, 20) dari gambar input asli ukuran (28, 28) dan secara signifikan mengurangi ukuran data untuk pelatihan sebanyak 40 kali.

Decoder memiliki dua lapisan dekonvolusional dan memastikan bahwa variabel laten mempertahankan informasi kunci dengan merekonstruksi gambar keluaran.

Encoder convolutional memberdayakan algoritma pengelompokan dengan ukuran data input yang lebih kecil dan kinerja algoritma pengelompokan seperti k-means, k-NN, dan T-distributed Stochastic Neighbor Embedding (t-SNE).

Contoh notebook ini menunjukkan bagaimana memvisualisasikan variabel laten menggunakan Debugger, seperti yang ditunjukkan dalam animasi berikut. Ini juga menunjukkan bagaimana algoritma t-SNE mengklasifikasikan variabel laten menjadi sepuluh cluster dan memproyeksikannya ke dalam ruang dua dimensi. Skema warna plot sebar di sisi kanan gambar mencerminkan nilai sebenarnya untuk menunjukkan seberapa baik model BERT dan algoritma t-SNE mengatur variabel laten ke dalam cluster.

Gambar konseptual dari autoencoder convolutional

Menggunakan SageMaker Debugger untuk Memantau Perhatian dalam Pelatihan Model BERT

Representasi Encode Dua Arah dari Transformers (BERT) adalah model representasi bahasa. Seperti yang dicerminkan oleh nama model, model BERT dibangun di atas pembelajaran transfer dan model Transformer untuk pemrosesan bahasa alami (NLP).

Model BERT dilatih sebelumnya pada tugas-tugas tanpa pengawasan seperti memprediksi kata-kata yang hilang dalam kalimat atau memprediksi kalimat berikutnya yang secara alami mengikuti kalimat sebelumnya. Data pelatihan berisi 3,3 miliar kata (token) teks bahasa Inggris, dari sumber seperti Wikipedia dan buku elektronik. Sebagai contoh sederhana, model BERT dapat memberikan perhatian tinggi pada token kata kerja yang sesuai atau token kata ganti dari token subjek.

Model BERT yang telah dilatih sebelumnya dapat disetel dengan lapisan keluaran tambahan untuk mencapai pelatihan state-of-the-art model dalam tugas NLP, seperti respons otomatis terhadap pertanyaan, klasifikasi teks, dan banyak lainnya.

Debugger mengumpulkan tensor dari proses fine-tuning. Dalam konteks NLP, berat neuron disebut perhatian.

Notebook ini menunjukkan cara menggunakan model BERT yang telah dilatih sebelumnya dari kebun binatang model GluonNLP pada dataset Pertanyaan dan Jawaban Stanford dan cara mengatur Debugger untuk memantau pekerjaan pelatihan. SageMaker

Merencanakan skor perhatian dan neuron individu dalam kueri dan vektor kunci dapat membantu mengidentifikasi penyebab prediksi model yang salah. Dengan SageMaker Debugger, Anda dapat mengambil tensor dan memplot tampilan perhatian-kepala secara real time saat pelatihan berlangsung dan memahami apa yang sedang dipelajari model.

Animasi berikut menunjukkan skor perhatian dari 20 token input pertama untuk sepuluh iterasi dalam pekerjaan pelatihan yang disediakan dalam contoh notebook.

Animasi skor perhatian

Menggunakan SageMaker Debugger untuk Memvisualisasikan Peta Aktivasi Kelas di Convolutional Neural Networks (CNN)

Notebook ini menunjukkan cara menggunakan SageMaker Debugger untuk memplot peta aktivasi kelas untuk deteksi dan klasifikasi gambar dalam jaringan saraf konvolusional (CNN). Dalam pembelajaran mendalam, jaringan saraf konvolusional (CNN atau ConvNet) adalah kelas jaringan saraf dalam, paling sering diterapkan untuk menganalisis citra visual. Salah satu aplikasi yang mengadopsi peta aktivasi kelas adalah mobil self-driving, yang memerlukan deteksi instan dan klasifikasi gambar seperti rambu lalu lintas, jalan, dan rintangan.

Dalam buku catatan ini, PyTorch ResNet model ini dilatih pada Dataset Tanda Lalu Lintas Jerman, yang berisi lebih dari 40 kelas objek terkait lalu lintas dan lebih dari 50.000 gambar secara total.

Animasi peta aktivasi kelas CNN

Selama proses pelatihan, SageMaker Debugger mengumpulkan tensor untuk memplot peta aktivasi kelas secara real time. Seperti yang ditunjukkan pada gambar animasi, peta aktivasi kelas (juga disebut sebagai peta arti-penting) menyoroti daerah dengan aktivasi tinggi dalam warna merah.

Menggunakan tensor yang ditangkap oleh Debugger, Anda dapat memvisualisasikan bagaimana peta aktivasi berkembang selama pelatihan model. Model dimulai dengan mendeteksi tepi di sudut kiri bawah di awal pekerjaan pelatihan. Saat pelatihan berlangsung, fokus bergeser ke pusat dan mendeteksi tanda batas kecepatan, dan model berhasil memprediksi gambar input sebagai Kelas 3, yang merupakan kelas tanda batas kecepatan 60km/jam, dengan tingkat kepercayaan 97%.