Udostępnianie modeli, składników i środowisk między obszarami roboczymi za pomocą rejestrów

Rejestr usługi Azure Machine Edukacja umożliwia współpracę między obszarami roboczymi w organizacji. Za pomocą rejestrów można udostępniać modele, składniki i środowiska.

Istnieją dwa scenariusze, w których chcesz użyć tego samego zestawu modeli, składników i środowisk w wielu obszarach roboczych:

  • Metodyka MLOps między obszarami roboczymi: trenujesz model w obszarze roboczym dev i musisz wdrożyć go w test obszarach roboczych i prod . W takim przypadku chcesz mieć kompleksową pochodzenie między punktami końcowymi, do których model jest wdrożony w test obszarach roboczych, lub prod zadania trenowania, metryk, kodu, danych i środowiska używanego do trenowania modelu w obszarze roboczym dev .
  • Udostępnianie i ponowne używanie modeli i potoków w różnych zespołach: udostępnianie i ponowne używanie usprawnia współpracę i produktywność. W tym scenariuszu możesz opublikować wytrenowany model oraz skojarzone składniki i środowiska używane do trenowania go w katalogu centralnym. Z tego miejsca współpracownicy z innych zespołów mogą wyszukiwać i ponownie używać zasobów udostępnionych we własnych eksperymentach.

Ten artykuł obejmuje następujące zagadnienia:

  • Utwórz środowisko i składnik w rejestrze.
  • Użyj składnika z rejestru, aby przesłać zadanie trenowania modelu w obszarze roboczym.
  • Zarejestruj wyszkolony model w rejestrze.
  • Wdróż model z rejestru w punkcie końcowym online w obszarze roboczym, a następnie prześlij żądanie wnioskowania.

Wymagania wstępne

Przed wykonaniem kroków opisanych w tym artykule upewnij się, że masz następujące wymagania wstępne:

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto. Wypróbuj bezpłatną lub płatną wersję usługi Azure Machine Edukacja.
  • Rejestr usługi Azure Machine Edukacja do udostępniania modeli, składników i środowisk. Aby utworzyć rejestr, zobacz Dowiedz się, jak utworzyć rejestr.

  • Obszar roboczy usługi Azure Machine Learning. Jeśli go nie masz, wykonaj kroki opisane w artykule Szybki start: tworzenie zasobów obszaru roboczego, aby je utworzyć.

    Ważne

    Region platformy Azure (lokalizacja), w którym tworzysz obszar roboczy, musi znajdować się na liście obsługiwanych regionów dla rejestru usługi Azure Machine Edukacja

  • Interfejs wiersza polecenia platformy ml Azure i rozszerzenie lub zestaw Azure Machine Edukacja python SDK w wersji 2:

    Aby zainstalować interfejs wiersza polecenia platformy Azure i rozszerzenie, zobacz Instalowanie, konfigurowanie i używanie interfejsu wiersza polecenia (wersja 2).

    Ważne

    • W przykładach interfejsu wiersza polecenia w tym artykule założono, że używasz powłoki Bash (lub zgodnej). Na przykład z systemu Linux lub Podsystem Windows dla systemu Linux.

    • W przykładach założono również, że skonfigurowano wartości domyślne dla interfejsu wiersza polecenia platformy Azure, aby nie trzeba było określać parametrów subskrypcji, obszaru roboczego, grupy zasobów ani lokalizacji. Aby ustawić ustawienia domyślne, użyj następujących poleceń. Zastąp następujące parametry wartościami konfiguracji:

      • Zamień wartość <subscription> na identyfikator swojej subskrypcji platformy Azure.
      • Zastąp <workspace> ciąg nazwą obszaru roboczego usługi Azure Machine Edukacja.
      • Zastąp element <resource-group> grupą zasobów platformy Azure zawierającą obszar roboczy.
      • Zastąp element <location> regionem platformy Azure zawierającym obszar roboczy.
      az account set --subscription <subscription>
      az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
      

      Bieżące wartości domyślne można zobaczyć za pomocą az configure -l polecenia .

