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.
Azure Machine Learning kayıt defteri, kuruluşunuzdaki çalışma alanları arasında işbirliği yapmanızı sağlar. Kayıt defterlerini kullanarak modelleri, bileşenleri ve ortamları paylaşabilirsiniz.
Birden çok çalışma alanında aynı model, bileşen ve ortam kümesini kullanmak istediğiniz iki senaryo vardır:
-
Çalışma alanları arası MLOps: Bir çalışma alanında
devmodel eğittiğinizde modelitestveprodçalışma alanlarına dağıtmanız gerekir. Bu durumda, modelintestveyaprodçalışma alanlarındaki uç noktalara dağıtıldığı durum ile modeli eğitmek içindevçalışma alanında kullanılan eğitim işi, ölçümler, kod, veriler ve ortam arasında uçtan uca soy ağacı elde etmek istersiniz. - Modelleri ve işlem hatlarını farklı ekiplerde paylaşma ve yeniden kullanma: Paylaşma ve yeniden kullanma, işbirliğini ve üretkenliği artırır. Bu senaryoda, eğitilmiş bir modeli ve onu merkezi bir kataloğa eğitmek için kullanılan ilişkili bileşenleri ve ortamları yayımlamak isteyebilirsiniz. Buradan, diğer ekiplerdeki iş arkadaşlarınız kendi denemelerinde paylaştığınız varlıkları arayabilir ve yeniden kullanabilir.
Bu makalede şunların nasıl yapılacağını öğreneceksiniz:
- Kayıt defterinde bir ortam ve bileşen oluşturun.
- Çalışma alanında model eğitim işi göndermek için kayıt defterindeki bileşeni kullanın.
- Eğitilen modeli kayıt defterine kaydedin.
- Modeli kayıt defterinden çalışma alanında bir çevrimiçi uç noktaya dağıtın ve ardından bir çıkarım isteği gönderin.
Önkoşullar
Bu makaledeki adımları takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:
- Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. free veya ücretli Azure Machine Learning sürümünü deneyin.
Modelleri, bileşenleri ve ortamları paylaşmak için bir Azure Machine Learning kayıt defteri. Kayıt defteri oluşturmak için bkz. Kayıt defteri oluşturmayı öğrenme.
Azure Machine Learning çalışma alanı. Bilginiz yoksa bir tane oluşturmak için, Hızlı Başlangıç: Çalışma Alanı Kaynakları Oluşturma makalesindeki adımları kullanın.
Önemli
Çalışma alanınızı oluşturduğunuz Azure bölge (konum) Azure Machine Learning kayıt defteri için desteklenen bölgeler listesinde olmalıdır
Azure CLI ve
mluzantısı veya Azure Machine Learning Python SDK v2:Azure CLI ve uzantıyı yüklemek için bkz. CLI (v2) yükleme, ayarlama ve kullanma.
Önemli
Bu makaledeki CLI örneklerinde Bash (veya uyumlu) kabuğu kullandığınız varsayılır. Örneğin, linux sisteminden veya Linux için Windows Alt Sistemi.
Örneklerde ayrıca aboneliğiniz, çalışma alanınız, kaynak grubunuz veya konumunuz için parametreleri belirtmeniz gerekmeyecek şekilde Azure CLI için varsayılanları yapılandırdığınız varsayılır. Varsayılan ayarları ayarlamak için aşağıdaki komutları kullanın. Aşağıdaki parametreleri yapılandırmanızın değerleriyle değiştirin:
-
<subscription>değerini Azure abonelik kimliğiniz ile değiştirin. -
<workspace>değerini Azure Machine Learning çalışma alanı adınız ile değiştirin. -
<resource-group>değerini çalışma alanınızı içeren Azure kaynak grubuyla değiştirin. -
<location>değerini çalışma alanınızı içeren Azure bölgesiyle değiştirin.
az account set --subscription <subscription> az configure --defaults workspace=<workspace> group=<resource-group> location=<location>komutunu kullanarak
az configure -lgeçerli varsayılanlarınızın ne olduğunu görebilirsiniz.-
Örnek depoları klonla
Bu makaledeki kod örnekleri, examples deposundaki nyc_taxi_data_regression örneğini temel alır. Bu dosyaları geliştirme ortamınızda kullanmak için aşağıdaki komutları kullanarak depoyu kopyalayın ve dizinleri örnek olarak değiştirin:
git clone https://github.com/Azure/azureml-examples
cd azureml-examples
CLI örneğinde, examples deponuzun yerel kopyasında dizinleri cli/jobs/pipelines-with-components/nyc_taxi_data_regression olarak değiştirin.
cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression
SDK bağlantısı oluşturma
Ipucu
Bu adım yalnızca Python SDK kullanılırken gereklidir.
hem Azure Machine Learning çalışma alanına hem de kayıt defterine bir istemci bağlantısı oluşturun:
ml_client_workspace = MLClient( credential=credential,
subscription_id = "<workspace-subscription>",
resource_group_name = "<workspace-resource-group",
workspace_name = "<workspace-name>")
print(ml_client_workspace)
ml_client_registry = MLClient(credential=credential,
registry_name="<REGISTRY_NAME>",
registry_location="<REGISTRY_REGION>")
print(ml_client_registry)
Kayıt defterinde ortam oluşturma
Ortamlar, eğitim işlerini çalıştırmak veya modelleri dağıtmak için gereken docker kapsayıcısını ve Python bağımlılıklarını tanımlar. Ortamlar hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
Ipucu
Çalışma alanında veya kayıt defterinde ortam oluşturmak için aynı CLI komutu az ml environment create kullanılabilir.
--workspace-name komutuyla çalıştırıldığında bir çalışma alanında ortam oluşturulurken, --registry-name komutuyla çalıştırmak kayıt defterinde ortam oluşturur.
python:3.10 docker görüntüsünü kullanan ve SciKit Learn çerçevesini kullanarak bir eğitim işi çalıştırmak için gereken Python paketleri yükleyen bir ortam oluşturuyoruz. Örnek depoyu kopyaladıysanız ve cli/jobs/pipelines-with-components/nyc_taxi_data_regression klasöründeyseniz, env_train.yml ortam tanımı dosyasını, env_train/Dockerfile docker dosyasına referans veren, görebilmeniz gerekir. içindekiler env_train.yml aşağıdaki gibidir:
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: SKLearnEnv
version: 1-<VERSION>
description: Scikit Learn environment
build:
path: ./env_train
Ortamı az ml environment create kullanarak aşağıdaki gibi oluşturun.
az ml environment create --file env_train.yml --registry-name <registry-name>
Zaten bu ada ve sürüme sahip bir ortamın kayıt defterinde bulunduğuna dair bir hata alırsanız, version içindeki alanı env_train.yml düzenleyebilir veya CLI'da env_train.yml içindeki sürüm değerini geçersiz kılacak farklı bir sürüm belirtebilirsiniz.
# use shell epoch time as the version
version=$(date +%s)
az ml environment create --file env_train.yml --registry-name <registry-name> --set version=$version
Ipucu
version=$(date +%s) yalnızca Linux'ta çalışır. bu işe yaramazsa değerini rastgele bir sayıyla değiştirin $version .
name ve version ortam değerlerini az ml environment create komutunun çıktısından not edin ve bunları aşağıdaki az ml environment show komutlarıyla kullanın. Sonraki bölümde kayıt defterinde bir bileşen oluştururken name ve version gerekecek.
az ml environment show --name SKLearnEnv --version 1 --registry-name <registry-name>
Ipucu
Farklı bir ortam adı veya sürümü kullandıysanız, --name ve --version parametrelerini buna göre değiştirin.
Kayıt defterindeki tüm ortamları listelemek için de kullanabilirsiniz az ml environment list --registry-name <registry-name> .
Azure Machine Learning Studio'da tüm ortamları görüntüleyebilirsiniz. Genel kullanıcı arabirimine gidip Kayıt Defterleri girişini aradığınızdan emin olun.
Not
Kayıt defteri kaynağının sistem tarafından atanan yönetilen kimliği, bu kayıt defteriyle ilişkilendirilmiş Azure Container Registry (ACR) örneğinde AcrPull iznine sahiptir. Bir çalışma alanı işleminin ortam görüntüsünü çekmesi gerektiğinde, AzureML Kayıt Defteri görüntünün çalışma alanı işlemi tarafından çekilmesine olanak sağlayan uygun bir kapsam haritasına sahip bir ACR belirteci oluşturur ve döndürür. Ne çalışma alanının ne de işlem tarafından yönetilen kimliğin, kayıt defterinin ACR'sine doğrudan erişimi yok.
Kayıt defterinde bileşen oluşturma
Bileşenler, Azure Machine Learning Machine Learning işlem hatlarının yeniden kullanılabilir yapı taşlarıdır. Tek bir işlem hattı adımının kodunu, komutunu, ortamını, giriş arabirimini ve çıkış arabirimini bir bileşene paketleyebilirsiniz. Ardından, farklı bir işlem hattı yazdığınızda bağımlılıkları ve kodu taşıma konusunda endişelenmenize gerek kalmadan bileşeni birden çok işlem hattında yeniden kullanabilirsiniz.
Bir çalışma alanında bileşen oluşturmak, bu bileşeni o çalışma alanı içindeki herhangi bir işlem hattı işinde kullanmanıza olanak tanır. Bir kayıt defterinde bileşen oluşturmak, bileşeni kuruluşunuzdaki herhangi bir çalışma alanında bulunan herhangi bir işlem hattında kullanmanıza olanak tanır. Bir kayıt defterinde bileşen oluşturmak, kuruluşunuzdaki farklı ekiplerin denemeleri için kullanılabilecek modüler yeniden kullanılabilir yardımcı programlar veya paylaşılan eğitim görevleri oluşturmanın harika bir yoludur.
Bileşenler hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
Bileşenleri işlem hatlarında (SDK) kullanma
Önemli
Kayıt defteri yalnızca adlandırılmış varlıkları (veri/model/bileşen/ortam) destekler. Kayıt defterindeki bir varlığa başvurmak için önce kayıt defterinde oluşturmanız gerekir. Özellikle işlem hattı bileşeni örneği için, işlem hattı bileşeninde başvuru bileşeni veya ortam istiyorsanız, önce bileşeni veya ortamı kayıt defterinde oluşturmanız gerekir.
klasöründe cli/jobs/pipelines-with-components/nyc_taxi_data_regressionolduğunuzdan emin olun. Scikit Learn eğitim betiğini train.ymlpaketleyen bileşen tanım dosyasını train_src/train.py bulursunuz.
train.yml
özenle seçilmiş ortamısklearn-1.5azureml kayıt defterinden kullanır. önceki adımda oluşturduğunuz Scikit Learn ortamını kullanmak için içindeki environment alanını düzenleyebilir train.yml veya seçilen ortamı tutabilirsiniz. Bileşen tanım dosyası train.yml aşağıdaki örneğe benzer:
# <component>
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
name: train_linear_regression_model
display_name: TrainLinearRegressionModel
version: 1
type: command
inputs:
training_data:
type: uri_folder
test_split_ratio:
type: number
min: 0
max: 1
default: 0.2
outputs:
model_output:
type: mlflow_model
test_data:
type: uri_folder
code: ./train_src
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
command: >-
python train.py
--training_data ${{inputs.training_data}}
--test_data ${{outputs.test_data}}
--model_output ${{outputs.model_output}}
--test_split_ratio ${{inputs.test_split_ratio}}
# </component>
Düzenlenmiş ortam yerine önceki adımda kendi ortamınızı kullanmak istiyorsanız, environment alanını azureml://registries/<registry-name>/environments/SKLearnEnv/versions/1 olarak güncelleyin.
az ml component create Bileşeni aşağıdaki gibi oluşturmak için komutunu çalıştırın.
az ml component create --file train.yml --registry-name <registry-name>
Ipucu
Çalışma alanında veya kayıt defterinde bileşenler oluşturmak için aynı CLI komutu az ml component create kullanılabilir. Komut --workspace-name ile çalıştırıldığında bileşen bir çalışma alanında oluşturulurken, komut --registry-name ile çalıştırıldığında bileşen kayıt defterinde oluşturulur.
öğesini düzenlememek train.ymlisterseniz, CLI'da ortam adını aşağıdaki gibi geçersiz kılabilirsiniz:
az ml component create --file train.yml --registry-name <registry-name> --set environment=azureml://registries/<registry-name>/environments/SKLearnEnv/versions/1
Ipucu
Bileşen adının zaten kayıt defterinde mevcut olduğunu belirten bir hata alırsanız, train.yml içinde sürümü düzenleyebilir veya CLI'da sürümü rastgele bir sürümle geçersiz kılabilirsiniz.
Komponentin name ve version değerlerini az ml component create komutunun çıktısından not alın ve bunları aşağıdaki az ml component show komutları ile kullanın. Çalışma alanında bir eğitim işi gönderirken sonraki bölümde name ve version'e ihtiyacınız olacak.
az ml component show --name <component_name> --version <component_version> --registry-name <registry-name>
Kayıt defterindeki tüm bileşenleri listelemek için de kullanabilirsiniz az ml component list --registry-name <registry-name> .
Azure Machine Learning stüdyosunda tüm bileşenlere göz atabilirsiniz. Genel kullanıcı arabirimine gidip Kayıt Defterleri girişini aradığınızdan emin olun.
Kayıt defterindeki bileşeni kullanarak bir ortamda işlem hattı görevi çalıştırma
Bir kayıt defterinden bir bileşeni kullanan bir işlem hattı işi çalıştırılırken hesaplama kaynakları ve eğitim verileri çalışma alanında yereldir. İşleri çalıştırma hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
- Görevleri Çalıştırma (CLI)
- İşleri yürütme (SDK)
- Bileşenlerle işlem hattı görevleri (CLI)
- Bileşenlerle işlem hattı görevleri (SDK)
Önceki bölümde oluşturulan Scikit Learn eğitim bileşeniyle bir model eğitmek için bir işlem hattı görevi çalıştırıyoruz. Klasör cli/jobs/pipelines-with-components/nyc_taxi_data_regression içinde olduğunuzu kontrol edin. Eğitim veri kümesi klasöründe bulunur data_transformed .
single-job-pipeline.yml dosyasının train_job bölümünün altındaki component bölümünü, önceki bölümde oluşturulan eğitim bileşenine başvuracak şekilde düzenleyin. Elde edilen single-job-pipeline.yml sonuç aşağıdaki gibidir:
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc_taxi_data_regression_single_job
description: Single job pipeline to train regression model based on nyc taxi dataset
jobs:
train_job:
type: command
component: azureml://registries/<registry-name>/component/train_linear_regression_model/versions/1
compute: azureml:cpu-cluster
inputs:
training_data:
type: uri_folder
path: ./data_transformed
outputs:
model_output:
type: mlflow_model
test_data:
Önemli olan, bu işlem hattının belirli bir çalışma alanında olmayan bir bileşeni kullanarak çalışma alanında çalıştırılacak olmasıdır. Bileşen, kuruluşunuzdaki herhangi bir çalışma alanıyla kullanılabilecek bir kayıt defterindedir. Bu eğitim işini, eğitim kodunu ve ortamı söz konusu çalışma alanında kullanılabilir hale getirme konusunda endişelenmeden erişiminiz olan herhangi bir çalışma alanında çalıştırabilirsiniz.
Uyarı
- İşlem hattı işini çalıştırmadan önce, işi çalıştırdığınız çalışma alanının bileşeni oluşturduğunuz kayıt defteri tarafından desteklenen Azure bir bölgede olduğunu onaylayın.
- Çalışma alanının bir
cpu-clusteradlı işlem kümesine sahip olduğunu onaylayın veyajobs.train_job.computealtında, işlem kümenizin adıylacomputealanını düzenleyin.
az ml job create komutunu kullanarak işlem hattı işini çalıştırın.
az ml job create --file single-job-pipeline.yml
Ipucu
Varsayılan çalışma alanını ve kaynak grubunu önkoşullar bölümünde açıklandığı gibi yapılandırmadıysanız, çalışması için --workspace-name ve --resource-group parametrelerini belirtmeniz az ml job create gerekir.
Alternatif olarak, single-job-pipeline.yml düzenlemesini atlayabilir ve CLI tarafından kullanılan train_job bileşen adını geçersiz kılabilirsiniz.
az ml job create --file single-job-pipeline.yml --set jobs.train_job.component=azureml://registries/<registry-name>/component/train_linear_regression_model/versions/1
Eğitim işinde kullanılan bileşen bir kayıt defteri aracılığıyla paylaşıldığından, işi farklı aboneliklerde bile kuruluşunuzda erişiminiz olan herhangi bir çalışma alanına gönderebilirsiniz. Örneğin, dev-workspace, test-workspace ve prod-workspace eğitim işini bu üç çalışma alanında çalıştırmak, üç az ml job create komutu çalıştırmak kadar kolaydır.
az ml job create --file single-job-pipeline.yml --workspace-name dev-workspace --resource-group <resource-group-of-dev-workspace>
az ml job create --file single-job-pipeline.yml --workspace-name test-workspace --resource-group <resource-group-of-test-workspace>
az ml job create --file single-job-pipeline.yml --workspace-name prod-workspace --resource-group <resource-group-of-prod-workspace>
Azure Machine Learning Stüdyosu'da işi görüntülemek için iş çıkışındaki uç nokta bağlantısını seçin. Burada eğitim ölçümlerini analiz edebilir, işin kayıt defterindeki bileşeni ve ortamı kullandığını doğrulayabilir ve eğitilen modeli gözden geçirebilirsiniz. Çıktıdan işin name not edin veya Azure Machine Learning Stüdyosu'daki işe genel bakış bölümünden aynı bilgileri bulun. Kayıt defterinde model oluşturmayla ilgili sonraki bölümde eğitilen modeli indirmek için bu bilgilere ihtiyacınız olacaktır.
Kayıt defterinde model oluşturma
Bu bölümde kayıt defterinde model oluşturmayı öğreneceksiniz. Azure Machine Learning model yönetimi hakkında daha fazla bilgi edinmek için manage models gözden geçirin. Kayıt defterinde model oluşturmanın iki farklı yolunu inceleyeceğiz. İlki yerel dosyalardandır. İkincisi, çalışma alanında kayıtlı bir modeli kayıt defterine kopyalamaktır.
Her iki seçenekte de MLflow biçiminde bir model oluşturursunuz ve bu da çıkarım kodu yazmadan çıkarım için bu modeli dağıtmanıza yardımcı olur.
Yerel dosyalardan kayıt defterinde model oluşturma
Önceki bölümdeki işin adıyla <job-name> değerini değiştirerek train_job çıktısından kullanılabilir olan modeli indirin. Model, MLflow meta veri dosyalarıyla birlikte ./artifacts/model/ içinde kullanılabilir olmalıdır.
# fetch the name of the train_job by listing all child jobs of the pipeline job
train_job_name=$(az ml job list --parent-job-name <job-name> --query [0].name | sed 's/\"//g')
# download the default outputs of the train_job
az ml job download --name $train_job_name
# review the model files
ls -l ./artifacts/model/
Ipucu
Varsayılan çalışma alanını ve kaynak grubunu önkoşullar bölümünde açıklandığı gibi yapılandırmadıysanız, çalışması için --workspace-name ve --resource-group parametrelerini belirtmeniz az ml model create gerekir.
Uyarı
az ml job list öğesinin çıktısı sed öğesine geçirilir. Bu yalnızca Linux kabuklarında çalışır. Windows kullanıyorsanız az ml job list --parent-job-name <job-name> --query [0].name çalıştırın ve tren işi adında gördüğünüz tüm tırnakları çıkarın.
Modeli indiremiyorsanız, önceki bölümdeki eğitim işi tarafından eğitilen örnek MLflow modelini cli/jobs/pipelines-with-components/nyc_taxi_data_regression/artifacts/model/ klasöründe bulabilirsiniz.
Modeli kayıt defterinde oluşturun:
# create model in registry
az ml model create --name nyc-taxi-model --version 1 --type mlflow_model --path ./artifacts/model/ --registry-name <registry-name>
Ipucu
- "Model adı ve sürümü zaten mevcutsa ve bir hata alırsanız,
versionparametresi için rastgele bir sayı kullanın." - Çalışma alanında veya kayıt defterinde model oluşturmak için aynı CLI komutu
az ml model createkullanılabilir. Komutunu--workspace-nameile çalıştırmak modeli çalışma alanında oluştururken, komutunu--registry-nameile çalıştırmak modeli kayıt defterinde oluşturur.
Çalışma alanından kayıt dizinine model aktarma
Bu iş akışında, modeli önce çalışma alanında oluşturur ve ardından kayıt defteriyle paylaşırsınız. Bu iş akışı, modeli paylaşmadan önce çalışma alanında test etmek istediğinizde kullanışlıdır. Örneğin, uç noktalara dağıtın ve bazı test verileriyle çıkarım yapmayı deneyin ve her şey iyi görünüyorsa modeli kayıt defterine kopyalayın. Bu iş akışı, farklı teknikler, çerçeveler veya parametreler kullanarak bir dizi model geliştirirken ve bunlardan yalnızca birini üretim adayı olarak kayıt defterine yükseltmek istediğinizde de yararlı olabilir.
Önceki bölümde yer alan işlem hattı işinin adına sahip olduğunuzdan emin olun ve komutta bunu değiştirerek eğitim işi adını getirin. Ardından eğitim işinin çıktısını kullanarak modeli çalışma alanına kaydedersiniz.
--path parametresinin, azureml://jobs/$train_job_name/outputs/artifacts/paths/model söz dizimiyle train_job çıkışına nasıl başvurduğuna dikkat edin.
# fetch the name of the train_job by listing all child jobs of the pipeline job
train_job_name=$(az ml job list --parent-job-name <job-name> --workspace-name <workspace-name> --resource-group <workspace-resource-group> --query [0].name | sed 's/\"//g')
# create model in workspace
az ml model create --name nyc-taxi-model --version 1 --type mlflow_model --path azureml://jobs/$train_job_name/outputs/artifacts/paths/model
Ipucu
- Model adı ve sürümünün
versionzaten var olduğunu belirten bir hata alırsanız parametre için rastgele bir sayı kullanın. - Varsayılan çalışma alanını ve kaynak grubunu önkoşullar bölümünde açıklandığı gibi yapılandırmadıysanız, çalışması için
--workspace-nameve--resource-groupparametrelerini belirtmenizaz ml model creategerekir.
Model adını ve sürümünü not edin. Modelin çalışma alanına kaydedilip kaydedilmediğini Studio kullanıcı arabiriminde göz atarak veya komutunu kullanarak az ml model show --name nyc-taxi-model --version $model_version doğrulayabilirsiniz.
Ardından, modeli çalışma alanından kayıt defterine paylaşacaksınız.
# share model registered in workspace to registry
az ml model share --name nyc-taxi-model --version 1 --registry-name <registry-name> --share-with-name <new-name> --share-with-version <new-version>
Ipucu
- Komutu değiştirdiyseniz doğru model adını ve sürümünü kullandığınızdan emin olun
az ml model create. -
--share-with-nameve--share-with-versionparametreleri gereklidir. Modelin kayıt defterinde sahip olacağı adı ve sürümü belirtir.
**
Modelin name ve version değerlerini az ml model create komutunun çıktısından kaydederek, bunları az ml model show komutlarla birlikte aşağıdaki gibi kullanın. Modeli çıkarım için çevrimiçi bir uç noktaya dağıtırken sonraki bölümde name ve version'e gereksinim duyacaksınız.
az ml model show --name <model_name> --version <model_version> --registry-name <registry-name>
Ayrıca az ml model list --registry-name <registry-name> kullanarak kayıt defterindeki tüm modelleri listeleyebilir veya Azure Machine Learning Stüdyosu kullanıcı arabirimindeki tüm bileşenlere göz atabilirsiniz. Genel kullanıcı arabirimine gidip Kayıt Defterleri hub'ını aradığınızdan emin olun.
Aşağıdaki ekran görüntüsünde, Azure Machine Learning Stüdyosu kayıt defterindeki bir model gösterilmektedir. İş çıkışından bir model oluşturduysanız ve modeli çalışma alanından kayıt defterine kopyaladıysanız, modelin modeli eğiten işe bir bağlantısı olduğunu görürsünüz. Modeli eğitmek için kullanılan kodu, ortamı ve verileri gözden geçirmek üzere eğitim işine gitmek için bu bağlantıyı kullanabilirsiniz.
Modeli kayıt defterinden çalışma alanında çevrimiçi uç noktaya dağıtma
Son bölümde, kayıt defterinden bir çalışma alanında çevrimiçi uç noktaya bir model dağıtacaksınız. Çalışma alanının konumu kayıt defteri tarafından desteklenen konumlardan biri olması koşuluyla, kuruluşunuzda erişiminiz olan herhangi bir çalışma alanını dağıtmayı seçebilirsiniz. Eğer bir modeli bir dev çalışma alanında eğittiyseniz ve şimdi modeli test veya prod çalışma alanına dağıtmanız gerekiyorsa, modeli eğitmek için kullanılan kod, ortam ve verilerle ilgili silsile bilgisini korurken bu özellik yararlıdır.
Çevrimiçi uç noktalar, REST API'leri aracılığıyla modelleri dağıtmanıza ve çıkarım istekleri göndermenize olanak tanır. Daha fazla bilgi için bkz. Çevrimiçi uç nokta kullanarak makine öğrenmesi modelini dağıtma ve puanlandırma.
Ipucu
Bu örnek basitlik için anahtar tabanlı kimlik doğrulamasını kullanır. Üretim dağıtımları için Microsoft kimlik tabanlı erişim denetimi aracılığıyla gelişmiş güvenlik sağlayan Microsoft Entra belirteç tabanlı kimlik doğrulaması (aad_token) önerir. Daha fazla bilgi için bkz. Çevrimiçi uç noktalar için istemcilerin kimliğini doğrulama.
Çevrimiçi uç nokta oluşturma.
az ml online-endpoint create --name reg-ep-1234
Önceki adımdaki model adını ve sürümünü referans almak için cli/jobs/pipelines-with-components/nyc_taxi_data_regression klasöründe bulunan deploy.yml satırını model: güncelleyin. Çevrimiçi uç noktaya bir dağıtım yapın.
deploy.yml aşağıda referans olarak verilmiştir.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: demo
endpoint_name: reg-ep-1234
model: azureml://registries/<registry-name>/models/nyc-taxi-model/versions/1
instance_type: Standard_DS3_v2
instance_count: 1
Çevrimiçi dağıtımı oluşturun. Dağıtımın tamamlanması birkaç dakika sürer.
az ml online-deployment create --file deploy.yml --all-traffic
Puanlama URI'sini getirin ve örnek bir puanlama isteği gönderin. Puanlama isteği için örnek veriler klasöründe bulunur scoring-data.jsoncli/jobs/pipelines-with-components/nyc_taxi_data_regression .
ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n reg-ep-1234 -o tsv --query primaryKey)
SCORING_URI=$(az ml online-endpoint show -n reg-ep-1234 -o tsv --query scoring_uri)
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @./scoring-data.json
Önemli
- Kullanıcı Atamalı Kimlik ile oluşturulan uç noktalar için manuel rol ataması gereklidir. Kimliğin abonelik düzeyinde
ACRPullveStorage Blob Data Readerrollerine sahip olması gerekir.
Ipucu
-
curlkomutu yalnızca Linux üzerinde çalışır. - Varsayılan çalışma alanını ve kaynak grubunu önkoşullar bölümünde açıklandığı gibi yapılandırmadıysanız,
az ml online-endpointveaz ml online-deploymentkomutlarının çalışması için--workspace-nameve--resource-groupparametrelerini belirtmeniz gerekir.
Kaynakları temizleme
Eğer dağıtımı kullanmayacaksanız, maliyetleri azaltmak için silmelisiniz. Aşağıdaki örnek uç noktayı ve temel alınan tüm dağıtımları siler:
az ml online-endpoint delete --name reg-ep-1234 --yes --no-wait