Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, MLflow'u izleme, kayıt defteri yönetimi ve dağıtım için bir Azure Machine Learning çalışma alanına bağlanacak şekilde yapılandırma açıklanmaktadır.
Azure Machine Learning çalışma alanları MLflow ile uyumludur; bu da ek yapılandırma olmadan MLflow sunucuları gibi davranabilecekleri anlamına gelir. Her çalışma alanı, MLflow'un çalışma alanına bağlanmak için kullanabileceği bir MLflow izleme URI'sine sahiptir. Azure Machine Learning çalışma alanları zaten MLflow ile çalışacak şekilde yapılandırılmıştır, bu nedenle ek yapılandırma gerekmez.
Ancak Azure Machine Learning dışında çalışıyorsanız, MLflow'ı çalışma alanına işaret eden şekilde yapılandırmanız gerekir. Etkilenen ortamlar arasında yerel makineniz, Azure Synapse Analytics ve Azure Databricks bulunur.
Önemli
Azure işlem altyapısını kullanırken izleme URI'sini yapılandırmanız gerekmez. Sizin için otomatik olarak yapılandırılır. Otomatik yapılandırmaya sahip ortamlar arasında Azure Machine Learning not defterleri, Azure Machine Learning işlem örneklerinde barındırılan Jupyter not defterleri ve Azure Machine Learning işlem kümelerinde çalışan işler bulunur.
Önkoşullar
Python 3.10 veya üzeri.
MLflow SDK
mlflowpaketi ve MLflow için Azure Machine Learningazureml-mlfloweklentisi. Bu yazılımı yüklemek için aşağıdaki komutu kullanabilirsiniz:pip install mlflow azureml-mlflowİpucu
mlflowyerine kullanmayımlflow-skinnygöz önünde bulundurun. Bu paket, SQL depolama, sunucu, kullanıcı arabirimi veya veri bilimi bağımlılıkları içermeyen basit bir MLflow paketidir. Öncelikle MLflow izleme ve günlüğe kaydetme özelliklerine ihtiyacı olan ancak dağıtımlar da dahil olmak üzere tüm özellik paketini içeri aktarmak istemeyen kullanıcılar için önerilir.Azure Machine Learning çalışma alanı. Çalışma alanı oluşturmak için, Başlamak için ihtiyacınız olan kaynakları oluşturun bölümüne bakın.
Çalışma alanınızda MLflow işlemleri gerçekleştirmek için erişim izinleri. İşlemlerin ve gerekli izinlerin listesi için bkz . MLflow işlemleri.
MLflow izleme URI'sini yapılandırma
Uzaktan izleme yapmak veya Azure Machine Learning dışında çalışan denemeleri izlemek için MLflow'ı Azure Machine Learning çalışma alanınızın izleme URI'sine işaret eden şekilde yapılandırın.
MLflow'u bir Azure Machine Learning çalışma alanına bağlamak için çalışma alanının izleme URI'sine ihtiyacınız vardır. Her çalışma alanının protokolüyle azureml://başlayan kendi izleme URI'leri vardır.
Çalışma alanınız için izleme URI'sini alın:
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)Oturum açın ve çalışma alanınızı yapılandırın:
az account set --subscription <subscription-ID> az configure --defaults workspace=<workspace-name> group=<resource-group-name> location=<location>komutunu kullanarak izleme URI'sini
az ml workspacealın:az ml workspace show --query mlflow_tracking_uri
İzleme URI'sini yapılandırın:
MLflow izleme URI'sini çalışma alanınızın izleme URI'sine ayarlamak için
set_tracking_uri()yöntemini kullanın.import mlflow mlflow.set_tracking_uri(mlflow_tracking_uri)İpucu
Bazı senaryolar, Azure Databricks kümesi veya Azure Synapse Analytics kümesi gibi paylaşılan bir ortamda çalışmayı içerir. Bu gibi durumlarda ortam değişkenini
MLFLOW_TRACKING_URIher oturum yerine küme düzeyinde ayarlamak yararlı olur. Değişkeni küme düzeyinde ayarlamak, MLflow izleme URI'sini kümedeki tüm oturumlar için Azure Machine Learning'e işaret edecek şekilde otomatik olarak yapılandırılır.
Kimlik doğrulamasını yapılandırma
İzlemeyi ayarladıktan sonra, ilişkili çalışma alanı için kimlik doğrulama yöntemini de yapılandırmanız gerekir.
Varsayılan olarak, MLflow için Azure Machine Learning eklentisi kimlik bilgilerini isteyecek şekilde varsayılan tarayıcıyı açarak etkileşimli kimlik doğrulaması gerçekleştirir. Ancak eklenti diğer birkaç kimlik doğrulama mekanizmasını da destekler. Paket azure-identity bu desteği sağlar. Bu paket, eklentinin azureml-mlflow bağımlılığı olarak yüklenir.
Kimlik doğrulama işlemi, biri başarılı olana kadar aşağıdaki yöntemleri birer birer dener:
- Ortam: İşlem, ortam değişkenlerinden hesap bilgilerini okur ve kimlik doğrulaması için kullanır.
- Yönetilen kimlik: Uygulama, yönetilen kimlik etkin bir Azure konağına dağıtılırsa, işlem kimlik doğrulaması için yönetilen kimliği kullanır.
-
Azure CLI: Oturum açmak için Azure CLI
az loginkomutunu kullanırsanız, işlem kimlik doğrulaması için kimlik bilgilerinizi kullanır. -
Azure PowerShell: Oturum açmak için Azure PowerShell
Connect-AzAccountkomutunu kullanırsanız, işlem kimlik doğrulaması için kimlik bilgilerinizi kullanır. - Etkileşimli tarayıcı: Kullanıcının kimliği varsayılan tarayıcı üzerinden etkileşimli olarak doğrulanır.
Oturuma bağlı bir kullanıcının bulunduğu etkileşimli işler için etkileşimli kimlik doğrulamasına güvenebilirsiniz. Başka bir eylem gerekli değildir.
Uyarı
Etkileşimli tarayıcı kimlik doğrulaması, kimlik bilgileri istendiğinde kod yürütülmesini engeller. Bu yaklaşım, eğitim işleri gibi katılımsız ortamlarda kimlik doğrulaması için uygun değildir. Bu ortamlarda farklı bir kimlik doğrulama modu yapılandırmanızı öneririz.
Katılımsız yürütme gerektiren senaryolar için Azure Machine Learning ile iletişim kurmak için bir hizmet sorumlusu yapılandırmanız gerekir. Hizmet sorumlu kimliği oluşturma hakkında bilgi için bkz Hizmet sorumlu kimliği yapılandırma.
Aşağıdaki kodda hizmet asıl bileşeninizin kiracı kimliğini, istemci kimliğini ve istemci sırrını kullanın.
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>"
İpucu
Paylaşılan ortamlarda çalışırken, bu ortam değişkenlerini işlem düzeyinde yapılandırmanızı öneririz. Azure Key Vault örneğinde bunları gizli anahtarlar olarak yönetin.
Örneğin, Azure Databricks kümesi yapılandırmasında ortam değişkenlerinde gizli dizileri şu şekilde kullanabilirsiniz: AZURE_CLIENT_SECRET={{secrets/<scope-name>/<secret-name>}}. Bu yaklaşımı Azure Databricks'te uygulama hakkında daha fazla bilgi için bkz. Bir ortam değişkeninde gizli diziyi kullanma veya platformunuzun belgelerine göz atın.
Gizli dizi yerine sertifika kullanmak istiyorsanız, aşağıdaki ortam değişkenlerini yapılandırabilirsiniz:
-
AZURE_CLIENT_CERTIFICATE_PATHöğesini, Privacy-Enhanced Posta (PEM) veya Public-Key Şifreleme Standartları 12 (PKCS #12) biçiminde sertifika ve özel anahtar çiftini içeren dosyanın yoluna ayarlayın. - Bir parola kullanıyorsa, sertifika dosyasının parolası olarak ayarlayın
AZURE_CLIENT_CERTIFICATE_PASSWORD.
Yetkilendirme ve izin düzeylerini yapılandırma
AzureML Veri Bilimci ve Katkıda Bulunan gibi bazı varsayılan roller, Azure Machine Learning çalışma alanında MLflow işlemlerini gerçekleştirmek için zaten yapılandırılmıştır. Özel bir rol kullanıyorsanız aşağıdaki izinlere ihtiyacınız vardır:
MLflow izlemeyi kullanmak için:
Microsoft.MachineLearningServices/workspaces/experiments/*Microsoft.MachineLearningServices/workspaces/jobs/*
MLflow model kayıt defterini kullanmak için:
Microsoft.MachineLearningServices/workspaces/models/*/*
Oluşturduğunuz bir hizmet sorumlusuna veya kullanıcı hesabınıza çalışma alanınıza nasıl erişim verildiğini görmek için bkz . Erişim verme.
Kimlik doğrulama sorunlarını giderme
MLflow, veya mlflow.set_experiment()gibi mlflow.start_run() hizmetle etkileşim kuran ilk işlemde Azure Machine Learning'de kimlik doğrulaması yapmaya çalışır. İşlem sırasında sorunlarla veya beklenmeyen kimlik doğrulaması istemleriyle karşılaşırsanız, hata hakkında daha fazla ayrıntı almak için günlük düzeyini artırabilirsiniz:
import logging
logging.getLogger("azure").setLevel(logging.DEBUG)
Deneme adını ayarlama (isteğe bağlı)
Tüm MLflow etkin denemenin günlüğünü çalıştırır. Varsayılan olarak, günlükler otomatik olarak oluşturulan Default adlı denemeye kaydedilir. İzleme için kullanılan denemeyi yapılandırabilirsiniz.
İpucu
İşleri göndermek için Azure Machine Learning CLI v2'yi kullandığınızda, işin YAML tanımındaki özelliğini kullanarak experiment_name deneme adını ayarlayabilirsiniz. Eğitim betiğiniz içerisinde yapılandırmanız gerekmez. Daha fazla bilgi için bkz . YAML: görünen ad, deneme adı, açıklama ve etiketler.
Denemenizi yapılandırmak için MLflow mlflow.set_experiment() komutunu kullanın.
experiment_name = "experiment_with_mlflow"
mlflow.set_experiment(experiment_name)
Aboneliği olmayan bir Azure bulutu için desteği yapılandırma
MLflow için Azure Machine Learning eklentisi varsayılan olarak genel Azure bulutuyla çalışacak şekilde yapılandırılır. Ancak, ortam değişkenini ayarlayarak kullandığınız Azure bulutunu AZUREML_CURRENT_CLOUD yapılandırabilirsiniz:
import os
os.environ["AZUREML_CURRENT_CLOUD"] = "AzureChinaCloud"
Kullandığınız bulutu aşağıdaki Azure CLI komutuyla tanımlayabilirsiniz:
az cloud list
Geçerli bulutta değeri IsActive olarak Trueayarlanmıştır.
İlgili içerik
Ortamınızı Azure Machine Learning'deki çalışma alanınıza bağladıktan sonra onunla çalışmaya başlayabilirsiniz.