Klonowanie repozytorium przykładów

Przykłady kodu w tym artykule są oparte na nyc_taxi_data_regression przykładzie w repozytorium przykładów. Aby użyć tych plików w środowisku projektowym, użyj następujących poleceń, aby sklonować repozytorium i zmienić katalogi na przykład:

git clone https://github.com/Azure/azureml-examples
cd azureml-examples

W przykładzie interfejsu wiersza polecenia zmień katalogi na cli/jobs/pipelines-with-components/nyc_taxi_data_regression w lokalnym klonie repozytorium przykładów.

cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression

Tworzenie połączenia zestawu SDK

Napiwek

Ten krok jest wymagany tylko w przypadku korzystania z zestawu SDK języka Python.

Utwórz połączenie klienta z obszarem roboczym i rejestrem usługi Azure Machine Edukacja:

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)

Tworzenie środowiska w rejestrze

Środowiska definiują kontener platformy Docker i zależności języka Python wymagane do uruchamiania zadań szkoleniowych lub wdrażania modeli. Aby uzyskać więcej informacji na temat środowisk, zobacz następujące artykuły:

Napiwek

To samo polecenie interfejsu wiersza polecenia az ml environment create może służyć do tworzenia środowisk w obszarze roboczym lub rejestrze. Uruchomienie polecenia za --workspace-name pomocą polecenia powoduje utworzenie środowiska w obszarze roboczym podczas uruchamiania polecenia z poleceniem --registry-name tworzy środowisko w rejestrze.

Utworzymy środowisko korzystające z python:3.8 obrazu platformy Docker i zainstalujemy pakiety języka Python wymagane do uruchomienia zadania szkoleniowego przy użyciu struktury SciKit Learn. Jeśli sklonujesz repozytorium przykładów i znajdujesz się w folderze cli/jobs/pipelines-with-components/nyc_taxi_data_regression, powinien być widoczny plik env_train.yml definicji środowiska, który odwołuje się do pliku env_train/Dockerfileplatformy Docker. Poniżej env_train.yml przedstawiono dokumentację:

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: SKLearnEnv
version: 1
build:
  path: ./env_train

Utwórz środowisko przy użyciu polecenia w az ml environment create następujący sposób

az ml environment create --file env_train.yml --registry-name <registry-name>

Jeśli wystąpi błąd, że środowisko o tej nazwie i wersji już istnieje w rejestrze, możesz edytować version pole w env_train.yml pliku lub określić inną wersję interfejsu wiersza polecenia, która zastępuje wartość wersji w env_train.ymlpliku .

# 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

Napiwek

version=$(date +%s) działa tylko w systemie Linux. Zastąp $version ciąg losową liczbą, jeśli nie działa.

Zanotuj name wartości i version środowiska z danych wyjściowych az ml environment create polecenia i użyj ich z az ml environment show poleceniami w następujący sposób. Podczas tworzenia składnika w rejestrze będzie potrzebny element name i version w następnej sekcji.

az ml environment show --name SKLearnEnv --version 1 --registry-name <registry-name>

Napiwek

Jeśli użyto innej nazwy środowiska lub wersji, zastąp odpowiednio --name parametry i --version .

Można również użyć az ml environment list --registry-name <registry-name> polecenia , aby wyświetlić listę wszystkich środowisk w rejestrze.

Możesz przeglądać wszystkie środowiska w usłudze Azure Machine Edukacja Studio. Upewnij się, że przejdziesz do globalnego interfejsu użytkownika i poszukaj wpisu Rejestry .

Zrzut ekranu przedstawiający środowiska w rejestrze.

Tworzenie składnika w rejestrze

