Kayıt defterleriyle çalışma alanları arasında modelleri, bileşenleri ve ortamları paylaşma
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
dev
model eğittiğinizde modelitest
veprod
çalışma alanlarına dağıtmanız gerekir. Bu durumda, modelin veyaprod
çalışma alanlarında dağıtıldığıtest
uç noktalar ile çalışma alanında modeli eğitmek için kullanılan eğitim işi, ölçümler, kod, veriler ve ortam arasında uçtan uca kökendev
sahibi olmak istiyorsunuz. - 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ı yapmayı öğ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. Azure Machine Learning'in ücretsiz veya ücretli 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ı. Yoksa, 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ölgesi (konum), Azure Machine Learning kayıt defteri için desteklenen bölgeler listesinde olmalıdır
Azure CLI ve
ml
uzantısı veya Azure Machine Learning Python SDK v2:Azure CLI ve uzantısını yüklemek için bkz . CLI'yı (v2) yükleme, ayarlama ve kullanma.
Önemli
Bu makaledeki CLI örneklerinde Bash (veya uyumlu) kabuğu kullandığınız varsayılır. Örneğin, bir 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>
öğesini Azure abonelik kimliğinizle değiştirin.- değerini Azure Machine Learning çalışma alanı adınızla değiştirin
<workspace>
. - değerini, çalışma alanınızı içeren Azure kaynak grubuyla değiştirin
<resource-group>
. - değerini, çalışma alanınızı içeren Azure bölgesiyle değiştirin
<location>
.
az account set --subscription <subscription> az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
komutunu kullanarak
az configure -l
geçerli varsayılanlarınızın ne olduğunu görebilirsiniz.
Örnek deposunu kopyalama
Bu makaledeki kod örnekleri, örnek deposundaki örneğe dayanırnyc_taxi_data_regression
. 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ği için, örnek 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
İpucu
Bu adım yalnızca Python SDK'sı 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:
- Ortam kavramları
- Ortamlar (CLI) makaleleri oluşturma.
İpucu
Çalışma alanında veya kayıt defterinde ortam oluşturmak için aynı CLI komutu az ml environment create
kullanılabilir. komutu komutuyla --workspace-name
çalıştırılırken çalışma alanında ortam oluşturulurken komutu ile --registry-name
çalıştırmak, kayıt defterinde ortamı oluşturur.
Docker görüntüsünü kullanan ve SciKit Learn çerçevesini python:3.8
kullanarak bir eğitim işi çalıştırmak için gereken Python paketlerini yükleyen bir ortam oluşturacağız. Örnek depoyu kopyaladıysanız ve klasöründeyseniz cli/jobs/pipelines-with-components/nyc_taxi_data_regression
docker dosyasına başvuran ortam tanımı dosyasını env_train.yml
env_train/Dockerfile
görebilmeniz gerekir. env_train.yml
, başvurunuz için aşağıda gösterilmiştir:
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: SKLearnEnv
version: 1
build:
path: ./env_train
aşağıdaki gibi kullanarak az ml environment create
ortamı oluşturun
az ml environment create --file env_train.yml --registry-name <registry-name>
Kayıt defterinde bu ada ve sürüme sahip bir ortamın zaten var olduğuna ilişkin bir hata alırsanız, içindeki alanını env_train.yml
düzenleyebilir version
veya CLI'da içindeki sürüm değerini env_train.yml
geçersiz kılan 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
İpucu
version=$(date +%s)
yalnızca Linux'ta çalışır. bu işe yaramazsa değerini rastgele bir sayıyla değiştirin $version
.
Komutun name
çıkışından az ml environment create
ortamın ve version
değerlerini not alın ve bunları aşağıdaki komutlarla az ml environment show
kullanın. Kayıt defterinde bir bileşen oluştururken sonraki bölümde ve version
gerekirname
.
az ml environment show --name SKLearnEnv --version 1 --registry-name <registry-name>
İpucu
Farklı bir ortam adı veya sürümü kullandıysanız ve --version
parametrelerini buna göre değiştirin--name
.
Kayıt defterindeki tüm ortamları listelemek için de kullanabilirsiniz az ml environment list --registry-name <registry-name>
.
Azure Machine Learning stüdyosu tüm ortamlara göz atabilirsiniz. Genel kullanıcı arabirimine gidip Kayıt Defterleri girişini aradığınızdan emin olun.
Kayıt defterinde bileşen oluşturma
Bileşenler, Azure Machine Learning'de 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:
İşlem hatlarında (SDK) bileşenleri kullanma
Önemli
Kayıt defteri yalnızca adlandırılmış varlıkların (veri/model/bileşen/ortam) olmasını destekler. Kayıt defterindeki bir varlığa başvurmanız gerekiyorsa, ö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_regression
olduğunuzdan emin olun. Scikit Learn eğitim betiğini train_src/train.py
ve seçilmiş ortamı AzureML-sklearn-0.24-ubuntu18.04-py37-cpu
paketleyen bileşen tanım dosyasını train.yml
bulacaksınız. Seçilen ortam yerine, sapkın adımda oluşturulan Scikit Learn ortamını kullanacağız. Scikit Learn ortamınıza başvurmak için içindeki alanını train.yml
düzenleyebilirsinizenvironment
. Sonuçta elde edilen bileşen tanım dosyası train.yml
aşağıdaki örneğe benzer olacaktır:
# <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/<registry-name>/environments/SKLearnEnv/versions/1`
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}}
Farklı bir ad veya sürüm kullandıysanız, daha genel gösterim şöyle görünür: environment: azureml://registries/<registry-name>/environments/<sklearn-environment-name>/versions/<sklearn-environment-version>
, bu nedenle ve <sklearn-environment-name>
<sklearn-environment-version>
değerini buna göre değiştirdiğinizden <registry-name>
emin olun. Ardından komutunu çalıştırarak az ml component create
bileşeni aşağıdaki gibi oluşturursunuz.
az ml component create --file train.yml --registry-name <registry-name>
İpucu
Cli komutu az ml component create
, çalışma alanında veya kayıt defterinde bileşenler oluşturmak için de kullanılabilir. komutu ile --workspace-name
çalıştırılırken bileşeni çalışma alanında oluştururken komutu ile --registry-name
çalıştırmak, bileşeni kayıt defterinde oluşturur.
öğesini düzenlememek train.yml
isterseniz, 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
# or if you used a different name or version, replace `<sklearn-environment-name>` and `<sklearn-environment-version>` accordingly
az ml component create --file train.yml --registry-name <registry-name>` --set environment=azureml://registries/<registry-name>/environments/<sklearn-environment-name>/versions/<sklearn-environment-version>
İpucu
Bileşenin adının kayıt defterinde zaten var olduğunu belirten bir hata alırsanız, sürümünde sürümü düzenleyebilir veya CLI'daki train.yml
sürümü rastgele bir sürümle geçersiz kılabilirsiniz.
Komutun name
çıkışından az ml component create
bileşenin ve version
değerlerini not alın ve bunları aşağıdaki komutlarla az ml component show
kullanın. name
Çalışma alanında bir eğitim işi gönderirken sonraki bölümde ve version
gerekir.
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üdyosu 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 çalışma alanında işlem hattı işi çalıştırma
Kayıt defterindeki bir bileşeni kullanan bir işlem hattı işi çalıştırılırken işlem 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:
- İşleri çalıştırma (CLI)
- İşleri çalıştırma (SDK)
- Bileşenlerle işlem hattı işleri (CLI)
- Bileşenlerle işlem hattı işleri (SDK)
Modeli eğitmek için önceki bölümde oluşturulan Scikit Learn eğitim bileşeniyle bir işlem hattı işi çalıştıracağız. klasöründe cli/jobs/pipelines-with-components/nyc_taxi_data_regression
olup olmadığını denetleyin. Eğitim veri kümesi klasöründe bulunur data_transformed
. component
Önceki bölümde train_job
oluşturulan eğitim bileşenine başvurmak için dosyasının bölümündeki single-job-pipeline.yml
bölümünü düzenleyin. single-job-pipeline.yml
Sonuç aşağıda gösterilmiştir.
$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ıracağınız çalışma alanının, bileşeni oluşturduğunuz kayıt defteri tarafından desteklenen bir Azure bölgesinde olduğunu onaylayın.
- Çalışma alanının adıyla
cpu-cluster
bir işlem kümesi olduğunu onaylayın veya altında işleminizin adıyla alanıjobs.train_job.compute
düzenleyincompute
.
komutuyla az ml job create
işlem hattı işini çalıştırın.
az ml job create --file single-job-pipeline.yml
İpucu
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 az ml job create
ve --resource-group
parametrelerini belirtmeniz --workspace-name
gerekir.
Alternatif olarak, ou düzenlemeyi atlayabilir single-job-pipeline.yml
ve CLI'da tarafından train_job
kullanılan bileşen adını geçersiz kılabilir.
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
prod-workspace
eğitim işini bu üç çalışma alanında çalıştırmak, üç komutu çalıştırmak az ml job create
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ıdaki name
işin değerini not alın 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'de model yönetimi hakkında daha fazla bilgi edinmek için modelleri yönetme bölümünü 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şturacaksınız. Bu, çıkarım kodu yazmadan çıkarım için bu modeli dağıtmanıza yardımcı olur.
Yerel dosyalardan kayıt defterinde model oluşturma
değerini önceki bölümdeki işin adıyla değiştirerek <job-name>
çıktısı train_job
olarak kullanılabilen modeli indirin. Modelin yanı sıra MLflow meta veri dosyaları da içinde ./artifacts/model/
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/
İpucu
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 az ml model create
ve --resource-group
parametrelerini belirtmeniz --workspace-name
gerekir.
Uyarı
çıktısı az ml job list
öğesine sed
geçirilir. Bu yalnızca Linux kabuklarında çalışır. Windows kullanıyorsanız, tren işi adında gördüğünüz tüm tırnakları çalıştırın az ml job list --parent-job-name <job-name> --query [0].name
ve çıkarın.
Modeli indiremiyorsanız, klasördeki önceki bölümde cli/jobs/pipelines-with-components/nyc_taxi_data_regression/artifacts/model/
eğitim işi tarafından eğitilen örnek MLflow modelini 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>
İpucu
- Model adı ve sürümü var hatası alırsanız parametre için
version
rastgele bir sayı kullanın. - Cli komutu
az ml model create
, çalışma alanında veya kayıt defterinde model oluşturmak için de kullanılabilir. komutunu komutuyla--workspace-name
çalıştırmak modeli çalışma alanında oluştururken komutu ile--registry-name
çalıştırmak modeli kayıt defterinde oluşturur.
Çalışma alanından kayıt defterine model paylaşma
Bu iş akışında önce çalışma alanında modeli oluşturacak ve ardından kayıt defteriyle paylaşacaksı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, bazı test verileriyle çıkarım yapmayı deneyin ve her şey iyi görünüyorsa modeli bir 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 aşağıdaki eğitim işi adını getirmek için komutta bunu değiştirin. Ardından modeli eğitim işinin çıkışından çalışma alanına kaydedeceksiniz. Parametresinin --path
söz dizimiyle çıkış train_job
çıkışına nasıl başvurduğuna azureml://jobs/$train_job_name/outputs/artifacts/paths/model
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
İpucu
- Model adı ve sürümü var hatası alırsanız parametre için
version
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
az ml model create
ve--resource-group
parametrelerini belirtmeniz--workspace-name
gerekir.
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.
Şimdi modeli çalışma alanından kayıt defteriyle 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>
İpucu
- Komutta değiştirdiyseniz doğru model adını ve sürümünü kullandığınızdan
az ml model create
emin olun. - Yukarıdaki komut iki isteğe bağlı "--share-with-name" ve "--share-with-version" parametresine sahiptir. Bunlar sağlanmazsa, yeni model paylaşılan modelle aynı ada ve sürüme sahip olur.
Komutun
name
çıkışındanaz ml model create
modelin veversion
değerlerini not alın ve bunları aşağıdaki komutlarlaaz ml model show
kullanın. Modeli çıkarım için çevrimiçi bir uç noktaya dağıtırken sonraki bölümde veversion
gerekirname
.
az ml model show --name <model_name> --version <model_version> --registry-name <registry-name>
Kayıt defterindeki tüm modelleri listelemek veya Azure Machine Learning stüdyosu kullanıcı arabirimindeki tüm bileşenlere göz atmak için de kullanabilirsinizaz ml model list --registry-name <registry-name>
. 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. Bu özellik, bir dev
çalışma alanında bir modeli eğitip modeli veya prod
çalışma alanına dağıtmanız test
gerektiğinde ve modeli eğitmek için kullanılan kod, ortam ve verilerle ilgili köken bilgilerini korurken yararlı olur.
Ç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.
Çevrimiçi uç nokta oluşturma.
az ml online-endpoint create --name reg-ep-1234
model:
Klasördeki cli/jobs/pipelines-with-components/nyc_taxi_data_regression
kullanılabilir satırıdeploy.yml
, model adına ve sürümüne kötü amaçlı adımdan başvuracak şekilde güncelleştirin. Çevrimiçi uç noktaya çevrimiçi dağıtım oluşturun. deploy.yml
aşağıda başvuru için gösterilmiş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_DS2_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.json
cli/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
İpucu
curl
komutu 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, ve komutlarının çalışması için
az ml online-endpoint
ve--resource-group
az ml online-deployment
parametrelerini belirtmeniz--workspace-name
gerekir.
Kaynakları temizleme
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