Mengelola lingkungan Azure Pembelajaran Mesin dengan CLI & SDK (v2)

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

Lingkungan Azure Machine Learning menentukan lingkungan eksekusi untuk pekerjaan atau penyebaran Anda dan merangkum dependensi untuk kode. Azure Pembelajaran Mesin menggunakan spesifikasi lingkungan untuk membuat kontainer Docker yang dijalankan kode pelatihan atau penilaian Anda pada target komputasi yang ditentukan. Anda dapat menentukan lingkungan dari spesifikasi conda, gambar Docker, atau konteks build Docker.

Dalam artikel ini, pelajari cara membuat dan mengelola lingkungan Azure Pembelajaran Mesin menggunakan SDK & CLI (v2).

Prasyarat

Sebelum mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:

Tip

Untuk lingkungan pengembangan fitur lengkap, gunakan Visual Studio Code dan ekstensi Azure Machine Learning untuk mengelola sumber daya Azure Machine Learning dan melatih model pembelajaran mesin.

Klon contoh repositori

Untuk menjalankan contoh pelatihan, pertama-tama kloning repositori contoh. Untuk contoh CLI, ubah menjadi cli direktori. Untuk contoh SDK, ubah ke sdk/python/assets/environment direktori:

git clone --depth 1 https://github.com/Azure/azureml-examples

Perhatikan bahwa --depth 1 hanya mengkloning penerapan terbaru ke repositori, yang mengurangi waktu untuk menyelesaikan operasi.

Menyambungkan ke ruang kerja

Tip

Gunakan tab berikut untuk memilih metode yang ingin Anda gunakan untuk bekerja dengan lingkungan. Memilih tab akan secara otomatis mengalihkan semua tab dalam artikel ini ke tab yang sama. Anda dapat memilih tab lain kapan saja.

Saat menggunakan Azure CLI, Anda memerlukan parameter pengidentifikasi - langganan, grup sumber daya, dan nama ruang kerja. Meskipun Anda dapat menentukan parameter ini untuk setiap perintah, Anda juga dapat mengatur default yang digunakan untuk semua perintah. Gunakan perintah berikut untuk mengatur nilai default. Ganti <subscription ID>, <Azure Machine Learning workspace name>, dan <resource group> dengan nilai untuk konfigurasi Anda:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

Lingkungan yang dikurasi

Ada dua jenis lingkungan di Azure Pembelajaran Mesin: lingkungan yang dikumpulkan dan kustom. Lingkungan yang dikumpulkan adalah lingkungan yang telah ditentukan sebelumnya yang berisi kerangka kerja dan peralatan ML populer. Lingkungan kustom ditentukan oleh pengguna dan dapat dibuat melalui az ml environment create.

Lingkungan yang dikumpulkan disediakan oleh Azure Pembelajaran Mesin dan tersedia secara default. Azure Pembelajaran Mesin secara rutin memperbarui lingkungan ini dengan rilis versi kerangka kerja terbaru dan mempertahankannya untuk perbaikan bug dan patch keamanan. Mereka didukung oleh gambar Docker yang di-cache, yang mengurangi biaya persiapan pekerjaan dan waktu penyebaran model.

Anda dapat menggunakan lingkungan yang dikumpulkan ini di luar kotak untuk pelatihan atau penyebaran dengan merujuk versi tertentu atau versi terbaru lingkungan. Gunakan sintaks berikut: azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> atau azureml://registries/azureml/environment/<curated-environment-name>/labels/latest. Anda juga dapat menggunakannya sebagai referensi untuk lingkungan kustom Anda sendiri dengan memodifikasi Dockerfiles yang mendukung lingkungan yang dikumpulkan ini.

Anda dapat melihat kumpulan lingkungan yang dikumpulkan yang tersedia di antarmuka pengguna studio Azure Pembelajaran Mesin, atau dengan menggunakan CLI (v2) melalui az ml environment list.

Tip

