Membuat dan mengelolar instans komputasi Azure Machine Learning

Pelajari cara membuat dan mengelola instans komputasi di ruang kerja Azure Machine Learning Anda.

Gunakan instans komputasi sebagai lingkungan pengembangan anda yang sepenuhnya dikonfigurasi dan dikelola di cloud. Untuk pengembangan dan pengujian, Anda juga dapat menggunakan instance sebagai target komputasi pelatihan atau untuk target inferensi. Instans komputasi dapat menjalankan beberapa pekerjaan secara paralel dan memiliki antrean pekerjaan. Sebagai lingkungan pengembangan, instans komputasi tidak dapat dibagikan dengan pengguna lain di ruang kerja Anda.

Dalam artikel ini, Anda akan mempelajari cara:

  • Buat instans komputasi
  • Mengelola (memulai, menghentikan, memulai ulang, menghapus) instans komputasi
  • Mengakses jendela terminal
  • Instal paket R atau Python
  • Membuat lingkungan baru atau kernel Jupyter

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

Prasyarat

Buat

Penting

Item yang ditandai (pratinjau) di bawah ini saat ini berada dalam pratinjau publik. Versi pratinjau disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan 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.

Perkiraan waktu: Sekitar 5 menit.

Pembuatan instans komputasi adalah proses satu kali untuk ruang kerja Anda. Anda dapat menggunakan kembali komputasi sebagai stasiun kerja pengembangan atau sebagai target komputasi untuk pelatihan. Anda dapat memiliki beberapa instans komputasi yang terpasang pada ruang kerja Anda.

Inti khusus per wilayah per kuota keluarga VM dan total kuota regional, yang berlaku untuk pembuatan instans komputasi, bersatu dan dibagikan dengan kuota klaster komputasi pelatihan Azure Machine Learning. Menghentikan instans komputasi tidak merilis kuota untuk memastikan Anda akan dapat memulai ulang instans komputasi. Perhatikan tidak dimungkinkan untuk mengubah ukuran mesin virtual instans komputasi setelah dibuat.

Contoh berikut menunjukkan cara membuat instans komputasi:

import datetime
import time

from azureml.core.compute import ComputeTarget, ComputeInstance
from azureml.core.compute_target import ComputeTargetException

# Choose a name for your instance
# Compute instance name should be unique across the azure region
compute_name = "ci{}".format(ws._workspace_id)[:10]

# Verify that instance does not exist already
try:
    instance = ComputeInstance(workspace=ws, name=compute_name)
    print('Found existing instance, use it.')
except ComputeTargetException:
    compute_config = ComputeInstance.provisioning_configuration(
        vm_size='STANDARD_D3_V2',
        ssh_public_access=False,
        # vnet_resourcegroup_name='<my-resource-group>',
        # vnet_name='<my-vnet-name>',
        # subnet_name='default',
        # admin_user_ssh_public_key='<my-sshkey>'
    )
    instance = ComputeInstance.create(ws, compute_name, compute_config)
    instance.wait_for_completion(show_output=True)

Untuk informasi selengkapnya tentang kelas, metode, dan parameter yang digunakan dalam contoh ini, lihat dokumen referensi berikut:

Anda juga dapat membuat instans komputasi dengan templat Azure Resource Manager.

Buat atas nama (pratinjau)

Sebagai administrator, Anda dapat membuat instans komputasi atas nama ilmuwan data dan menetapkan instans kepada mereka dengan:

Ilmuwan data yang Anda buat instans komputasi untuk kebutuhan berikut ini adalah izin kontrol akses berbasis peran Azure (Azure RBAC):

  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action
  • Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action

Ilmuwan data dapat memulai, menghentikan, dan memulai ulang instans komputasi. Mereka dapat menggunakan instans komputasi untuk:

  • Jupyter
  • JupyterLab
  • RStudio
  • Notebooks terintegrasi

Mengkustomisasikan instans komputasi dengan skrip (pratinjau)

Gunakan skrip penyiapan untuk cara otomatis menyesuaikan dan mengonfigurasi instans komputasi pada waktu penyediaan. Sebagai administrator, Anda dapat menulis skrip kustomisasi yang akan digunakan untuk ketentuan semua instans komputasi di ruang kerja sesuai dengan kebutuhan Anda.

Beberapa contoh hal-hal yang dapat Anda lakukan pada skrip penyetelan:

  • Menginstal paket, alat, dan perangkat lunak
  • Pasang data
  • Membuat lingkungan konda kustom dan kernel Jupyter
  • Kloning repositori git dan atur konfigurasi git
  • Setel proksi jaringan
  • Atur variabel lingkungan
  • Instal ekstensi JupyterLab

Membuat skrip penyetelan

Skrip pengaturan adalah skrip shell yang berjalan sebagai rootuser. Membuat atau mengunggah skrip ke dalam file Notebooks Anda:

  1. Masuk ke studio dan pilih ruang kerja Anda.
  2. Di sebelah kiri, pilih Notebooks
  3. Gunakan alat Tambahkan file untuk membuat atau mengunggah skrip shell penyiapan Anda. Pastikan nama file skrip berakhiran ".sh". Saat Anda membuat file baru, ubah juga Tipe File menjadi bash(.sh) .

Membuat atau mengunggah skrip penyetelan Anda ke file Notebooks di studio

Ketika skrip berjalan, direktori kerja skrip saat ini adalah direktori tempat skrip diunggah. Misalnya, jika Anda mengunggah skrip ke Users>admin, lokasi skrip pada instans komputasi dan direktori kerja saat ini saat skrip dijalankan adalah /home/azureuser/cloudfiles/code/Users/admin. Ini akan memungkinkan Anda untuk menggunakan jalur relatif dalam skrip.

Argumen skrip dapat disebut dalam skrip sebagai $1, $2, dll.

Jika skrip Anda melakukan sesuatu yang spesifik untuk azureuser seperti menginstal lingkungan conda atau kernel jupyter Anda harus memasukkannya ke dalam blok sudo -u azureuser seperti ini

#!/bin/bash

set -e

# This script installs a pip package in compute instance azureml_py38 environment

sudo -u azureuser -i <<'EOF'
# PARAMETERS
PACKAGE=numpy
ENVIRONMENT=azureml_py38 
conda activate "$ENVIRONMENT"
pip install "$PACKAGE"
conda deactivate
EOF

Harap dicatat bahwa sudo -u azureuser mengubah direktori kerja saat ini menjadi /home/azureuser. Anda juga tidak dapat mengakses argumen skrip di blok ini.

Anda juga dapat menggunakan variabel lingkungan berikut di skrip Anda:

  1. CI_RESOURCE_GROUP
  2. CI_WORKSPACE
  3. CI_NAME
  4. CI_LOCAL_UBUNTU_USER. Ini menunjuk ke azureuser

Menggunakan skrip di studio

Setelah Anda menyimpan skrip, tentukan selama pembuatan instans komputasi Anda:

  1. Masuk ke studio dan pilih ruang kerja Anda.
  2. Di sebelah kiri, pilih Compute.
  3. Pilih +Baru untuk membuat instans komputasi baru.
  4. Isi formulir.
  5. Pada formulir halaman kedua, buka Perlihatkan pengaturan tingkat lanjut
  6. Aktifkan Penyediaan dengan skrip penyiapan
  7. Telusuri skrip shell yang Anda simpan. Atau unggah skrip dari komputer Anda.
  8. Tambahkan argumen perintah sesuai kebutuhan.

Instance komputasi penyediaan dengan skrip penyiapan di studio.

Harap dicatat bahwa jika penyimpanan ruang kerja terpasang ke jaringan virtual, Anda mungkin tidak dapat mengakses file skrip penyiapan kecuali Anda mengakses Studio dari dalam jaringan virtual.

Menggunakan skrip dalam templat Manajer Sumber Daya

Dalam templat Manajer Sumber Daya, setupScripts tambahkan untuk memanggil skrip penyetelan saat instans komputasi disediakan. Contohnya:

"setupScripts":{
    "scripts":{
        "creationScript":{
        "scriptSource":"workspaceStorage",
        "scriptData":"[parameters('creationScript.location')]",
        "scriptArguments":"[parameters('creationScript.cmdArguments')]"
        }
    }
}

scriptData di atas menentukan lokasi skrip pembuatan dalam berbagi file notebooks seperti Users/admin/testscript.sh. scriptArguments bersifat opsional di atas dan menentukan argumen untuk skrip pembuatan.

Sebagai gantinya, Anda dapat menyediakan skrip sebaris untuk templat Manajer Sumber Daya. Perintah shell dapat merujuk ke dependensi apa pun yang diunggah ke dalam berbagi file notebooks. Ketika Anda menggunakan string sebaris, direktori kerja untuk skrip adalah /mnt/batch/tasks/shared/LS_root/mounts/clusters/ciname/code/Users.

Misalnya, tentukan string perintah yang dikodekan base64 untuk scriptData :

"setupScripts":{
    "scripts":{
        "creationScript":{
        "scriptSource":"inline",
        "scriptData":"[base64(parameters('inlineCommand'))]",
        "scriptArguments":"[parameters('creationScript.cmdArguments')]"
        }
    }
}

Siapkan log skrip

Log dari eksekusi skrip penyetelan muncul di folder log di halaman detail instans komputasi. Log disimpan kembali ke berbagi file buku catatan Anda di bawah<compute instance name> folder Log. File skrip dan argumen perintah untuk contoh komputasi tertentu diperlihatkan di halaman detail.

Kelola

Memulai, menghentikan, memulai ulang, dan menghapus instans komputasi. Instans komputasi tidak secara otomatis menurunkan skala, jadi pastikan untuk menghentikan sumber daya untuk mencegah biaya yang sedang berlangsung. Menghentikan instans komputasi yang membatalkannya. Kemudian mulai lagi ketika Anda membutuhkannya. Saat menghentikan instans komputasi menghentikan penagihan selama jam komputasi, Anda masih akan ditagih untuk disk, IP publik, dan penyeimbang muatan standar.

Tip

Instans komputasi memiliki disk OS 120GB. Jika Anda kehabisan ruang disk, gunakan terminal untuk menghapus setidaknya 1-2 GB sebelum Anda menghentikan atau memulai ulang instans komputasi.

Dalam contoh di bawah ini, nama instans komputasi adalah instance

  • Dapatkan status

    # get_status() gets the latest status of the ComputeInstance target
    instance.get_status()
    
  • Hentikan

    # stop() is used to stop the ComputeInstance
    # Stopping ComputeInstance will stop the billing meter and persist the state on the disk.
    # Available Quota will not be changed with this operation.
    instance.stop(wait_for_completion=True, show_output=True)
    
  • Mulai

    # start() is used to start the ComputeInstance if it is in stopped state
    instance.start(wait_for_completion=True, show_output=True)
    
  • Mulai ulang

    # restart() is used to restart the ComputeInstance
    instance.restart(wait_for_completion=True, show_output=True)
    
  • Hapus

    # delete() is used to delete the ComputeInstance target. Useful if you want to re-use the compute name
    instance.delete(wait_for_completion=True, show_output=True)
    

Azure RBAC memungkinkan Anda mengontrol pengguna mana di ruang kerja yang dapat membuat, menghapus, memulai, menghentikan, memulai ulang instans komputasi. Semua pengguna dalam peran kontributor dan pemilik ruang kerja dapat membuat, menghapus, memulai, menghentikan, dan memulai ulang instans komputasi di seluruh ruang kerja. Namun, hanya pembuat instans komputasi tertentu, atau pengguna yang ditetapkan jika dibuat atas nama mereka, yang diizinkan untuk mengakses Jupyter, JupyterLab, dan RStudio pada instans komputasi tersebut. Instans komputasi didedikasikan untuk pengguna tunggal yang memiliki akses root, dan dapat masuk melalui Jupyter/JupyterLab/RStudio. Instans komputasi akan memiliki masuk pengguna tunggal dan semua tindakan akan menggunakan identitas pengguna tersebut untuk Azure RBAC dan atribusi eksperimen berjalan. Akses SSH dikontrol melalui mekanisme kunci publik/privat.

Tindakan ini dapat dikontrol oleh Azure RBAC:

  • Microsoft.MachineLearningServices/workspaces/computes/read
  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action

Untuk membuat instans komputasi, Anda harus memiliki izin untuk tindakan berikut:

  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/computes/write

Langkah berikutnya