Składniki są blokami konstrukcyjnymi wielokrotnego użytku potoków Edukacja maszyny w usłudze Azure Machine Edukacja. Możesz spakować kod, polecenie, środowisko, interfejs wejściowy i interfejs wyjściowy pojedynczego kroku potoku do składnika. Następnie można ponownie użyć składnika w wielu potokach bez konieczności martwienia się o przenoszenie zależności i kod za każdym razem, gdy piszesz inny potok.

Utworzenie składnika w obszarze roboczym umożliwia użycie składnika w dowolnym zadaniu potoku w tym obszarze roboczym. Utworzenie składnika w rejestrze umożliwia użycie składnika w dowolnym potoku w dowolnym obszarze roboczym w organizacji. Tworzenie składników w rejestrze to doskonały sposób tworzenia modułowych narzędzi wielokrotnego użytku lub współużytkowanych zadań szkoleniowych, które mogą być używane do eksperymentowania przez różne zespoły w organizacji.

Aby uzyskać więcej informacji na temat składników, zobacz następujące artykuły:

Upewnij się, że jesteś w folderze cli/jobs/pipelines-with-components/nyc_taxi_data_regression. Znajdziesz plik train.yml definicji składnika, który pakuje skrypt train_src/train.py szkoleniowy Scikit Learn i wyselekcjonowane środowiskoAzureML-sklearn-0.24-ubuntu18.04-py37-cpu. Użyjemy środowiska Scikit Learn utworzonego w pervious kroku zamiast wyselekcjonowanych środowisk. Możesz edytować environment pole w pliku train.yml , aby odwoływać się do środowiska Scikit Learn. Wynikowy plik train.yml definicji składnika będzie podobny do następującego przykładu:

# <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}}

Jeśli użyto innej nazwy lub wersji, bardziej ogólna reprezentacja wygląda następująco: environment: azureml://registries/<registry-name>/environments/<sklearn-environment-name>/versions/<sklearn-environment-version>, więc upewnij się, że zastąpisz <registry-name>element , <sklearn-environment-name> i <sklearn-environment-version> odpowiednio. Następnie uruchom polecenie , az ml component create aby utworzyć składnik w następujący sposób.

az ml component create --file train.yml --registry-name <registry-name>

Napiwek

To samo polecenie interfejsu wiersza polecenia az ml component create może służyć do tworzenia składników w obszarze roboczym lub rejestrze. Uruchomienie polecenia za --workspace-name pomocą polecenia powoduje utworzenie składnika w obszarze roboczym podczas uruchamiania polecenia za --registry-name pomocą polecenia tworzy składnik w rejestrze.

Jeśli wolisz nie edytować train.ymlelementu , możesz zastąpić nazwę środowiska w interfejsie wiersza polecenia w następujący sposób:

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>

Napiwek

Jeśli wystąpi błąd, że nazwa składnika już istnieje w rejestrze, możesz edytować wersję w train.yml lub zastąpić wersję interfejsu wiersza polecenia losową wersją.

name Zanotuj wartości i version składnika z danych wyjściowych az ml component create polecenia i użyj ich z az ml component show poleceniami w następujący sposób. Podczas tworzenia zadania szkoleniowego w obszarze roboczym będziesz potrzebować instrukcji name i version w następnej sekcji.

az ml component show --name <component_name> --version <component_version> --registry-name <registry-name>

Można również użyć az ml component list --registry-name <registry-name> polecenia , aby wyświetlić listę wszystkich składników w rejestrze.

Wszystkie składniki można przeglądać w usłudze Azure Machine Edukacja Studio. Upewnij się, że przejdziesz do globalnego interfejsu użytkownika i poszukaj wpisu Rejestry .

Zrzut ekranu przedstawiający składniki w rejestrze.

Uruchamianie zadania potoku w obszarze roboczym przy użyciu składnika z rejestru

W przypadku uruchamiania zadania potoku używającego składnika z rejestru zasoby obliczeniowe i dane szkoleniowe są lokalne w obszarze roboczym. Aby uzyskać więcej informacji na temat uruchamiania zadań, zobacz następujące artykuły:

