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 modeli test ve prod çalışma alanlarına dağıtmanız gerekir. Bu durumda, modelin veya prod ç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öken dev 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:

İ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_regressiondocker dosyasına başvuran ortam tanımı dosyasını env_train.ymlenv_train/Dockerfilegö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.ymlgeç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 defterindeki ortamların ekran görüntüsü.

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:

klasöründe cli/jobs/pipelines-with-components/nyc_taxi_data_regressionolduğ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.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
# 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şenlerin ekran görüntüsü.

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:

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_regressionolup 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-workspacetest-workspaceprod-workspaceeğ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.

Azure Machine Learning stüdyosu işlem hattının ekran görüntüsü.

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 sedgeç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ışından az ml model create modelin ve version değerlerini not alın ve bunları aşağıdaki komutlarla az ml model show kullanın. Modeli çıkarım için çevrimiçi bir uç noktaya dağıtırken sonraki bölümde ve version 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.

Kayıt defterindeki modellerin ekran görüntüsü.

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.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

İ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-groupaz 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

Sonraki adımlar