Membuat klaster komputasi Azure Machine Learning

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Artikel ini menjelaskan cara membuat dan mengelola kluster komputasi di ruang kerja Azure Pembelajaran Mesin Anda.

Anda dapat menggunakan klaster komputasi Azure Machine Learning untuk mendistribusikan pelatihan atau proses inferensi batch di seluruh klaster simpul komputasi CPU atau GPU di cloud. Untuk informasi selengkapnya tentang ukuran VM yang menyertakan GPU, lihat ukuran komputer virtual yang dioptimalkan GPU.

Pelajari cara:

  • Buat kluster komputasi.
  • Turunkan biaya kluster komputasi Anda dengan VM berprioritas rendah.
  • Siapkan identitas terkelola untuk kluster.

Catatan

Alih-alih membuat kluster komputasi, gunakan komputasi tanpa server untuk membongkar manajemen siklus hidup komputasi ke Azure Pembelajaran Mesin.

Prasyarat

  • Ruang kerja Azure Machine Learning. Untuk informasi lebih lanjut, lihat Mengelola ruang kerja Azure Machine Learning.

  • Ekstensi Azure CLI untuk Azure Machine Learning Service (v2), Azure Machine Learning Python SDK, atau ekstensi Azure Machine Learning Visual Studio Code.

  • Jika menggunakan Python SDK, siapkan lingkungan pengembangan Anda dengan ruang kerja. Setelah lingkungan Anda diatur, lampirkan ke ruang kerja di skrip Python Anda:

    BERLAKU UNTUK: Python SDK azure-ai-ml v2 (saat ini)

    Jalankan kode ini untuk menyambungkan ke ruang kerja Azure ML Anda.

    Ganti ID Langganan, nama Grup Sumber Daya, dan Nama ruang kerja Anda dalam kode di bawah ini. Untuk menemukan nilai-nilai ini:

    1. Masuk ke Studio Azure Machine Learning.
    2. Buka ruang kerja yang ingin Anda gunakan.
    3. Di toolbar studio Azure Machine Learning, di kanan atas, pilih nama ruang kerja Anda.
    4. Salin nilai untuk ruang kerja, grup sumber daya, dan ID langganan ke dalam kode.
    5. Jika Anda menggunakan buku catatan di dalam studio, Anda harus menyalin satu nilai, menutup area dan menempelkan, lalu kembali untuk yang berikutnya.
    # Enter details of your AML workspace
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    workspace = "<AML_WORKSPACE_NAME>"
    # get a handle to the workspace
    from azure.ai.ml import MLClient
    from azure.identity import DefaultAzureCredential
    
    ml_client = MLClient(
        DefaultAzureCredential(), subscription_id, resource_group, workspace
    )

    ml_client adalah handler ke ruang kerja yang akan Anda gunakan untuk mengelola sumber daya dan pekerjaan lain.

Apa itu klaster komputasi?

Klaster komputasi Azure Machine Learning adalah infrastruktur komputasi terkelola yang memungkinkan Anda membuat komputasi satu atau multi-simpul dengan mudah. Kluster komputasi adalah sumber daya yang dapat dibagikan dengan pengguna lain di ruang kerja Anda. Komputasi akan diskalakan secara otomatis saat pekerjaan dikirimkan, dan dapat dimasukkan ke dalam Jaringan Virtual Azure. Kluster komputasi tidak mendukung penyebaran IP publik juga di jaringan virtual. Komputasi dijalankan dalam lingkungan terkontainer dan mengemas dependensi model Anda dalam kontainer Docker.

Kluster komputasi dapat menjalankan pekerjaan dengan aman di jaringan virtual terkelola atau jaringan virtual Azure, tanpa mengharuskan perusahaan untuk membuka port SSH. Pekerjaan dijalankan dalam lingkungan ter-kontainer dan mengemas dependensi model Anda dalam kontainer Docker.

