Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara mengonfigurasi MLflow untuk menyambungkan ke ruang kerja Azure Pembelajaran Mesin untuk pelacakan, manajemen registri, dan penyebaran.
Ruang kerja Azure Pembelajaran Mesin kompatibel dengan MLflow, yang berarti ruang kerja tersebut dapat bertindak sebagai server MLflow tanpa konfigurasi tambahan. Setiap ruang kerja memiliki URI pelacakan MLflow yang dapat digunakan MLflow untuk menyambungkan ke ruang kerja. Ruang kerja Azure Pembelajaran Mesin sudah dikonfigurasi untuk bekerja dengan MLflow, sehingga tidak diperlukan konfigurasi tambahan.
Namun, jika Anda bekerja di luar Azure Pembelajaran Mesin, Anda perlu mengonfigurasi MLflow untuk menunjuk ke ruang kerja. Lingkungan yang terpengaruh termasuk komputer lokal Anda, Azure Synapse Analytics, dan Azure Databricks.
Penting
Saat Anda menggunakan infrastruktur komputasi Azure, Anda tidak perlu mengonfigurasi URI pelacakan. Ini secara otomatis dikonfigurasi untuk Anda. Lingkungan dengan konfigurasi otomatis termasuk notebook Azure Pembelajaran Mesin, notebook Jupyter yang dihosting di instans komputasi Azure Pembelajaran Mesin, dan pekerjaan yang berjalan di kluster komputasi Azure Pembelajaran Mesin.
Prasyarat
Paket MLflow SDK
mlflowdan plugin Azure Pembelajaran Mesinazureml-mlflowuntuk MLflow. Anda dapat menggunakan perintah berikut untuk menginstal perangkat lunak ini:pip install mlflow azureml-mlflowPetunjuk / Saran
Alih-alih
mlflow, pertimbangkan untuk menggunakanmlflow-skinny. Paket ini adalah paket MLflow ringan tanpa penyimpanan SQL, server, UI, atau dependensi ilmu data. Disarankan untuk pengguna yang terutama membutuhkan kemampuan pelacakan dan pengelogan MLflow tetapi tidak ingin mengimpor rangkaian fitur lengkap, termasuk penyebaran.Ruang kerja Azure Machine Learning. Untuk membuat ruang kerja, lihat Membuat sumber daya yang Anda butuhkan untuk memulai.
Izin akses untuk melakukan operasi MLflow di ruang kerja Anda. Untuk daftar operasi dan izin yang diperlukan, lihat Operasi MLflow.
Mengonfigurasi URI pelacakan MLflow
Untuk melakukan pelacakan jarak jauh, atau melacak eksperimen yang berjalan di luar Azure Pembelajaran Mesin, konfigurasikan MLflow untuk menunjuk ke URI pelacakan ruang kerja Azure Pembelajaran Mesin Anda.
Untuk menyambungkan MLflow ke ruang kerja Azure Pembelajaran Mesin, Anda memerlukan URI pelacakan ruang kerja. Setiap ruang kerja memiliki URI pelacakannya sendiri, yang dimulai dengan protokol azureml://.
Dapatkan URI pelacakan untuk ruang kerja Anda:
BERLAKU UNTUK:
Ekstensi ml Azure CLI v2 (saat ini)Masuk dan konfigurasikan ruang kerja Anda:
az account set --subscription <subscription-ID> az configure --defaults workspace=<workspace-name> group=<resource-group-name> location=<location>Dapatkan URI pelacakan dengan menggunakan
az ml workspaceperintah :az ml workspace show --query mlflow_tracking_uri
Konfigurasikan URI pelacakan:
set_tracking_uri()Gunakan metode untuk mengatur URI pelacakan MLflow ke URI pelacakan ruang kerja Anda.import mlflow mlflow.set_tracking_uri(mlflow_tracking_uri)Petunjuk / Saran
Beberapa skenario melibatkan bekerja di lingkungan bersama seperti kluster Azure Databricks atau kluster Azure Synapse Analytics. Dalam kasus ini, berguna untuk mengatur
MLFLOW_TRACKING_URIvariabel lingkungan di tingkat kluster daripada untuk setiap sesi. Mengatur variabel di tingkat kluster secara otomatis mengonfigurasi URI pelacakan MLflow untuk menunjuk ke Azure Pembelajaran Mesin untuk semua sesi dalam kluster.
Mengonfigurasi autentikasi
Setelah menyiapkan pelacakan, Anda juga perlu mengonfigurasi metode autentikasi untuk ruang kerja terkait.
Secara default, plugin Azure Pembelajaran Mesin untuk MLflow melakukan autentikasi interaktif dengan membuka browser default untuk meminta kredensial. Tetapi plugin juga mendukung beberapa mekanisme autentikasi lainnya. Paket azure-identity menyediakan dukungan ini. Paket ini diinstal sebagai dependensi plugin azureml-mlflow .
Proses autentikasi mencoba metode berikut, satu demi satu, hingga berhasil:
- Lingkungan: Informasi akun yang ditentukan melalui variabel lingkungan dibaca dan digunakan untuk autentikasi.
- Identitas terkelola: Jika aplikasi disebarkan ke host Azure dengan identitas terkelola diaktifkan, identitas terkelola digunakan untuk autentikasi.
-
Azure CLI: Jika Anda menggunakan perintah Azure CLI
az loginuntuk masuk, kredensial Anda digunakan untuk autentikasi. -
Azure PowerShell: Jika Anda menggunakan perintah Azure PowerShell
Connect-AzAccountuntuk masuk, kredensial Anda digunakan untuk autentikasi. - Browser interaktif: Pengguna diautentikasi secara interaktif melalui browser default.
Untuk pekerjaan interaktif di mana ada pengguna yang terhubung ke sesi, Anda dapat mengandalkan autentikasi interaktif. Tidak ada tindakan lebih lanjut yang diperlukan.
Peringatan
Autentikasi browser interaktif memblokir eksekusi kode saat meminta kredensial. Pendekatan ini tidak cocok untuk autentikasi di lingkungan tanpa pengawas seperti pekerjaan pelatihan. Kami menyarankan agar Anda mengonfigurasi mode autentikasi yang berbeda di lingkungan tersebut.
Untuk skenario yang memerlukan eksekusi tanpa pengawas, Anda perlu mengonfigurasi perwakilan layanan untuk berkomunikasi dengan Azure Pembelajaran Mesin. Untuk informasi tentang membuat perwakilan layanan, lihat Mengonfigurasi perwakilan layanan.
Gunakan ID penyewa, ID klien, dan rahasia klien perwakilan layanan Anda dalam kode berikut:
import os
os.environ["AZURE_TENANT_ID"] = "<Azure-tenant-ID>"
os.environ["AZURE_CLIENT_ID"] = "<Azure-client-ID>"
os.environ["AZURE_CLIENT_SECRET"] = "<Azure-client-secret>"
Petunjuk / Saran
Saat Anda bekerja di lingkungan bersama, kami sarankan Anda mengonfigurasi variabel lingkungan ini di tingkat komputasi. Sebagai praktik terbaik, kelola sebagai rahasia dalam instans Azure Key Vault.
Misalnya, dalam konfigurasi kluster Azure Databricks, Anda dapat menggunakan rahasia dalam variabel lingkungan dengan cara berikut: AZURE_CLIENT_SECRET={{secrets/<scope-name>/<secret-name>}}. Untuk informasi selengkapnya tentang menerapkan pendekatan ini di Azure Databricks, lihat Mereferensikan rahasia dalam variabel lingkungan, atau lihat dokumentasi untuk platform Anda.
Jika Anda lebih suka menggunakan sertifikat daripada rahasia, Anda dapat mengonfigurasi variabel lingkungan berikut:
- Atur
AZURE_CLIENT_CERTIFICATE_PATHke jalur file yang berisi sertifikat dan pasangan kunci privat dalam format Privacy Enhanced Mail (PEM) atau Public-Key Cryptography Standards 12 (PKCS #12). - Atur
AZURE_CLIENT_CERTIFICATE_PASSWORDke kata sandi file sertifikat, jika menggunakan kata sandi.
Mengonfigurasi tingkat otorisasi dan izin
Beberapa peran default seperti AzureML Data Scientist dan Contributor sudah dikonfigurasi untuk melakukan operasi MLflow di ruang kerja Azure Pembelajaran Mesin. Jika Anda menggunakan peran kustom, Anda memerlukan izin berikut:
Untuk menggunakan pelacakan MLflow:
Microsoft.MachineLearningServices/workspaces/experiments/*Microsoft.MachineLearningServices/workspaces/jobs/*
Untuk menggunakan registri model MLflow:
Microsoft.MachineLearningServices/workspaces/models/*/*
Untuk melihat cara memberikan akses ke ruang kerja Anda ke perwakilan layanan yang Anda buat atau ke akun pengguna Anda, lihat Memberikan akses.
Memecahkan masalah autentikasi
MLflow mencoba mengautentikasi ke Azure Pembelajaran Mesin pada operasi pertama yang berinteraksi dengan layanan, seperti mlflow.set_experiment() atau mlflow.start_run(). Jika Anda mengalami masalah atau permintaan autentikasi yang tidak terduga selama proses, Anda dapat meningkatkan tingkat pengelogan untuk mendapatkan detail selengkapnya tentang kesalahan:
import logging
logging.getLogger("azure").setLevel(logging.DEBUG)
Atur nama eksperimen (opsional)
Semua eksekusi MLflow dicatat ke eksperimen aktif. Secara default, eksekusi dicatat ke eksperimen bernama Default yang secara otomatis dibuat untuk Anda. Anda dapat mengonfigurasi eksperimen yang digunakan untuk pelacakan.
Petunjuk / Saran
Saat Anda menggunakan Azure Pembelajaran Mesin CLI v2 untuk mengirimkan pekerjaan, Anda dapat mengatur nama eksperimen dengan menggunakan experiment_name properti dalam definisi YAML pekerjaan. Anda tidak perlu mengonfigurasinya dalam skrip pelatihan Anda. Untuk informasi selengkapnya, lihat YAML: nama tampilan, nama eksperimen, deskripsi, dan tag.
Gunakan perintah MLflow mlflow.set_experiment() untuk mengonfigurasi eksperimen Anda.
experiment_name = "experiment_with_mlflow"
mlflow.set_experiment(experiment_name)
Mengonfigurasi dukungan untuk cloud Azure nonpublik
Plugin Azure Pembelajaran Mesin untuk MLflow dikonfigurasi secara default untuk bekerja dengan cloud Azure global. Namun, Anda dapat mengonfigurasi cloud Azure yang Anda gunakan dengan mengatur AZUREML_CURRENT_CLOUD variabel lingkungan:
import os
os.environ["AZUREML_CURRENT_CLOUD"] = "AzureChinaCloud"
Anda dapat mengidentifikasi cloud yang Anda gunakan dengan perintah Azure CLI berikut:
az cloud list
Cloud saat ini memiliki nilai IsActive yang diatur ke True.
Konten terkait
Sekarang setelah lingkungan Anda terhubung ke ruang kerja Anda di Azure Pembelajaran Mesin, Anda dapat mulai bekerja dengannya.