Pengantar target komputasi Kubernetes di Azure Machine Learning
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)
Python SDK azure-ai-ml v2 (saat ini)
Dengan Azure Machine Learning CLI/Python SDK v2, Azure Machine Learning memperkenalkan target komputasi baru - target komputasi Kube. Anda dapat dengan mudah mengaktifkan kluster Azure Kubernetes Service (AKS) yang ada atau kluster Kube yang didukung Azure Arc (Arc Kubernetes) untuk menjadi target komputasi Kubernetes di Azure Machine Learning, dan menggunakannya untuk melatih atau menyebarkan model.
Dalam artikel ini, Anda mempelajari tentang:
- Cara kerjanya
- Skenario penggunaan
- Praktik terbaik yang disarankan
- KubernetesCompute dan AksCompute lama
Cara kerjanya
Komputasi Azure Machine Learning Kubernetes mendukung dua jenis kluster Kubernetes:
- Kluster AKS di Azure. Dengan kluster AKS yang Anda kelola sendiri di Azure, Anda bisa memperoleh keamanan dan kontrol untuk memenuhi persyaratan kepatuhan serta fleksibilitas untuk mengelola beban kerja ML tim.
- Kluster Arc Kubernetes di luar Azure. Dengan kluster Arc Kubernetes, Anda bisa melatih atau menyebarkan model di infrastruktur lokal apa pun, di multicloud, atau di tepi.
Dengan penyebaran ekstensi kluster sederhana pada kluster AKS atau Arc Kubernetes, kluster Kubernetes didukung dengan mulus di Azure Machine Learning untuk menjalankan beban kerja pelatihan atau inferensi. Sangat mudah untuk mengaktifkan dan menggunakan kluster Kubernetes yang ada untuk beban kerja Azure Machine Learning dengan langkah-langkah sederhana berikut:
- Siapkan kluster Azure Kubernetes Service atau kluster Arc Kubernetes.
- Sebarkan ekstensi Azure Machine Learning.
- Lampirkan kluster Kubernetes ke ruang kerja Azure Machine Learning Anda.
- Gunakan target komputasi Kubernetes dari CLI v2, SDK v2, dan Studio UI.
Tim operasi IT. Tim operasi IT bertanggung jawab atas 3 langkah pertama di atas: menyiapkan kluster AKS atau Arc Kubernetes, menyebarkan ekstensi kluster Azure Machine Learning, dan melampirkan kluster Kubernetes ke ruang kerja Azure Machine Learning. Selain langkah-langkah penyiapan komputasi penting ini, tim operasi IT juga menggunakan alat yang familier seperti Azure CLI atau kubectl untuk menangani tugas-tugas berikut bagi tim ilmu data:
- Konfigurasi jaringan dan keamanan, seperti koneksi server proksi keluar atau konfigurasi firewall Azure, penyiapan router inferensi (azureml-fe), penghentian SSL/TLS, dan konfigurasi VNET.
- Buat dan kelola jenis instans untuk skenario beban kerja ML yang berbeda dan dapatkan pemanfaatan sumber daya komputasi yang efisien.
- Atasi masalah beban kerja yang terkait dengan kluster Kubernetes.
Tim ilmu data. Setelah tim operasi IT menyelesaikan penyiapan komputasi dan pembuatan target komputasi, tim ilmu data dapat menemukan daftar target komputasi dan jenis instans yang tersedia di ruang kerja Azure Machine Learning. Sumber daya komputasi ini dapat digunakan untuk beban kerja pelatihan atau inferensi. Ilmu data menentukan nama target komputasi dan nama jenis instans menggunakan alat atau API pilihan mereka seperti Azure Machine Learning CLI v2, Python SDK v2, atau Studio UI.
Skenario penggunaan Kubernetes
Dengan kluster Arc Kubernetes, Anda dapat membangun, melatih, dan menyebarkan model di infrastruktur apa pun secara lokal dan di seluruh multicloud menggunakan Kubernetes. Hal ini membuka beberapa pola penggunaan baru yang sebelumnya tidak dimungkinkan di lingkungan berlatar cloud. Tabel berikut ini menyediakan ringkasan pola penggunaan baru yang diaktifkan oleh komputasi Azure Machine Learning Kubernetes:
Pola penggunaan | Lokasi data | Motivasi | Infra menyiapkan & implementasi Azure Machine Learning |
---|---|---|---|
Melatih model di cloud, menyebarkan model secara lokal | Cloud | Manfaatkan komputasi cloud. Baik karena kebutuhan komputasi elastis atau perangkat keras khusus seperti GPU. Model harus disebarkan secara lokal karena persyaratan keamanan, kepatuhan, atau latensi |
1. Komputasi terkelola Azure di cloud. 2. Kubernetes yang dikelola pelanggan secara lokal 3. MLOps yang sepenuhnya otomatis dalam mode hibrid, termasuk langkah-langkah pelatihan dan penyebaran model bertransisi dengan lancar dari cloud ke lokal dan sebaliknya. 4. Dapat diulang, dengan semua aset dilacak secara benar. Model dilatih kembali jika perlu, dan penyebaran model diperbarui secara otomatis setelah pelatihan ulang. |
Latih model lokal dan cloud, sebarkan ke cloud dan lokal | Cloud | Organisasi ingin menggabungkan investasi lokal dengan skalabilitas cloud. Bawa komputasi cloud dan lokal di bawah panel kaca tunggal. Satu sumber kebenaran untuk data terletak di cloud, dapat direplikasi ke lokal (yaitu, dengan malas pada penggunaan atau secara proaktif). Penggunaan utama komputasi cloud adalah ketika sumber daya lokal tidak tersedia (sedang digunakan, pemeliharaan) atau tidak memiliki persyaratan perangkat keras (GPU) tertentu. | 1. Komputasi terkelola Azure di cloud. 2. Kubernetes yang dikelola pelanggan secara lokal 3. MLOps yang sepenuhnya otomatis dalam mode hibrid, termasuk langkah-langkah pelatihan dan penyebaran model bertransisi dengan lancar dari cloud ke lokal dan sebaliknya. 4. Dapat diulang, dengan semua aset dilacak secara benar. Model dilatih kembali jika perlu, dan penyebaran model diperbarui secara otomatis setelah pelatihan ulang. |
Melatih model secara lokal, menyebarkan model di cloud | Lokal | Data harus tetap disediakan secara lokal karena persyaratan residensi data. Sebarkan model di cloud untuk akses layanan global atau untuk elastisitas komputasi untuk skala dan throughput. |
1. Komputasi terkelola Azure di cloud. 2. Kubernetes yang dikelola pelanggan secara lokal 3. MLOps yang sepenuhnya otomatis dalam mode hibrid, termasuk langkah-langkah pelatihan dan penyebaran model bertransisi dengan lancar dari cloud ke lokal dan sebaliknya. 4. Dapat diulang, dengan semua aset dilacak secara benar. Model dilatih kembali jika perlu, dan penyebaran model diperbarui secara otomatis setelah pelatihan ulang. |
Gunakan AKS Anda sendiri di Azure | Cloud | Keamanan dan kontrol tambahan. Semua pembelajaran mesin IP privat untuk mencegah penyelundupan data. |
1. Kluster AKS di belakang Azure VNet. 2. Buat titik akhir privat di VNet yang sama untuk ruang kerja Azure Machine Learning dan sumber daya terkait. 3. MLOps yang sepenuhnya otomatis. |
Siklus hidup ML sepenuhnya lokal | Lokal | Amankan data sensitif atau IP kepemilikan, seperti model ML dan kode/skrip. | 1. Koneksi server proksi keluar lokal. 2. Link privat Azure ExpressRoute dan Azure Arc ke sumber daya Azure. 3. Kubernetes yang dikelola pelanggan secara lokal. 4. MLOps yang sepenuhnya otomatis. |
Praktik terbaik yang disarankan
Pemisahan tanggung jawab antara tim operasi IT serta tim ilmu data. Seperti yang disebutkan di atas, mengelola komputasi dan infrastruktur Anda sendiri untuk beban kerja ML adalah tugas yang rumit, dan seharusnya dilakukan oleh tim operasi IT sehingga tim ilmu data dapat berfokus pada model ML untuk efisiensi pengaturan.
Buat dan kelola jenis instans untuk skenario beban kerja ML yang berbeda. Setiap beban kerja ML menggunakan jumlah sumber daya komputasi yang berbeda, seperti CPU/GPU dan memori. Azure Machine Learning mengimplementasikan jenis instans sebagai definisi sumber daya kustom (CRD) Kubernetes dengan properti nodeSelector dan permintaan/batas sumber daya. Dengan daftar jenis instans yang telah dikumpulkan dengan cermat, operasi TI dapat menargetkan ML beban kerja pada simpul tertentu serta mengelola pemanfaatan sumber daya komputasi secara efisien.
Beberapa ruang kerja Azure Machine Learning berbagi kluster Kubernetes yang sama. Anda dapat melampirkan kluster Kubernetes beberapa kali ke ruang kerja Azure Machine Learning yang sama atau ruang kerja Azure Machine Learning yang berbeda, membuat beberapa target komputasi di satu ruang kerja atau beberapa ruang kerja. Karena banyak pelanggan mengatur proyek ilmu data di sekitar ruang kerja Azure Machine Learning, beberapa proyek ilmu data sekarang dapat berbagi kluster Kubernetes yang sama. Hal ini akan mengurangi overhead manajemen infrastruktur ML serta penghematan biaya IT secara signifikan.
Isolasi beban kerja tim/proyek menggunakan namespace Kubernetes. Saat melampirkan kluster Kubernetes ke ruang kerja Azure Machine Learning, Anda dapat menentukan namespace Layanan Kubernetes untuk target komputasi. Semua beban kerja yang dijalankan oleh target komputasi akan ditempatkan pada namespace yang ditentukan.
KubernetesCompute dan AksCompute lama
Dengan Azure Machine Learning CLI/Python SDK v1, Anda dapat menyebarkan model pada AKS menggunakan target AksCompute. Target KubernetesCompute dan target AksCompute mendukung integrasi AKS, tetapi dengan cara yang berbeda. Tabel berikut ini memperlihatkan perbedaan utamanya:
Kemampuan | Integrasi AKS dengan AksCompute (lama) | Integrasi AKS dengan KubernetesCompute |
---|---|---|
CLI/SDK v1 | Ya | Tidak |
CLI/SDK v2 | Tidak | Ya |
Pelatihan | Tidak | Ya |
Inferensi waktu nyata | Ya | Ya |
Inferensi batch | Tidak | Ya |
Fitur baru inferensi real time | Tidak ada pengembangan fitur baru | Peta strategi aktif |
Dengan perbedaan utama ini dan evolusi Azure Machine Learning secara keseluruhan untuk menggunakan SDK/CLI v2, Azure Machine Learning menyarankan Anda untuk menggunakan target komputasi Kubernetes untuk menyebarkan model jika Anda memutuskan untuk menggunakan AKS untuk penyebaran model.
Langkah berikutnya
- Langkah 1: Menyebarkan ekstensi Azure Machine Learning
- Langkah 2: Lampirkan kluster Kubernetes pada ruang kerja
- Membuat dan mengelola jenis instans
Sumber daya lainnya
Contoh
Semua contoh Azure Machine Learning dapat ditemukan di https://github.com/Azure/azureml-examples.git.
Untuk contoh Azure Machine Learning apa pun, Anda hanya perlu memperbarui nama target komputasi ke target komputasi Kubernetes Anda, maka Anda selesai.
- Menjelajahi sampel pekerjaan pelatihan dengan CLI v2 - https://github.com/Azure/azureml-examples/tree/main/cli/jobs
- Menjelajahi penyebaran model dengan sampel titik akhir online dengan CLI v2 - https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/online/kubernetes
- Menjelajahi sampel titik akhir batch dengan CLI v2 - https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/batch
- Menjelajahi sampel pekerjaan pelatihan dengan SDK v2 -https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs
- Menjelajahi penyebaran model dengan sampel titik akhir online dengan CLI v2 -https://github.com/Azure/azureml-examples/tree/main/sdk/python/endpoints/online/kubernetes