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:
Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, gunakan langkah-langkah dalam artikel Mulai Cepat: Membuat sumber daya ruang kerja untuk membuatnya.
Azure CLI dan
ml
ekstensi atau Azure Pembelajaran Mesin Python SDK v2:Untuk menginstal Azure CLI dan ekstensi, lihat Menginstal, menyiapkan, dan menggunakan CLI (v2).
Penting
Contoh CLI dalam artikel ini mengasumsikan bahwa Anda menggunakan shell Bash (atau kompatibel). Misalnya, dari sistem Linux atau Subsistem Windows untuk Linux.
Untuk memasang SDK Python v2, gunakan perintah berikut:
pip install azure-ai-ml azure-identity
Untuk memperbarui penginstalan SDK yang ada ke versi terbaru, gunakan perintah berikut:
pip install --upgrade azure-ai-ml azure-identity
Untuk informasi selengkapnya, lihat Menginstal Python SDK v2 untuk Azure Pembelajaran Mesin.
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
Penting
Pengarsipan versi lingkungan tidak menghapus gambar yang di-cache di registri kontainer. Jika Anda ingin menghapus gambar cache yang terkait dengan lingkungan tertentu, Anda dapat menggunakan perintah az acr repository delete pada repositori terkait lingkungan.
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.