Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning

Saya mengenal banyak Ilmuwan Data - dan saya sendiri mungkin salah satunya - yang bekerja pada mesin GPU, lokal atau virtual, yang terletak di cloud, baik melalui Notebook Jupyter atau melalui semacam lingkungan pengembangan Python. Bekerja selama 2 tahun sebagai pengembang AI/ML ahli, saya melakukan hal ini, sambil menyiapkan data di server atau workstation biasa, dan menjalankan pelatihan di mesin virtual dengan GPU di Azure.

Tentu saja, kita semua pernah mendengarnya Pembelajaran Mesin Azure β€” platform cloud khusus untuk pembelajaran mesin. Namun, setelah dilihat sekilas artikel pengantar, tampaknya Azure ML akan menciptakan lebih banyak masalah bagi Anda daripada menyelesaikannya. Misalnya, dalam tutorial yang disebutkan di atas, pelatihan Azure ML diluncurkan dari Notebook Jupyter, sedangkan skrip pelatihan itu sendiri diusulkan untuk dibuat dan diedit sebagai file teks di salah satu sel - tanpa menggunakan pelengkapan otomatis, sintaks menyoroti, dan keuntungan lain dari lingkungan pengembangan normal. Karena alasan ini, kami sudah lama tidak menggunakan Azure ML secara serius dalam pekerjaan kami.

Namun, baru-baru ini saya menemukan cara untuk mulai menggunakan Azure ML secara efektif dalam pekerjaan saya! Tertarik dengan detailnya?

Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning

Rahasia utamanya adalah Ekstensi Kode Visual Studio untuk Azure ML. Ini memungkinkan Anda untuk mengembangkan skrip pelatihan langsung di VS Code, memanfaatkan sepenuhnya lingkungan - dan Anda bahkan dapat menjalankan skrip secara lokal dan kemudian mengirimkannya ke pelatihan di cluster Azure ML dengan beberapa klik. Nyaman, bukan?

Dengan demikian, Anda mendapatkan manfaat berikut dari menggunakan Azure ML:

  • Anda dapat bekerja sebagian besar waktu secara lokal di mesin Anda dalam IDE yang nyaman, dan gunakan GPU hanya untuk pelatihan model. Pada saat yang sama, kumpulan sumber daya pelatihan dapat secara otomatis menyesuaikan dengan beban yang diperlukan, dan dengan menyetel jumlah minimum node ke 0, Anda dapat secara otomatis memulai mesin virtual "berdasarkan permintaan" jika ada tugas pelatihan.
  • Anda dapat menyimpan semua hasil belajar di satu tempat, termasuk metrik yang dicapai dan model yang dihasilkan - tidak perlu membuat semacam sistem atau perintah untuk menyimpan semua hasil.
  • Dalam hal ini, Beberapa orang dapat mengerjakan proyek yang sama - mereka dapat menggunakan cluster komputasi yang sama, semua eksperimen akan diantrekan, dan mereka juga dapat melihat hasil eksperimen masing-masing. Salah satu skenario tersebut adalah menggunakan Azure ML dalam mengajar Deep Learningketika alih-alih memberi setiap siswa mesin virtual dengan GPU, Anda dapat membuat satu cluster yang akan digunakan oleh semua secara terpusat. Selain itu, tabel hasil umum dengan akurasi model dapat berfungsi sebagai elemen persaingan yang baik.
  • Dengan Azure ML, Anda dapat dengan mudah melakukan serangkaian eksperimen, misalnya untuk pengoptimalan hiperparameter - ini dapat dilakukan dengan beberapa baris kode, tidak perlu melakukan serangkaian percobaan secara manual.

Saya harap saya meyakinkan Anda untuk mencoba Azure ML! Berikut cara memulainya:

Ruang Kerja Azure ML dan Portal Azure ML

Azure ML diatur berdasarkan konsep area kerja β€” ruang kerja. Data dapat disimpan di ruang kerja, eksperimen dikirim ke sana untuk pelatihan, hasil pelatihan juga disimpan di sana - metrik dan model yang dihasilkan. Anda dapat melihat apa yang ada di dalam ruang kerja Portal Azure ML - dan dari sana Anda dapat melakukan banyak operasi, mulai dari memuat data hingga eksperimen pemantauan dan menerapkan model.

Anda dapat membuat ruang kerja melalui antarmuka web Portal Azure (Lihat. petunjuk langkah demi langkah), atau menggunakan baris perintah Azure CLI (Instruksi):

az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazml

Juga terkait dengan ruang kerja adalah beberapa sumber daya komputasi (menghitung). Setelah Anda membuat skrip untuk melatih model, Anda bisa kirim eksperimen untuk dieksekusi ke ruang kerja, dan tentukan menghitung target - dalam hal ini, skrip akan dikemas, dijalankan di lingkungan komputasi yang diinginkan, dan kemudian semua hasil percobaan akan disimpan di ruang kerja untuk analisis dan penggunaan lebih lanjut.

Skrip pembelajaran untuk MNIST

Pertimbangkan masalah klasik pengenalan digit tulisan tangan menggunakan kumpulan data MNIST. Demikian pula, di masa mendatang, Anda dapat menjalankan skrip pelatihan apa pun.

Ada skrip di repositori kami train_local.py, yang kami latih model regresi linier paling sederhana menggunakan pustaka SkLearn. Tentu saja, saya mengerti bahwa ini bukan cara terbaik untuk menyelesaikan masalah - kami menggunakannya sebagai contoh, sebagai yang termudah.

Skrip pertama mengunduh data MNIST dari OpenML dan kemudian menggunakan kelas LogisticRegression untuk melatih model, lalu mencetak akurasi yang dihasilkan:

mnist = fetch_openml('mnist_784')
mnist['target'] = np.array([int(x) for x in mnist['target']])

shuffle_index = np.random.permutation(len(mist['data']))
X, y = mnist['data'][shuffle_index], mnist['target'][shuffle_index]

X_train, X_test, y_train, y_test = 
  train_test_split(X, y, test_size = 0.3, random_state = 42)

lr = LogisticRegression()
lr.fit(X_train, y_train)
y_hat = lr.predict(X_test)
acc = np.average(np.int32(y_hat == y_test))

print('Overall accuracy:', acc)

Anda dapat menjalankan skrip di komputer Anda dan mendapatkan hasilnya dalam beberapa detik.

Jalankan skrip di Azure ML

Jika kami menjalankan skrip pelatihan melalui Azure ML, kami akan memiliki dua keuntungan utama:

  • Menjalankan pelatihan pada sumber daya komputasi yang sewenang-wenang, yang biasanya lebih produktif daripada komputer lokal. Pada saat yang sama, Azure ML sendiri akan menangani pengemasan skrip kami dengan semua file dari direktori saat ini ke dalam wadah buruh pelabuhan, menginstal dependensi yang diperlukan, dan mengirimkannya untuk dieksekusi.
  • Tulis hasil ke satu registri di dalam ruang kerja Azure ML. Untuk memanfaatkan fitur ini, kita perlu menambahkan beberapa baris kode ke skrip kita untuk mencatat presisi yang dihasilkan:

from azureml.core.run import Run
...
try:    
    run = Run.get_submitted_run()
    run.log('accuracy', acc)
except:
    pass

Versi skrip yang sesuai dipanggil train_universal.py (ini sedikit lebih licik dari yang tertulis di atas, tapi tidak banyak). Skrip ini dapat dijalankan baik secara lokal maupun pada sumber daya komputasi jarak jauh.