Uruchomimy zadanie potoku za pomocą składnika szkoleniowego Scikit Learn utworzonego w poprzedniej sekcji, aby wytrenować model. Sprawdź, czy jesteś w folderze cli/jobs/pipelines-with-components/nyc_taxi_data_regression. Zestaw danych trenowania znajduje się w folderze data_transformed . Edytuj sekcję component w train_job sekcji single-job-pipeline.yml pliku, aby odwołać się do składnika trenowania utworzonego w poprzedniej sekcji. single-job-pipeline.yml Wynik jest pokazany poniżej.

$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: 

Kluczowym aspektem jest to, że ten potok będzie uruchamiany w obszarze roboczym przy użyciu składnika, który nie znajduje się w określonym obszarze roboczym. Składnik znajduje się w rejestrze, który może być używany z dowolnym obszarem roboczym w organizacji. To zadanie szkoleniowe można uruchomić w dowolnym obszarze roboczym, do którego masz dostęp, bez konieczności martwienia się o udostępnienie kodu szkoleniowego i środowiska w tym obszarze roboczym.

Ostrzeżenie

  • Przed uruchomieniem zadania potoku upewnij się, że obszar roboczy, w którym zostanie uruchomione zadanie, znajduje się w regionie świadczenia usługi Azure obsługiwanym przez rejestr, w którym został utworzony składnik.
  • Upewnij się, że obszar roboczy ma klaster obliczeniowy o nazwie cpu-cluster lub zmodyfikuj compute pole pod jobs.train_job.compute nazwą obliczeń.

Uruchom zadanie potoku za az ml job create pomocą polecenia .

az ml job create --file single-job-pipeline.yml 

Napiwek

Jeśli nie skonfigurowano domyślnego obszaru roboczego i grupy zasobów, zgodnie z opisem w sekcji wymagań wstępnych, należy określić --workspace-name parametry i --resource-group dla elementu az ml job create do pracy.

Alternatywnie jednostka organizacyjna może pominąć edytowanie single-job-pipeline.yml i zastąpić nazwę składnika używaną w train_job interfejsie wiersza polecenia.

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

Ponieważ składnik używany w zadaniu trenowania jest udostępniany za pośrednictwem rejestru, możesz przesłać zadanie do dowolnego obszaru roboczego, do którego masz dostęp w organizacji, nawet w różnych subskrypcjach. Jeśli na przykład masz dev-workspaceelementy , test-workspace i prod-workspace, uruchamiając zadanie szkoleniowe w tych trzech obszarach roboczych, jest tak proste, jak uruchamianie trzech az ml job create poleceń.

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>

W usłudze Azure Machine Edukacja Studio wybierz link punktu końcowego w danych wyjściowych zadania, aby wyświetlić zadanie. W tym miejscu możesz przeanalizować metryki trenowania, sprawdzić, czy zadanie korzysta ze składnika i środowiska z rejestru, i przejrzeć wytrenowany model. name Zanotuj zadanie z danych wyjściowych lub znajdź te same informacje z przeglądu zadania w usłudze Azure Machine Edukacja Studio. Te informacje będą potrzebne do pobrania wytrenowanego modelu w następnej sekcji dotyczącej tworzenia modeli w rejestrze.

Zrzut ekranu przedstawiający potok w usłudze Azure Machine Edukacja Studio.

Tworzenie modelu w rejestrze

Dowiesz się, jak tworzyć modele w rejestrze w tej sekcji. Przejrzyj zarządzanie modelami, aby dowiedzieć się więcej na temat zarządzania modelami w usłudze Azure Machine Edukacja. Przyjrzymy się dwóm różnym sposobom tworzenia modelu w rejestrze. Najpierw pochodzi z plików lokalnych. Po drugie, należy skopiować model zarejestrowany w obszarze roboczym do rejestru.

W obu opcjach utworzysz model z formatem MLflow, który pomoże Ci wdrożyć ten model na potrzeby wnioskowania bez konieczności pisania kodu wnioskowania.

