Condividere modelli, componenti e ambienti tra aree di lavoro con registri
Il registro di sistema di Azure Machine Learning consente di collaborare tra aree di lavoro all'interno dell'organizzazione. È possibile condividere modelli, componenti e ambienti usando i registri.
Esistono due scenari in cui si desidera usare lo stesso set di modelli, componenti e ambienti in più aree di lavoro:
- MLOps tra aree di lavoro: si sta eseguendo il training di un modello in un'
dev
area di lavoro ed è necessario distribuirlo nelle aree di lavorotest
eprod
. In questo caso, si desidera avere una derivazione dei dati end-to-end tra gli endpoint in cui il modello viene distribuito nelle aree di lavorotest
oprod
e il processo di training, le metriche, il codice, i dati e l'ambiente usati per eseguire il training del modello nell'area di lavorodev
. - Condividere e riutilizzare modelli e pipeline tra team differenti: la condivisione e il riutilizzo migliorano la collaborazione e la produttività. In questo scenario, è possibile pubblicare un modello sottoposto a training e i componenti e gli ambienti associati usati per eseguirne il training in un catalogo centrale. Da qui, i colleghi di altri team possono cercare e riutilizzare gli asset condivisi nei propri esperimenti.
In questo articolo si apprenderà come:
- Creare un ambiente e un componente nel registro di sistema.
- Usare il componente dal registro di sistema per inviare un processo di training del modello in un'area di lavoro.
- Registrare il modello sottoposto a training nel registro di sistema.
- Distribuire il modello dal registro di sistema a un endpoint online nell'area di lavoro, quindi inviare una richiesta di inferenza.
Prerequisiti
Prima di seguire la procedura descritta in questo articolo, assicurarsi di disporre dei prerequisiti seguenti:
- Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare. Provare la versione gratuita o a pagamento di Azure Machine Learning.
Registro di Azure Machine Learning per condividere modelli, componenti e ambienti. Per creare un registro di sistema, vedere Informazioni su come creare un registro di sistema.
Un'area di lavoro di Azure Machine Learning. Se non è disponibile, seguire la procedura descritta nell'articolo Avvio rapido: Creare risorse dell'area di lavoro per crearne una.
Importante
La regione Azure (percorso) in cui si crea l'area di lavoro deve essere nell'elenco delle aree supportate per il registro di sistema di Azure Machine Learning
L'interfaccia della riga di comando di Azure e l'estensione
ml
oppure Python SDK per Azure Machine Learning v2:Per installare l'interfaccia della riga di comando di Azure e l'estensione, vedere Installare, configurare e usare l'interfaccia della riga di comando di Azure (v2).
Importante
Gli esempi dell'interfaccia della riga di comando in questo articolo presuppongono che si usi la shell Bash (o compatibile). Ad esempio, un sistema Linux o un sottosistema Windows per Linux.
Gli esempi presuppongono anche che siano state configurate le impostazioni predefinite per l'interfaccia della riga di comando di Azure, in modo che non sia necessario specificare i parametri per la sottoscrizione, l'area di lavoro, il gruppo di risorse o il percorso. Usare i comandi seguenti per specificare le impostazioni predefinite. Sostituire i parametri seguenti con i valori relativi alla configurazione:
- Sostituire
<subscription>
con l'ID della sottoscrizione di Azure. - Sostituire
<workspace>
con il nome dell'area di lavoro di Azure Machine Learning. - Sostituire
<resource-group>
con il gruppo di risorse di Azure contenente la propria area di lavoro. - Sostituire
<location>
con l'area di Azure contenente la propria area di lavoro.
az account set --subscription <subscription> az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
È possibile visualizzare le impostazioni predefinite correnti usando il comando
az configure -l
.- Sostituire
Clonare il repository degli esempi
Gli esempi di codice in questo articolo si basano sull'esempio nyc_taxi_data_regression
nel repository degli esempi. Per usare questi file nell'ambiente di sviluppo, usare i comandi seguenti per clonare il repository e modificare le directory nell'esempio:
git clone https://github.com/Azure/azureml-examples
cd azureml-examples
Per l'esempio dell'interfaccia della riga di comando, modificare directory in cli/jobs/pipelines-with-components/nyc_taxi_data_regression
nel clone locale del repository degli esempi.
cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression
Creare una connessione SDK
Suggerimento
Questo passaggio è necessario solo quando si usa Python SDK.
Creare una connessione client sia all'area di lavoro di Azure Machine Learning che al registro di sistema:
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)
Creare un ambiente nel registro di sistema
Gli ambienti definiscono il contenitore Docker e le dipendenze Python necessarie per eseguire processi di training o distribuire modelli. Per altre informazioni sugli ambienti, vedere gli articoli seguenti:
- Concetti relativi all'ambiente
- Come creare gli articoli sugli ambienti (interfaccia della riga di comando).
Suggerimento
Lo stesso comando dell'interfaccia della riga di comando az ml environment create
può essere usato per creare ambienti in un'area di lavoro o in un registro. L'esecuzione del comando con il comando --workspace-name
crea l'ambiente in un'area di lavoro, mentre l'esecuzione del comando con --registry-name
crea l'ambiente nel registro di sistema.
Verrà creato un ambiente che usa l'immagine Docker python:3.8
e installerà i pacchetti Python necessari per eseguire un processo di training usando il framework SciKit Learn. Se è stato clonato il repository di esempi e i suddetti si trovano nella cartella cli/jobs/pipelines-with-components/nyc_taxi_data_regression
, dovrebbe essere possibile visualizzare il file di definizione dell'ambiente env_train.yml
che fa riferimento al file Docker env_train/Dockerfile
. L'oggetto env_train.yml
è illustrato di seguito per il riferimento:
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: SKLearnEnv
version: 1
build:
path: ./env_train
Creare l'ambiente usando il az ml environment create
come indicato di seguito
az ml environment create --file env_train.yml --registry-name <registry-name>
Se viene visualizzato un errore che indica che un ambiente con questo nome e versione esiste già nel registro di sistema, è possibile modificare il campo version
in env_train.yml
o specificare una versione differente nell'interfaccia della riga di comando che esegue l'override del valore di versione in env_train.yml
.
# 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
Suggerimento
version=$(date +%s)
funziona solo in Linux. Se non funziona, sostituire $version
con un numero casuale.
Annotare name
e version
dell'ambiente dall'output del comando az ml environment create
e usarli con i comandi az ml environment show
come indicato di seguito. Saranno necessari name
e version
nella sezione successiva quando si crea un componente nel registro di sistema.
az ml environment show --name SKLearnEnv --version 1 --registry-name <registry-name>
Suggerimento
Se è stato usato un nome o una versione di ambiente differente, sostituire i parametri --name
e --version
come pertinente.
È anche possibile usare az ml environment list --registry-name <registry-name>
per elencare tutti gli ambienti nel registro di sistema.
È possibile esplorare tutti gli ambienti in Studio di Azure Machine Learning. Assicurarsi di andare all'interfaccia utente globale e cercare la voce Registri.
Creare un componente nel registro di sistema
I componenti sono i blocchi predefiniti riutilizzabili delle pipeline di apprendimento automatico di Azure Machine Learning. È possibile includere il codice, il comando, l'ambiente, l'interfaccia di input e l'interfaccia di output di un singolo passaggio della pipeline in un componente. È quindi possibile riutilizzare il componente tra più pipeline senza doversi preoccupare di trasferire le dipendenze e il codice ogni volta che si scrive una pipeline differente.
La creazione di un componente in un'area di lavoro consente di usare il suddetto in qualsiasi processo della pipeline all'interno di tale area di lavoro. La creazione di un componente in un registro consente di usare il suddetto in qualsiasi pipeline in qualsiasi area di lavoro all'interno dell'organizzazione. La creazione di componenti in un registro è un ottimo modo per creare utilità riutilizzabili modulari o attività di training condivise che è possibile usare per la sperimentazione da parte di team differenti all'interno dell'organizzazione.
Per altre informazioni sui componenti, vedere gli articoli seguenti:
Come usare i componenti nelle pipeline (interfaccia della riga di comando)
Come usare i componenti nelle pipeline (SDK)
Importante
Il Registro di sistema supporta solo gli asset denominati (data/model/component/environment). Se si fa riferimento a un asset in un Registro di sistema, è prima necessario crearlo nel Registro di sistema. In particolare per il caso del componente della pipeline, se si desidera fare riferimento al componente o all'ambiente nel componente della pipeline, è prima necessario creare il componente o l'ambiente nel Registro di sistema.
Assicurarsi di trovarsi nella cartella cli/jobs/pipelines-with-components/nyc_taxi_data_regression
. Si troverà il file di definizione del componente train.yml
che include uno script di training Scikit Learn train_src/train.py
e l'ambiente curatoAzureML-sklearn-0.24-ubuntu18.04-py37-cpu
. Si userà l'ambiente Scikit Learn creato al passaggio precedente, anziché l'ambiente curato. È possibile modificare il campo environment
in train.yml
per fare riferimento all'ambiente Scikit Learn. Il file di definizione del componente train.yml
risultante sarà simile all'esempio seguente:
# <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}}
Se si ha usato un nome o una versione differente, la rappresentazione più generica è simile alla seguente: environment: azureml://registries/<registry-name>/environments/<sklearn-environment-name>/versions/<sklearn-environment-version>
, per cui assicurarsi di sostituire <registry-name>
, <sklearn-environment-name>
e <sklearn-environment-version>
come pertinente. Eseguire quindi il comando az ml component create
per creare il componente come indicato di seguito.
az ml component create --file train.yml --registry-name <registry-name>
Suggerimento
Lo stesso comando dell'interfaccia della riga di comando az ml component create
può essere usato per creare componenti in un'area di lavoro o in un registro. L'esecuzione del comando con il comando --workspace-name
crea il componente in un'area di lavoro, mentre l'esecuzione del comando con --registry-name
crea il componente nel registro di sistema.
Se si preferisce non modificare train.yml
, è possibile eseguire l'override del nome dell'ambiente nell'interfaccia della riga di comando come indicato di seguito:
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>
Suggerimento
Se viene visualizzato un errore che indica che il nome del componente esiste già nel registro di sistema, è possibile modificare la versione in train.yml
o eseguire l'override della versione nell'interfaccia della riga di comando con una versione casuale.
Annotare name
e version
del componente dall'output del comando az ml component create
e usarli con i comandi az ml component show
come indicato di seguito. name
e version
saranno necessari nella sezione successiva quando si crea un processo di training nell'area di lavoro.
az ml component show --name <component_name> --version <component_version> --registry-name <registry-name>
È anche possibile usare az ml component list --registry-name <registry-name>
per elencare tutti i componenti nel registro di sistema.
È possibile esplorare tutti i componenti in Studio di Azure Machine Learning. Assicurarsi di andare all'interfaccia utente globale e cercare la voce Registri.
Eseguire un processo della pipeline in un'area di lavoro usando un componente dal registro di sistema
Quando si esegue un processo della pipeline che usa un componente da un registro, le risorse di calcolo e i dati di training sono locali nell'area di lavoro. Per altre informazioni sull'esecuzione di processi, vedere gli articoli seguenti:
- Esecuzione di processi (interfaccia della riga di comando)
- Esecuzione di processi (SDK)
- Processi di pipeline con componenti (interfaccia della riga di comando)
- Processi di pipeline con componenti (SDK)
Verrà eseguito un processo della pipeline con il componente di training Scikit Learn creato nella sezione precedente per eseguire il training di un modello. Verificare che si trovi nella cartella cli/jobs/pipelines-with-components/nyc_taxi_data_regression
. Il set di dati di training si trova nella cartella data_transformed
. Modificare la sezione component
all'interno della sezione train_job
del file single-job-pipeline.yml
per fare riferimento al componente di training creato nella sezione precedente. Il risultato single-job-pipeline.yml
è illustrato di seguito.
$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:
L'aspetto chiave è che questa pipeline verrà eseguita in un'area di lavoro usando un componente che non si trova nell'area di lavoro specifica. Il componente si trova in un registro che può essere usato con qualsiasi area di lavoro nell'organizzazione. È possibile eseguire questo processo di training in qualsiasi area di lavoro a cui si ha accesso senza doversi preoccupare di rendere disponibile il codice di training e l'ambiente in tale area di lavoro.
Avviso
- Prima di eseguire il processo della pipeline, verificare che l'area di lavoro in cui verrà eseguito il processo si trovi in un'area di Azure supportata dal registro di sistema in cui è stato creato il componente.
- Verificare che l'area di lavoro abbia un cluster di elaborazione con il nome
cpu-cluster
o modificare il campocompute
injobs.train_job.compute
con il nome del calcolo.
Eseguire il processo della pipeline con il az ml job create
comando.
az ml job create --file single-job-pipeline.yml
Suggerimento
Se l'area di lavoro predefinita e il gruppo di risorse non sono stati configurati come illustrato nella sezione dei prerequisiti, sarà necessario specificare i parametri --workspace-name
e --resource-group
perché az ml job create
funzioni.
In alternativa, ou può ignorare la modifica single-job-pipeline.yml
ed eseguire l'override del nome del componente usato dall'interfaccia train_job
della riga di comando.
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
Poiché il componente usato nel processo di training viene condiviso tramite un registro, è possibile inviare il processo a qualsiasi area di lavoro a cui si ha accesso nell'organizzazione, anche in sottoscrizioni differenti. Ad esempio, se si dispone di dev-workspace
, test-workspace
e prod-workspace
, l'esecuzione del processo di training in queste tre aree di lavoro è semplice quanto l'esecuzione di tre comandi az ml job create
.
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>
In Studio di Azure Machine Learning selezionare il collegamento all'endpoint nell'output del processo per visualizzare il processo. Qui è possibile analizzare le metriche di training, verificare che il processo usi il componente e l'ambiente dal registro di sistema ed esaminare il modello sottoposto a training. Annotare il name
del processo dall'output o trovare le stesse informazioni dalla panoramica del processo in Studio di Azure Machine Learning. Queste informazioni saranno necessarie per scaricare il modello sottoposto a training nella sezione successiva sulla creazione di modelli nel registro di sistema.
Creare un modello nel registro di sistema
In questa sezione si apprenderà come creare modelli in un registro. Vedere gestire i modelli per altre informazioni sulla gestione dei modelli in Azure Machine Learning. Verranno esaminati due modi diversi per creare un modello in un registro. Il primo è dai file locali. Il secondo consiste nel copiare un modello registrato nell'area di lavoro in un registro.
In entrambe le opzioni si creerà un modello con il formato MLflow, che consentirà di distribuire questo modello per l'inferenza senza scrivere alcun codice di inferenza.
Creare un modello nel registro di sistema da file locali
Scaricare il modello, disponibile come output di train_job
sostituendo <job-name>
con il nome del processo dalla sezione precedente. Il modello insieme ai file di metadati MLflow deve essere disponibile in ./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/
Suggerimento
Se l'area di lavoro predefinita e il gruppo di risorse non sono stati configurati come illustrato nella sezione dei prerequisiti, sarà necessario specificare i parametri --workspace-name
e --resource-group
perché az ml model create
funzioni.
Avviso
L'output di az ml job list
viene passato a sed
. Questa operazione funziona solo nelle shell Linux. Se si usa Windows, eseguire az ml job list --parent-job-name <job-name> --query [0].name
e rimuovere le virgolette visualizzate nel nome del processo di training.
Se non è possibile scaricare il modello, è possibile trovare il modello MLflow di esempio sottoposto a training dal processo di training nella sezione precedente nella cartella cli/jobs/pipelines-with-components/nyc_taxi_data_regression/artifacts/model/
.
Creare il modello nel registro di sistema:
# create model in registry
az ml model create --name nyc-taxi-model --version 1 --type mlflow_model --path ./artifacts/model/ --registry-name <registry-name>
Suggerimento
- Usare un numero casuale per il parametro
version
se viene visualizzato un errore che indica che il nome del modello e la versione esistono già. - Lo stesso comando dell'interfaccia della riga di comando
az ml model create
può essere usato per creare modelli in un'area di lavoro o in un registro. L'esecuzione del comando con il comando--workspace-name
crea il modello in un'area di lavoro, mentre l'esecuzione del comando con--registry-name
crea il modello nel registro di sistema.
Condividere un modello dall'area di lavoro al registro di sistema
In questo flusso di lavoro si creerà prima di tutto il modello nell'area di lavoro e quindi lo si condividerà nel registro di sistema. Questo flusso di lavoro è utile quando si desidera testare il modello nell'area di lavoro prima di condividerlo. Ad esempio, distribuirlo negli endpoint, provare l'inferenza con alcuni dati di test e copiare il modello in un registro se tutto è corretto. Questo flusso di lavoro può essere utile anche quando si sviluppa una serie di modelli che usano tecniche, framework o parametri differenti e si desidera promuovere solo uno di essi al registro di sistema come candidato di produzione.
Assicurarsi di avere il nome del processo della pipeline della sezione precedente e sostituirlo nel comando per recuperare il nome del processo di training riportato di seguito. Successivamente, registrare il modello dall'output del processo di training nell'area di lavoro. Si noti che il parametro --path
fa riferimento all'output train_job
di output con la sintassi azureml://jobs/$train_job_name/outputs/artifacts/paths/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> --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
Suggerimento
- Usare un numero casuale per il parametro
version
se viene visualizzato un errore che indica che il nome del modello e la versione esistono già. - Se l'area di lavoro predefinita e il gruppo di risorse non sono stati configurati come illustrato nella sezione dei prerequisiti, sarà necessario specificare i parametri
--workspace-name
e--resource-group
perchéaz ml model create
funzioni.
Prendere nota del nome e della versione del modello. È possibile verificare se il modello è registrato nell'area di lavoro esplorandolo nell'interfaccia utente di Studio o usando il comando az ml model show --name nyc-taxi-model --version $model_version
.
Successivamente, si condividerà il modello dall'area di lavoro al registro di sistema.
# 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>
Suggerimento
- Se si hanno apportato delle modifiche nel comando
az ml model create
verificare di usare il nome del modello e la versione corretti. - Il comando precedente ha due parametri facoltativi "--share-with-name" e "--share-with-version". Se non vengono forniti, il nuovo modello avrà lo stesso nome e la stessa versione del modello condiviso.
Annotare
name
eversion
del modello dall'output del comandoaz ml model create
e usarli con i comandiaz ml model show
come indicato di seguito.name
eversion
saranno necessari nella sezione successiva quando si distribuisce il modello in un endpoint online per l'inferenza.
az ml model show --name <model_name> --version <model_version> --registry-name <registry-name>
È anche possibile usare az ml model list --registry-name <registry-name>
per elencare tutti i modelli nel registro di sistema o esplorare tutti i componenti nell'interfaccia utente di Studio di Azure Machine Learning. Assicurarsi di andare all'interfaccia utente globale e cercare l'hub Registri.
Lo screenshot seguente mostra un modello in un registro in Studio di Azure Machine Learning. Se si ha creato un modello dall'output del processo e lo si ha copiato dall'area di lavoro al registro di sistema, si noterà che il modello ha un collegamento al processo che ha eseguito il suo training. È possibile usare tale collegamento per andare al processo di training per esaminare il codice, l'ambiente e i dati usati per eseguire il training del modello.
Distribuire il modello dal registro di sistema all'endpoint online nell'area di lavoro
Nell'ultima sezione si distribuirà un modello dal registro di sistema a un endpoint online in un'area di lavoro. È possibile scegliere di distribuire qualsiasi area di lavoro a cui si ha accesso nell'organizzazione, purché il percorso dell'area di lavoro sia uno dei percorsi supportati dal registro di sistema. Questa funzionalità è utile se è stato eseguito il training di un modello in un'area di lavoro dev
e ora è necessario distribuire il modello in test
o nell'area di lavoro prod
, mantenendo al tempo stesso le informazioni di derivazione relative al codice, all'ambiente e ai dati usati per eseguire il training del modello.
Gli endpoint online consentono di distribuire modelli e inviare richieste di inferenza tramite le API REST. Per altre informazioni, vedere Come distribuire e assegnare punteggi a un modello di Machine Learning usando un endpoint online.
Creare un endpoint online.
az ml online-endpoint create --name reg-ep-1234
Aggiornare la model:
riga deploy.yml
disponibile nella cartella cli/jobs/pipelines-with-components/nyc_taxi_data_regression
per fare riferimento al nome e alla versione del modello dal passaggio precedente. Creare una distribuzione online all'endpoint online. Di seguito deploy.yml
è riportato per riferimento.
$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
Creare la distribuzione online. La distribuzione richiede alcuni minuti.
az ml online-deployment create --file deploy.yml --all-traffic
Recuperare l'URI di assegnazione dei punteggi e inviare una richiesta di assegnazione dei punteggi di esempio. I dati di esempio per la richiesta di assegnazione dei punteggi sono disponibili in scoring-data.json
nella cartella 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
Suggerimento
- Il comando
curl
funziona solo in Linux. - Se l'area di lavoro predefinita e il gruppo di risorse non sono stati configurati come illustrato nella sezione dei prerequisiti, sarà necessario specificare i parametri
--workspace-name
e--resource-group
perché i comandiaz ml online-endpoint
eaz ml online-deployment
funzionino.
Pulire le risorse
Se non si usa la distribuzione, è consigliabile eliminarla per ridurre i costi. Nell'esempio seguente vengono eliminati l'endpoint e tutte le distribuzioni sottostanti:
az ml online-endpoint delete --name reg-ep-1234 --yes --no-wait