Untuk menjalankannya di Azure ML dari VS Code, Anda perlu melakukan hal berikut:

  1. Pastikan Ekstensi Azure terhubung ke langganan Anda. Pilih ikon Azure dari menu di sebelah kiri. Jika Anda tidak terhubung, akan muncul notifikasi di pojok kanan bawah (seperti ini), dengan mengklik di mana Anda dapat masuk melalui browser. Anda juga dapat mengklik Ctrl-Shift-P untuk memanggil baris perintah VS Code, dan ketik Masuk Azure.

  2. Setelah itu, di bagian Azure (ikon di sebelah kiri), temukan bagian tersebut PEMBELAJARAN MESIN:

Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning
Di sini Anda akan melihat berbagai kelompok objek di dalam ruang kerja: sumber daya komputasi, eksperimen, dll.

  1. Buka daftar file, klik kanan pada skrip train_universal.py dan pilih Azure ML: Jalankan sebagai eksperimen di Azure.

Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning

  1. Ini akan diikuti oleh serangkaian dialog di area baris perintah Kode VS: konfirmasikan langganan dan ruang kerja Azure ML yang Anda gunakan, dan pilih Buat percobaan baru:

Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning
Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning
Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning

  1. Pilih untuk membuat sumber daya komputasi baru Buat Komputasi Baru:

    • menghitung menentukan sumber daya komputasi tempat pelatihan akan berlangsung. Anda dapat memilih komputer lokal, atau gugus awan AmlCompute. Saya merekomendasikan membuat sekelompok mesin yang dapat diskalakan STANDARD_DS3_v2, dengan jumlah mesin minimal 0 (dan maksimal 1 atau lebih, tergantung selera Anda). Ini dapat dilakukan melalui antarmuka VS Code, atau sebelumnya melalui Portal ML.

    Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning

  2. Selanjutnya, Anda perlu memilih konfigurasi Menghitung Konfigurasi, yang menentukan parameter wadah yang dibuat untuk pelatihan, khususnya, semua perpustakaan yang diperlukan. Dalam kasus kami, karena kami menggunakan Scikit Learn, kami memilih SkBelajar, lalu konfirmasikan daftar pustaka yang diusulkan dengan menekan Enter. Jika Anda menggunakan pustaka tambahan, pustaka tersebut harus ditentukan di sini.

    Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning
    Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning

  3. Ini akan membuka jendela dengan file JSON yang menjelaskan percobaan. Di dalamnya, Anda dapat mengoreksi beberapa parameter - misalnya, nama percobaan. Setelah itu klik link tersebut Kirim Eksperimen tepat di dalam file ini:

Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning

  1. Setelah berhasil mengirimkan eksperimen melalui VS Code, di sisi kanan area notifikasi, Anda akan melihat tautan ke Portal Azure ML, tempat Anda dapat melacak status dan hasil eksperimen.

Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning
Selanjutnya, Anda selalu dapat menemukannya di bagian tersebut Percobaan Portal Azure ML, atau di bagian Pembelajaran Mesin Azure dalam daftar percobaan:

Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning

  1. Jika setelah itu Anda membuat beberapa koreksi pada kode atau mengubah parameter, memulai ulang eksperimen akan jauh lebih cepat dan mudah. Dengan mengklik kanan pada file, Anda akan melihat item menu baru Ulangi lari terakhir - pilih saja, dan percobaan akan segera dimulai:

Cara mengatasi rasa takut dan mulai menggunakan Azure Machine Learning
Anda selalu dapat menemukan hasil metrik dari semua peluncuran di Portal Azure ML, tidak perlu menuliskannya.

Sekarang Anda tahu bahwa menjalankan eksperimen dengan Azure ML itu sederhana dan tidak merepotkan, dan Anda mendapatkan sejumlah manfaat bagus dengan melakukannya.

Tapi Anda juga bisa melihat kekurangannya. Misalnya, butuh waktu lebih lama untuk menjalankan skrip. Tentu saja, mengemas skrip dalam wadah dan menerapkannya di server membutuhkan waktu. Jika pada saat yang sama cluster dipotong menjadi ukuran 0 node, akan membutuhkan lebih banyak waktu untuk memulai mesin virtual, dan semua ini sangat terlihat saat kami bereksperimen pada tugas-tugas sederhana seperti MNIST, yang diselesaikan dalam beberapa detik . Namun, dalam kehidupan nyata, saat pelatihan berlangsung beberapa jam, atau bahkan berhari-hari atau berminggu-minggu, waktu tambahan ini menjadi tidak signifikan, terutama dengan latar belakang kinerja yang jauh lebih tinggi yang dapat diberikan oleh cluster komputasi.

Apa selanjutnya?

Saya harap setelah membaca artikel ini, Anda dapat dan akan menggunakan Azure ML dalam pekerjaan Anda untuk menjalankan skrip, mengelola sumber daya komputasi, dan menyimpan hasil secara terpusat. Namun, Azure ML dapat memberi Anda lebih banyak manfaat!

Di dalam ruang kerja, Anda dapat menyimpan data, sehingga membuat repositori terpusat untuk semua tugas Anda, yang mudah diakses. Selain itu, Anda dapat menjalankan eksperimen bukan dari Visual Studio Code, tetapi menggunakan API - ini bisa sangat berguna jika Anda perlu melakukan pengoptimalan hyperparameter dan perlu menjalankan skrip berkali-kali dengan parameter berbeda. Selain itu, teknologi khusus dibangun ke dalam Azure ML HyperDrive, yang memungkinkan Anda melakukan pencarian dan pengoptimalan hyperparameter yang lebih rumit. Saya akan berbicara tentang kemungkinan ini di posting saya berikutnya.

Sumber daya yang berguna

Untuk mempelajari lebih lanjut tentang Azure ML, Anda mungkin menemukan kursus Microsoft Learn berikut bermanfaat:

Sumber: www.habr.com

Tambah komentar