Tworzenie modelu w rejestrze na podstawie plików lokalnych

Pobierz model, który jest dostępny jako dane wyjściowe train_job elementu , zastępując <job-name> ciąg nazwą z zadania z poprzedniej sekcji. Model wraz z plikami metadanych MLflow powinien być dostępny w pliku ./artifacts/model/.

# 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/

Napiwek

Jeśli nie skonfigurowano domyślnego obszaru roboczego i grupy zasobów, zgodnie z opisem w sekcji wymagań wstępnych, należy określić --workspace-name parametry i --resource-group dla elementu az ml model create do pracy.

Ostrzeżenie

Dane wyjściowe polecenia az ml job list są przekazywane do elementu sed. Działa to tylko w powłokach systemu Linux. Jeśli korzystasz z systemu Windows, uruchom az ml job list --parent-job-name <job-name> --query [0].name i usuń wszelkie cudzysłowy widoczne w nazwie zadania pociągu.

Jeśli nie możesz pobrać modelu, możesz znaleźć przykładowy model MLflow wytrenowany przez zadanie trenowania w poprzedniej sekcji w cli/jobs/pipelines-with-components/nyc_taxi_data_regression/artifacts/model/ folderze.

Utwórz model w rejestrze:

# create model in registry
az ml model create --name nyc-taxi-model --version 1 --type mlflow_model --path ./artifacts/model/ --registry-name <registry-name>

Napiwek

  • Użyj losowej liczby dla parametru version , jeśli wystąpi błąd, że istnieje nazwa i wersja modelu.
  • To samo polecenie interfejsu wiersza polecenia az ml model create może służyć do tworzenia modeli w obszarze roboczym lub rejestrze. Uruchomienie polecenia za --workspace-name pomocą polecenia powoduje utworzenie modelu w obszarze roboczym podczas uruchamiania polecenia z --registry-name poleceniem tworzy model w rejestrze.

Udostępnianie modelu z obszaru roboczego do rejestru

W tym przepływie pracy najpierw utworzysz model w obszarze roboczym, a następnie udostępnisz go rejestrowi. Ten przepływ pracy jest przydatny, gdy chcesz przetestować model w obszarze roboczym przed jego udostępnieniem. Na przykład wdróż go w punktach końcowych, wypróbuj wnioskowanie przy użyciu danych testowych, a następnie skopiuj model do rejestru, jeśli wszystko wygląda dobrze. Ten przepływ pracy może być również przydatny podczas opracowywania serii modeli przy użyciu różnych technik, struktur lub parametrów i promowania tylko jednego z nich do rejestru jako kandydata produkcyjnego.

Upewnij się, że masz nazwę zadania potoku z poprzedniej sekcji i zastąp je w poleceniu , aby pobrać nazwę zadania trenowania poniżej. Następnie zarejestrujesz model z danych wyjściowych zadania szkoleniowego w obszarze roboczym. Zwróć uwagę, --path jak parametr odwołuje się do danych wyjściowych train_job przy użyciu azureml://jobs/$train_job_name/outputs/artifacts/paths/model składni .

# 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 

Napiwek

  • Użyj losowej liczby dla parametru version , jeśli wystąpi błąd, że istnieje nazwa i wersja modelu".
  • Jeśli nie skonfigurowano domyślnego obszaru roboczego i grupy zasobów, zgodnie z opisem w sekcji wymagań wstępnych, należy określić --workspace-name parametry i --resource-group dla elementu az ml model create do pracy.

Zanotuj nazwę i wersję modelu. Możesz sprawdzić, czy model jest zarejestrowany w obszarze roboczym, przeglądając go w interfejsie użytkownika programu Studio lub używając az ml model show --name nyc-taxi-model --version $model_version polecenia .

Następnie udostępnisz model z obszaru roboczego do rejestru.

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