Pembatasan

  • Kluster komputasi dapat dibuat di wilayah yang berbeda dari ruang kerja Anda. Fungsionalitas ini hanya tersedia untuk kluster komputasi, bukan instans komputasi.

    Peringatan

    Saat menggunakan kluster komputasi di wilayah yang berbeda dari ruang kerja atau penyimpanan data, Anda mungkin melihat peningkatan latensi jaringan dan biaya transfer data. Latensi dan biaya dapat terjadi saat membuat kluster, dan saat menjalankan tugas di dalamnya.

  • Azure Machine Learning Compute memiliki batas default, seperti jumlah core yang dapat dialokasikan. Untuk informasi selengkapnya, lihat Mengelola dan meminta kuota untuk sumber daya Azure.

  • Azure memungkinkan Anda menempatkan kunci pada sumber daya, sehingga tidak dapat dihapus atau hanya berstatus baca saja. Jangan terapkan kunci sumber daya ke grup sumber daya yang berisi ruang kerja Anda. Menerapkan kunci ke grup sumber daya yang berisi ruang kerja Anda mencegah operasi penskalaan untuk kluster komputasi Azure Pembelajaran Mesin. Untuk informasi selengkapnya tentang mengunci sumber daya, lihat Mengunci sumber daya untuk mencegah perubahan tak terduga.

Membuat

Perkiraan waktu: Sekitar lima menit.

Catatan

Jika Anda menggunakan komputasi tanpa server, Anda tidak perlu membuat kluster komputasi.

Azure Machine Learning Compute dapat digunakan kembali di seluruh eksekusi. Komputasi dapat dibagikan dengan pengguna lain di ruang kerja dan dipertahankan di antara eksekusi, secara otomatis menskalakan simpul ke atas atau ke bawah berdasarkan jumlah eksekusi yang dikirimkan, dan max_nodes set pada kluster Anda. Pengaturan min_nodes mengontrol simpul minimum yang tersedia.

Inti khusus per wilayah per kuota keluarga VM dan total kuota regional, yang berlaku untuk pembuatan klaster komputasi, bersatu dan dibagikan dengan kuota instans komputasi pelatihan Azure Machine Learning.

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.

Komputasi otomatis turun ke nol simpul ketika tidak digunakan. VM khusus dibuat untuk menjalankan pekerjaan Anda sesuai kebutuhan.

Gunakan contoh berikut untuk membuat kluster komputasi:

Untuk membuat sumber daya Azure Pembelajaran Mesin Compute persisten di Python, tentukan size properti dan max_instances . Azure Machine Learning kemudian menggunakan default cerdas untuk properti lain.

  • ukuran: Keluarga VM simpul yang dibuat oleh Azure Pembelajaran Mesin Compute.
  • max_instances: Jumlah maksimum simpul untuk skala otomatis hingga saat Anda menjalankan pekerjaan di Azure Pembelajaran Mesin Compute.

BERLAKU UNTUK: Python SDK azure-ai-ml v2 (saat ini)

from azure.ai.ml.entities import AmlCompute

cluster_basic = AmlCompute(
    name="basic-example",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic).result()

Anda juga dapat mengonfigurasi beberapa properti tingkat lanjut saat membuat Azure Machine Learning Compute. Properti memungkinkan Anda membuat klaster persisten dengan ukuran tetap, atau dalam Azure Virtual Network yang ada di langganan Anda. Lihat kelas AmlCompute untuk detailnya.

Peringatan

Saat mengatur location parameter, jika ini adalah wilayah yang berbeda dari ruang kerja atau penyimpanan data, Anda mungkin melihat peningkatan latensi jaringan dan biaya transfer data. Latensi dan biaya dapat terjadi saat membuat kluster, dan saat menjalankan tugas di dalamnya.

Menurunkan biaya kluster komputasi Anda dengan VM berprioritas rendah

Anda juga dapat memilih untuk menggunakan VM berprioritas rendah untuk menjalankan beberapa atau semua beban kerja Anda. VM ini tidak memiliki ketersediaan yang dijamin dan mungkin didahului saat digunakan. Anda harus memulai ulang pekerjaan yang telah didahului.