Saat bekerja dengan lingkungan yang dikumpulkan di CLI atau SDK, nama lingkungan dimulai dengan diikuti dengan AzureML- nama lingkungan yang dikumpulkan. Saat menggunakan studio Azure Pembelajaran Mesin, mereka tidak memiliki awalan ini. Alasan perbedaan ini adalah bahwa UI studio menampilkan lingkungan yang dikumpulkan dan kustom pada tab terpisah, sehingga awalan tidak diperlukan. CLI dan SDK tidak memiliki pemisahan ini, sehingga awalan digunakan untuk membedakan antara lingkungan yang dikumpulkan dan kustom.

Membuat lingkungan kustom

Anda dapat menentukan lingkungan dari gambar Docker, konteks build Docker, dan spesifikasi conda dengan gambar Docker.

Buat lingkungan dari gambar Docker

Untuk menentukan lingkungan dari gambar Docker, berikan URI gambar dari gambar yang dihosting di registri seperti Docker Hub atau Azure Container Registry.

Contoh berikut adalah file spesifikasi YAML untuk lingkungan yang ditentukan dari gambar Docker. Gambar dari repositori PyTorch resmi di Docker Hub ditentukan melalui properti image di file YAML.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-example
image: pytorch/pytorch:latest
description: Environment created from a Docker image.

Untuk membuat lingkungan:

az ml environment create --file assets/environment/docker-image.yml

Tip

Azure Pembelajaran Mesin mempertahankan sekumpulan gambar dasar berbasis Linux CPU dan GPU Ubuntu dengan dependensi sistem umum. Misalnya, gambar GPU berisi Miniconda, OpenMPI, CUDA, cuDNN, dan NCCL. Anda dapat menggunakan gambar ini untuk lingkungan, atau menggunakan Dockerfiles yang sesuai sebagai referensi saat membangun gambar kustom Anda sendiri.

Untuk kumpulan gambar dasar dan Dockerfiles terkait, lihat AzureML-Containers repo.

Buat lingkungan dari konteks build Docker

Daripada menentukan lingkungan dari gambar bawaan, Anda juga dapat menentukannya dari konteks build Docker. Untuk melakukannya, tentukan direktori yang berfungsi sebagai konteks build. Direktori ini harus berisi Dockerfile (tidak lebih besar dari 1MB) dan file lain yang diperlukan untuk membangun gambar.

Contoh berikut adalah file spesifikasi YAML untuk lingkungan yang ditentukan dari konteks build. Jalur lokal ke folder konteks build ditentukan di bidang build.path, dan jalur relatif ke Dockerfile di dalam folder konteks build tersebut ditentukan di bidang build.dockerfile_path. Jika build.dockerfile_path dihilangkan dalam file YAML, Azure Pembelajaran Mesin mencari Dockerfile bernama Dockerfile di akar konteks build.

Dalam contoh ini, konteks build berisi Dockerfile bernama Dockerfile dan file requirements.txt yang direferensikan dalam Dockerfile untuk menginstal paket Python.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-context-example
build:
  path: docker-contexts/python-and-pip

Untuk membuat lingkungan:

az ml environment create --file assets/environment/docker-context.yml

Azure Pembelajaran Mesin mulai membangun gambar dari konteks build saat lingkungan dibuat. Anda dapat memantau status build dan melihat log build di antarmuka pengguna studio.

Buat lingkungan dari spesifikasi conda

Anda dapat menentukan lingkungan menggunakan file konfigurasi YAML conda standar yang menyertakan dependensi untuk lingkungan conda. Lihat Membuat lingkungan secara manual untuk informasi tentang format standar ini.

Anda juga harus menentukan gambar Docker dasar untuk lingkungan ini. Azure Pembelajaran Mesin membangun lingkungan conda di atas gambar Docker yang disediakan. Jika Anda menginstal beberapa dependensi Python dalam gambar Docker Anda, paket tersebut tidak akan ada di lingkungan eksekusi sehingga menyebabkan kegagalan runtime. Secara default, Azure Pembelajaran Mesin membangun lingkungan Conda dengan dependensi yang Anda tentukan, dan menjalankan pekerjaan di lingkungan tersebut alih-alih menggunakan pustaka Python apa pun yang Anda instal pada gambar dasar.

Contoh berikut adalah file spesifikasi YAML untuk lingkungan yang ditentukan dari spesifikasi conda. Di sini jalur relatif ke file conda dari file YAML lingkungan Azure Pembelajaran Mesin ditentukan melalui conda_file properti . Anda juga dapat menentukan spesifikasi conda sebaris menggunakan properti conda_file, daripada menentukannya dalam file terpisah.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-plus-conda-example
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
conda_file: conda-yamls/pydata.yml
description: Environment created from a Docker image plus Conda environment.

Untuk membuat lingkungan:

az ml environment create --file assets/environment/docker-image-plus-conda.yaml

Azure Pembelajaran Mesin membangun gambar Docker akhir dari spesifikasi lingkungan ini saat lingkungan digunakan dalam pekerjaan atau penyebaran. Anda juga dapat memicu build lingkungan secara manual di antarmuka pengguna studio.

Mengelola lingkungan

SDK dan CLI (v2) juga memungkinkan Anda mengelola siklus hidup aset lingkungan Azure Pembelajaran Mesin Anda.

List

Daftar semua lingkungan di ruang kerja Anda:

az ml environment list

Daftar semua versi lingkungan dengan nama yang diberikan:

az ml environment list --name docker-image-example

tampilkan

Dapatkan detail lingkungan tertentu:

az ml environment show --name docker-image-example --version 1

Pembaruan

Perbarui properti yang dapat berubah dari lingkungan tertentu:

az ml environment update --name docker-image-example --version 1 --set description="This is an updated description."

Penting

Untuk lingkungan, hanya description dan tags yang dapat diperbarui. Semua properti lainnya tidak dapat diubah; jika Anda perlu mengubah salah satu properti tersebut, Anda harus membuat lingkungan versi baru.

Arsip

Pengarsipan lingkungan menyembunyikannya secara default dari kueri daftar (az ml environment list). Anda masih dapat terus mereferensikan dan menggunakan lingkungan yang diarsipkan dalam alur kerja Anda. Anda dapat mengarsipkan semua versi lingkungan atau hanya versi tertentu.

Jika Anda tidak menentukan versi, semua versi lingkungan di bawah nama yang diberikan akan diarsipkan. Jika Anda membuat versi lingkungan baru di bawah kontainer lingkungan yang diarsipkan, versi baru tersebut juga secara otomatis diatur sebagai diarsipkan.

Arsipkan semua versi lingkungan:

az ml environment archive --name docker-image-example

Mengarsipkan versi lingkungan tertentu:

az ml environment archive --name docker-image-example --version 1

Gunakan lingkungan untuk pelatihan

Untuk menggunakan lingkungan kustom untuk pekerjaan pelatihan, tentukan environment bidang konfigurasi YAML pekerjaan. Anda dapat mereferensikan lingkungan Azure Pembelajaran Mesin terdaftar yang ada melalui environment: azureml:<environment-name>:<environment-version> atau environment: azureml:<environment-name>@latest (untuk mereferensikan versi terbaru lingkungan), atau menentukan spesifikasi lingkungan sebaris. Jika menentukan lingkungan sebaris, jangan tentukan name bidang dan version , karena lingkungan ini diperlakukan sebagai lingkungan "tidak terdaftar" dan tidak dilacak di registri aset lingkungan Anda.

Saat Anda mengirimkan pekerjaan pelatihan, pembangunan lingkungan baru dapat memakan waktu beberapa menit. Durasi tergantung pada ukuran dependensi yang diperlukan. Lingkungan di-cache oleh layanan. Jadi selama definisi lingkungan tetap tidak berubah, Anda hanya dikenakan waktu pengaturan penuh sekali.


Untuk informasi selengkapnya tentang cara menggunakan lingkungan dalam pekerjaan, lihat Melatih model.

Gunakan lingkungan untuk penyebaran model

Anda juga dapat menggunakan lingkungan untuk penyebaran model untuk penilaian online dan batch. Untuk melakukannya, tentukan bidang environment dalam konfigurasi YAML penyebaran.

Untuk informasi selengkapnya tentang cara menggunakan lingkungan dalam penyebaran, lihat Menyebarkan dan menilai model pembelajaran mesin dengan menggunakan titik akhir online.

Langkah berikutnya