Napiwek

  • Pamiętaj, aby użyć odpowiedniej nazwy i wersji modelu, jeśli zmieniono ją w poleceniu az ml model create .
  • Powyższe polecenie ma dwa opcjonalne parametry "--share-with-name" i "--share-with-version". Jeśli nie zostaną one podane, nowy model będzie miał taką samą nazwę i wersję, jak model, który jest udostępniany. name Zanotuj wartości i version modelu z danych wyjściowych az ml model create polecenia i użyj ich z az ml model show poleceniami w następujący sposób. Podczas wdrażania modelu w punkcie końcowym online na potrzeby wnioskowania będziesz potrzebować instrukcji name i version w następnej sekcji.
az ml model show --name <model_name> --version <model_version> --registry-name <registry-name>

Możesz również użyć az ml model list --registry-name <registry-name> polecenia , aby wyświetlić listę wszystkich modeli w rejestrze lub przejrzeć wszystkie składniki w interfejsie użytkownika usługi Azure Machine Edukacja Studio. Upewnij się, że przejdziesz do globalnego interfejsu użytkownika i poszukaj centrum Rejestry.

Poniższy zrzut ekranu przedstawia model w rejestrze w usłudze Azure Machine Edukacja Studio. Jeśli utworzono model z danych wyjściowych zadania, a następnie skopiowano model z obszaru roboczego do rejestru, zobaczysz, że model ma link do zadania, które wytrenował model. Możesz użyć tego linku, aby przejść do zadania trenowania, aby przejrzeć kod, środowisko i dane używane do trenowania modelu.

Zrzut ekranu przedstawiający modele w rejestrze.

Wdrażanie modelu z rejestru do punktu końcowego online w obszarze roboczym

W ostatniej sekcji wdrożysz model z rejestru do punktu końcowego online w obszarze roboczym. Możesz wybrać wdrożenie dowolnego obszaru roboczego, do którego masz dostęp w organizacji, pod warunkiem, że lokalizacja obszaru roboczego jest jedną z lokalizacji obsługiwanych przez rejestr. Ta funkcja jest przydatna, jeśli wytrenujesz model w obszarze roboczym dev i teraz musisz wdrożyć model w test obszarze roboczym, prod zachowując jednocześnie informacje o pochodzenia kodu, środowisku i danych używanych do trenowania modelu.

Punkty końcowe online umożliwiają wdrażanie modeli i przesyłanie żądań wnioskowania za pośrednictwem interfejsów API REST. Aby uzyskać więcej informacji, zobacz Jak wdrożyć i ocenić model uczenia maszynowego przy użyciu punktu końcowego online.

Utwórz punkt końcowy online.

az ml online-endpoint create --name reg-ep-1234

model: Zaktualizuj wiersz deploy.yml dostępny w folderzecli/jobs/pipelines-with-components/nyc_taxi_data_regression, aby odwoływać się do nazwy i wersji modelu w kroku pervious. Utwórz wdrożenie online w punkcie końcowym online. Poniżej deploy.yml przedstawiono dokumentację.

$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

Utwórz wdrożenie online. Przeprowadzenie wdrożenia zajmuje kilka minut.

az ml online-deployment create --file deploy.yml --all-traffic

Pobierz identyfikator URI oceniania i prześlij przykładowe żądanie oceniania. Przykładowe dane żądania oceniania są dostępne w scoring-data.json folderze 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

Napiwek

  • curl Polecenie działa tylko w systemie Linux.
  • Jeśli nie skonfigurowano domyślnego obszaru roboczego i grupy zasobów zgodnie z opisem w sekcji wymagań wstępnych, należy określić --workspace-name parametry i dla az ml online-endpoint poleceń i --resource-groupaz ml online-deployment, które będą działać.

Czyszczenie zasobów

Jeśli nie będziesz używać wdrożenia, usuń je, aby zmniejszyć koszty. Poniższy przykład usuwa punkt końcowy i wszystkie podstawowe wdrożenia:

az ml online-endpoint delete --name reg-ep-1234 --yes --no-wait

Następne kroki