Menggunakan Azure Low Priority Virtual Machines memungkinkan Anda memanfaatkan kapasitas Azure yang tidak digunakan dengan penghematan biaya yang signifikan. Kapan saja ketika Azure membutuhkan kapasitas kembali, infrastruktur Azure mengeluarkan Azure Low Priority Virtual Machines. Oleh karena itu, Azure Low Priority Virtual Machine sangat bagus untuk beban kerja yang dapat menangani gangguan. Jumlah kapasitas yang tersedia dapat bervariasi berdasarkan ukuran, wilayah, waktu, dan banyak lagi. Saat menyebarkan Azure Low Priority Virtual Machines, Azure mengalokasikan VM jika ada kapasitas yang tersedia, tetapi tidak ada SLA untuk VM ini. Azure Low Priority Virtual Machine tidak menawarkan jaminan ketersediaan tinggi. Kapan saja ketika Azure membutuhkan kapasitas kembali, infrastruktur Azure mengeluarkan Azure Low Priority Virtual Machines.

Gunakan salah satu cara ini untuk menentukan VM berprioritas rendah:

BERLAKU UNTUK: Python SDK azure-ai-ml v2 (saat ini)

from azure.ai.ml.entities import AmlCompute

cluster_low_pri = AmlCompute(
    name="low-pri-example",
    size="STANDARD_DS3_v2",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
    tier="low_priority",
)
ml_client.begin_create_or_update(cluster_low_pri).result()

Menyiapkan identitas terkelola

Untuk informasi tentang cara mengonfigurasi identitas terkelola dengan kluster komputasi Anda, lihat Menyiapkan autentikasi antara Azure Pembelajaran Mesin dan layanan lainnya.

Pemecahan Masalah

Ada kemungkinan beberapa pengguna yang membuat ruang kerja Azure Machine Learning dari portal Microsoft Azure sebelum rilis GA mungkin tidak dapat membuat AmlCompute di ruang kerja tersebut. Anda dapat menaikkan permintaan dukungan terhadap layanan atau membuat ruang kerja baru melalui portal atau SDK untuk segera membuka blokir diri Anda.

Penting

Jika instans komputasi atau kluster komputasi Anda didasarkan pada salah satu seri ini, buat ulang dengan ukuran VM lain sebelum tanggal penghentiannya untuk menghindari gangguan layanan.

Seri ini akan dihentikan pada 31 Agustus 2023:

Seri ini akan dihentikan pada 31 Agustus 2024:

Macet dalam mengubah ukuran

Jika kluster komputasi Azure Pembelajaran Mesin Anda tampak macet saat mengubah ukuran (0 -> 0) untuk status simpul, kunci sumber daya Azure mungkin menjadi penyebabnya.

Azure memungkinkan Anda untuk mengunci sumber daya, sehingga tidak dapat dihapus atau dibaca saja. Mengunci sumber daya dapat menyebabkan hasil yang tidak terduga. Beberapa operasi yang tampaknya tidak memodifikasi sumber daya sebenarnya memerlukan tindakan yang diblokir oleh penguncian.

Dengan Azure Machine Learning, menerapkan kunci hapus ke grup sumber daya ke ruang kerja Anda akan mencegah operasi penskalaan untuk kluster komputasi ML Azure. Untuk mengatasi masalah ini, sebaiknya hapus kunci dari grup sumber daya dan menerapkannya ke item individual dalam grup.

Penting

Jangan menerapkan kunci ke sumber daya berikut:

Nama sumber daya Jenis Sumber Daya
<GUID>-azurebatch-cloudservicenetworksecurityggroup Grup keamanan jaringan
<GUID>-azurebatch-cloudservicepublicip Alamat IP publik
<GUID>-azurebatch-cloudserviceloadbalancer Load Balancer

Sumber daya ini digunakan untuk berkomunikasi dan melakukan operasi seperti penskalaan, kluster komputasi. Menghapus kunci sumber daya dari sumber daya ini akan memungkinkan penskalaan otomatis untuk kluster komputasi Anda.

Untuk informasi selengkapnya tentang penguncian sumber daya, lihat Mengunci sumber daya untuk mencegah perubahan tak terduga.

Langkah selanjutnya

Gunakan klaster komputasi Anda untuk: