Mengelola dan mengoptimalkan biaya Azure Machine Learning
Artikel ini memperlihatkan kepada Anda cara mengelola dan mengoptimalkan biaya saat Anda melatih dan menyebarkan model pembelajaran mesin ke Azure Pembelajaran Mesin.
Gunakan petunjuk berikut untuk mengelola dan mengoptimalkan biaya sumber daya komputasi Anda.
- Menggunakan kluster komputasi Azure Pembelajaran Mesin
- Mengonfigurasi kluster pelatihan Anda untuk penskalaan otomatis
- Mengonfigurasi titik akhir online terkelola Anda untuk penskalaan otomatis
- Mengatur kuota pada langganan dan ruang kerja Anda
- Mengatur kebijakan penghentian pada pekerjaan pelatihan Anda
- Menggunakan komputer virtual (VM) prioritas rendah
- Menjadwalkan komputasi instans untuk dimatikan dan dimulai secara otomatis
- Menggunakan Instans VM yang Dicadangkan Azure
- Memparalelkan pelatihan
- Mengatur kebijakan penghapusan dan retensi data
- Menyebarkan sumber daya ke wilayah yang sama
- Menghapus penyebaran yang gagal
Untuk informasi tentang biaya perencanaan dan pemantauan, lihat Merencanakan untuk mengelola biaya untuk Azure Pembelajaran Mesin.
Penting
Item yang ditandai (pratinjau) dalam artikel ini sedang dalam pratinjau publik. Versi pratinjau ini disediakan tanpa perjanjian tingkat layanan. Kami tidak merekomendasikan versi pratinjau untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.
Menggunakan kluster komputasi Azure Pembelajaran Mesin
Dengan data yang terus berubah, Anda memerlukan pelatihan model yang cepat dan efisien dan melatih kembali untuk mempertahankan model yang akurat. Namun, pelatihan berkelanjutan memerlukan biaya, terutama untuk model pembelajaran mendalam pada GPU.
Pengguna Azure Pembelajaran Mesin dapat menggunakan kluster komputasi Azure Pembelajaran Mesin terkelola, yang juga disebut AmlCompute. AmlCompute mendukung berbagai opsi GPU dan CPU. AmlCompute dihost secara internal atas nama langganan Anda oleh Azure Machine Learning. Ini menyediakan keamanan, kepatuhan, dan tata kelola tingkat perusahaan yang sama di skala cloud IaaS Azure.
Karena kumpulan komputasi ini berada di dalam infrastruktur IaaS Azure, Anda dapat menyebarkan, menskalakan, dan mengelola pelatihan dengan persyaratan keamanan dan kepatuhan yang sama dengan infrastruktur lainnya. Penyebaran ini terjadi dalam langganan Anda dan mematuhi aturan tata kelola Anda. Untuk informasi selengkapnya, lihat Merencanakan untuk mengelola biaya untuk Azure Pembelajaran Mesin.
Mengonfigurasi kluster pelatihan untuk penskalaan otomatis
Kluster penskalaan otomatis berdasarkan persyaratan beban kerja Anda membantu mengurangi biaya sehingga Anda hanya menggunakan apa yang Anda butuhkan.
Kluster AmlCompute dirancang untuk menskalakan secara dinamis berdasarkan beban kerja Anda. Kluster dapat ditingkatkan hingga jumlah maksimum simpul yang Anda konfigurasi. Saat setiap pekerjaan selesai, kluster merilis simpul dan menskalakan ke jumlah simpul minimum yang dikonfigurasi.
Penting
Untuk menghindari biaya saat tidak ada pekerjaan yang berjalan, atur simpul minimum ke 0. Pengaturan ini memungkinkan Azure Machine Learning untuk membatalkan alokasi simpul saat tidak digunakan. Nilai apa pun yang lebih besar dari 0 akan membuat jumlah simpul tetap berjalan, meskipun tidak digunakan.
Anda juga dapat mengonfigurasi jumlah waktu simpul menganggur sebelum menurunkan skala. Secara default, waktu menganggur sebelum penurunan skala diatur ke 120 detik.
- Jika Anda melakukan eksperimen yang kurang iteratif, kurangi waktu ini untuk menghemat biaya.
- Jika Anda melakukan eksperimen dev/test yang sangat berulang, Anda mungkin perlu meningkatkan waktu sehingga Anda tidak membayar peningkatan dan penurunan skala konstan setelah setiap perubahan pada skrip atau lingkungan pelatihan Anda.
Anda dapat mengonfigurasi kluster AmlCompute untuk mengubah persyaratan beban kerja Anda dengan menggunakan:
- Portal Microsoft Azure
- Kelas AmlCompute SDK
- AmlCompute CLI
- REST API.
Mengonfigurasi titik akhir online terkelola untuk penskalaan otomatis
Skala otomatis secara otomatis menjalankan jumlah sumber daya yang tepat untuk menangani beban pada aplikasi Anda. Titik akhir online terkelola mendukung penskalakan otomatis melalui integrasi dengan fitur skala otomatis Azure Monitor. Untuk informasi selengkapnya, lihat Titik akhir dan penyebaran online untuk inferensi real time.
Penskalaan otomatis Azure Monitor mendukung serangkaian aturan yang kaya:
- Penskalaan berbasis metrik, misalnya, pemanfaatan >CPU 70%
- Penskalaan berbasis jadwal, misalnya, aturan penskalaan untuk jam sibuk bisnis
- Kombinasi keduanya
Untuk informasi selengkapnya, lihat Titik akhir online skala otomatis.
Mengatur kuota di sumber daya
AmlCompute dilengkapi dengan kuota, atau batas, konfigurasi. Kuota ini oleh keluarga VM, misalnya, seri Dv2 atau seri NCv3. Kuota bervariasi menurut wilayah untuk setiap langganan. Langganan dimulai dengan default kecil. Gunakan pengaturan ini untuk mengontrol jumlah sumber daya AmlCompute yang tersedia untuk dipisahkan dalam langganan Anda. Untuk informasi selengkapnya, lihat Azure Pembelajaran Mesin Compute.
Selain itu, Anda dapat mengonfigurasi kuota tingkat ruang kerja oleh keluarga VM untuk setiap ruang kerja dalam langganan. Pendekatan ini memberi Anda kontrol yang lebih terperinci pada biaya yang mungkin dikeluarkan setiap ruang kerja dan membatasi keluarga VM tertentu. Untuk informasi selengkapnya, lihat Kuota tingkat ruang kerja.
Untuk mengatur kuota di tingkat ruang kerja:
Buka portal Azure lalu pilih ruang kerja apa pun di langganan Anda.
Pilih Dukungan + Pemecahan>Masalah Penggunaan + kuota di menu ruang kerja.
Pilih Tampilkan kuota untuk melihat kuota di studio Azure Pembelajaran Mesin.
Dari halaman ini, Anda dapat menemukan langganan dan wilayah Anda untuk mengatur kuota.
Karena pengaturan ini memengaruhi beberapa ruang kerja, Anda memerlukan hak istimewa di cakupan langganan untuk mengatur kuota.
Menetapkan kebijakan penghentian pekerjaan
Dalam beberapa kasus, Anda harus mengonfigurasi eksekusi pelatihan Anda untuk membatasi durasinya atau menghentikannya lebih awal. Misalnya, saat Anda menggunakan penyetelan hyperparameter bawaan Azure Pembelajaran Mesin atau pembelajaran mesin otomatis.
Berikut beberapa opsi yang Anda miliki:
- Tentukan parameter yang disebut
max_run_duration_seconds
dalam RunConfiguration Anda untuk mengontrol durasi maksimum yang dapat diperluas eksekusi pada komputasi yang Anda pilih, baik komputasi cloud lokal atau jarak jauh. - Untuk penyetelan hyperparameter, tentukan kebijakan penghentian awal dari kebijakan Bandit, kebijakan penghentian Median, atau kebijakan pemilihan Pemotongan. Untuk mengontrol pembersihan hyperparameter lebih lanjut, gunakan parameter seperti
max_total_runs
ataumax_duration_minutes
. Untuk informasi selengkapnya, lihat Menentukan kebijakan penghentian dini. - Untuk pembelajaran mesin otomatis, atur kebijakan penghentian serupa menggunakan
enable_early_stopping
bendera . Anda juga dapat menggunakan properti sepertiiteration_timeout_minutes
danexperiment_timeout_minutes
untuk mengontrol durasi maksimum pekerjaan atau untuk seluruh eksperimen. Untuk informasi selengkapnya, lihat Kriteria keluar.
Gunakan komputer virtual berprioritas rendah
Azure memungkinkan Anda menggunakan kapasitas yang tidak digunakan berlebih sebagai VM Prioritas Rendah di seluruh set skala komputer virtual, Batch, dan layanan Pembelajaran Mesin. Alokasi ini dapat disiapkan tetapi datang dengan harga yang berkurang dibandingkan dengan VM khusus. Secara umum, kami sarankan Anda menggunakan VM Prioritas Rendah untuk beban kerja Batch. Anda juga harus menggunakannya di mana gangguan dapat dipulihkan baik melalui pengiriman ulang untuk Inferensi Batch atau melalui mulai ulang untuk pelatihan pembelajaran mendalam dengan titik pemeriksaan.
VM Prioritas Rendah memiliki kuota tunggal terpisah dari nilai kuota khusus, yang didasarkan pada keluarga VM. Untuk informasi selengkapnya tentang kuota AmlCompute, lihat Mengelola dan meningkatkan kuota .
VM Prioritas Rendah tidak berfungsi untuk instans komputasi, karena harus mendukung pengalaman notebook interaktif.
Menjadwalkan komputasi instans
Saat Anda membuat instans komputasi, VM tetap aktif sehingga tersedia untuk pekerjaan Anda.
- Aktifkan matikan diam (pratinjau) untuk menghemat biaya saat VM diam selama periode waktu tertentu. Lihat Mengonfigurasi matikan diam.
- Siapkan jadwal untuk memulai dan menghentikan instans komputasi secara otomatis (pratinjau) saat tidak digunakan untuk menghemat biaya. Lihat Menjadwalkan mulai dan berhenti otomatis.
Menggunakan instans cadangan
Cara lain untuk menghemat uang pada sumber daya komputasi adalah Instans VM yang Dicadangkan Azure. Dengan penawaran ini, Anda berkomitmen untuk jangka waktu satu tahun atau tiga tahun. Diskon ini berkisar hingga 72% dari harga bayar sesuai penggunaan dan diterapkan langsung ke tagihan Azure bulanan Anda.
Azure Machine Learning Compute mendukung instans cadangan secara inheren. Jika Anda membeli instans cadangan satu tahun atau tiga tahun, kami secara otomatis menerapkan diskon terhadap komputasi terkelola Azure Pembelajaran Mesin Anda.
Memparalelkan pelatihan
Salah satu metode utama untuk mengoptimalkan biaya dan performa adalah dengan menyejajarkan beban kerja dengan bantuan komponen paralel di Azure Pembelajaran Mesin. Komponen paralel memungkinkan Anda menggunakan banyak simpul yang lebih kecil untuk menjalankan tugas secara paralel, yang memungkinkan Anda untuk menskalakan secara horizontal. Ada overhead untuk paralelisasi. Tergantung pada beban kerja dan tingkat paralelisme yang dapat dicapai, pendekatan ini mungkin menjadi pilihan. Untuk informasi selengkapnya, lihat Kelas ParallelComponent.
Mengatur kebijakan penghapusan dan retensi data
Setiap kali alur berjalan, himpunan data perantara dihasilkan di setiap langkah. Seiring waktu, himpunan data menengah ini memakan ruang di akun penyimpanan Anda. Pertimbangkan untuk menyiapkan kebijakan untuk mengelola data sepanjang siklus hidupnya untuk mengarsipkan dan menghapus himpunan data Anda. Untuk informasi selengkapnya, lihat Mengoptimalkan biaya dengan mengelola siklus hidup data secara otomatis.
Menyebarkan sumber daya ke wilayah yang sama
Komputasi yang terletak di berbagai wilayah dapat mengalami latensi jaringan dan peningkatan biaya transfer data. Biaya jaringan Azure dikeluarkan dari bandwidth keluar dari pusat data Azure. Untuk membantu mengurangi biaya jaringan, sebarkan semua sumber daya di wilayah tersebut. Provisi ruang kerja Azure Machine Learning dan sumber daya dependen Anda di wilayah yang sama dengan data dapat membantu menurunkan biaya dan meningkatkan performa.
Untuk skenario cloud hibrid seperti yang menggunakan Azure ExpressRoute, terkadang bisa lebih hemat biaya untuk memindahkan semua sumber daya ke Azure untuk mengoptimalkan biaya dan latensi jaringan.
Menghapus penyebaran yang gagal
Titik akhir online terkelola menggunakan VM untuk penyebaran. Jika Anda mengirimkan permintaan untuk membuat penyebaran online dan gagal, permintaan mungkin telah melewati tahap saat komputasi dibuat. Dalam hal ini, penyebaran yang gagal akan dikenakan biaya. Saat Anda selesai men-debug atau menyelidiki kegagalan, hapus penyebaran yang gagal untuk menghemat biaya.