Modalità di funzionamento di Azure Machine Learning: risorse e asset
SI APPLICA A:Estensione ml dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)
Questo articolo si applica alla seconda versione dell'interfaccia della riga di comando di Azure Machine Learning e di Python SDK (v2). Per la versione 1 (v1), vedere Modalità di funzionamento di Azure Machine Learning: architettura e concetti (v1)
Azure Machine Learning include diverse risorse e asset che consentono di eseguire le attività di apprendimento automatico. Queste risorse e asset sono necessari per eseguire qualsiasi processo.
- Risorse: risorse di configurazione o infrastrutturali necessarie per eseguire un flusso di lavoro di apprendimento automatico. Le risorse includono:
- Asset: creati usando i comandi di Azure Machine Learning o come parte di un'esecuzione di training/assegnazione dei punteggi. Gli asset vengono sottoposti al controllo delle versioni e possono essere registrati nell'area di lavoro di Azure Machine Learning. Tali impostazioni includono:
Questo documento offre una rapida panoramica di queste risorse e asset.
Prerequisiti
Per usare gli esempi di codice Python SDK in questo articolo:
Installare l'SDK per Python v2
Creare una connessione alla sottoscrizione di Azure Machine Learning. Tutti gli esempi si basano su
ml_client
. Per creare un'area di lavoro, la connessione non richiede un nome dell'area di lavoro, perché potrebbe non essere ancora disponibile. Tutti gli altri esempi in questo articolo richiedono che il nome dell'area di lavoro sia incluso nella connessione.# import required libraries from azure.ai.ml import MLClient from azure.ai.ml.entities import Workspace from azure.identity import DefaultAzureCredential # Enter details of your subscription subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>" # get a handle to the subscription (use this if you haven't created a workspace yet) ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group) # all other examples in this article require the connection to include workspace name workspace_name = "<WORKSPACE_NAME>" ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
Area di lavoro
L'area di lavoro è la risorsa di primo livello per Azure Machine Learning, che fornisce una posizione centralizzata da cui gestire tutti gli artefatti creati quando si usa Azure Machine Learning. L'area di lavoro mantiene una cronologia di tutti i processi, compresi i log, le metriche, gli output e uno snapshot degli script. L'area di lavoro archivia i riferimenti alle risorse come archivi dati e ambiente di calcolo. Contiene anche tutti gli asset, come modelli, ambienti, componenti e asset di dati.
Creare un'area di lavoro
Per creare un'area di lavoro con Python SDK v2, è possibile usare il codice seguente:
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
# specify the workspace details
ws = Workspace(
name="my_workspace",
location="eastus",
display_name="My workspace",
description="This example shows how to create a workspace",
tags=dict(purpose="demo"),
)
ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace
Questo notebook Jupyter illustra altri modi per creare un'area di lavoro di Azure Machine Learning con SDK v2.
Per informazioni più dettagliate sulla creazione di un'area di lavoro, vedere Gestire le aree di lavoro di Azure Machine Learning nel portale o con Python SDK (v2).
Calcolo
Un ambiente di calcolo è una risorsa di calcolo designata in cui si esegue il processo o si ospita l'endpoint. Azure Machine Learning supporta i tipi di ambiente di calcolo seguenti:
- Istanza di ambiente di calcolo: ambiente di sviluppo completamente configurato e gestito nel cloud. È possibile usare l'istanza come ambiente di calcolo di training o inferenza per lo sviluppo e il test. È simile a una macchina virtuale nel cloud.
- Cluster di elaborazione: un'infrastruttura di calcolo gestito che consente di creare facilmente un cluster di nodi di calcolo CPU o GPU nel cloud.
- Calcolo serverless: un cluster di calcolo a cui si accede in tempo reale. Quando si usa il calcolo serverless, non è necessario creare un cluster personalizzato. Tutta la gestione del ciclo di vita di calcolo viene scaricata in Azure Machine Learning.
- Cluster di inferenza: usato per distribuire i modelli di apprendimento automatico con training nel servizio Azure Kubernetes. È possibile creare un cluster del servizio Azure Kubernetes dall'area di lavoro di Azure Machine Learning o collegare un cluster del servizio Azure Kubernetes esistente.
- Ambiente di calcolo collegato: è possibile collegare le proprie risorse di calcolo all'area di lavoro e usarle per il training e l'inferenza.
Creare un ambiente di calcolo
Per creare un cluster di elaborazione con Python SDK v2, è possibile usare il codice seguente:
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
cluster_basic = AmlCompute(
name="basic-example",
type="amlcompute",
size="STANDARD_DS3_v2",
location="westus",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)
Questo notebook Jupyter mostra altri modi per creare un ambiente di calcolo con SDK v2.
Per informazioni più dettagliate sulla creazione di risorse di calcolo, vedere:
- Creare un'istanza di calcolo di Azure Machine Learning
- Creare un cluster di elaborazione di Azure Machine Learning
Archivio dati
Gli archivi dati di Azure Machine Learning conservano in modo sicuro le informazioni di connessione alla risorsa di archiviazione dati in Azure, quindi non è necessario codificarle negli script. È possibile registrare e creare un archivio dati per connettersi facilmente all'account di archiviazione e accedere ai dati nel servizio di archiviazione sottostante. L'interfaccia della riga di comando v2 e l'SDK v2 supportano i tipi seguenti di servizi di archiviazione basati sul cloud:
- Contenitore BLOB di Azure
- Condivisione file di Azure
- Azure Data Lake
- Azure Data Lake Gen2
Creare un archivio dati
Per creare un archivio dati con Python SDK v2, è possibile usare il codice seguente:
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
import AzureBlobDatastore
blob_datastore1 = AzureBlobDatastore(
name="blob_example",
description="Datastore pointing to a blob container.",
account_name="mytestblobstore",
container_name="data-container",
credentials={
"account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
},
)
ml_client.create_or_update(blob_datastore1)
Questo notebook Jupyter mostra altri modi per creare gli archivi dati con SDK v2.
Per altre informazioni sull'uso di un archivio dati, vedere Creare e gestire asset di dati.
Modello
I modelli di Azure Machine Learning sono costituiti dai file binari che rappresentano un modello di apprendimento automatico e dai metadati corrispondenti. I modelli possono essere creati da un file o una directory locale o remota. Per le posizioni remote sono supportate le posizioni https
, wasbs
e azureml
. Il modello creato verrà monitorato nell'area di lavoro con il nome e la versione specificati. Azure Machine Learning supporta tre tipi di formato di archiviazione per i modelli:
custom_model
mlflow_model
triton_model
Creare un modello nel registro dei modelli
Con la registrazione dei modelli è possibile archiviare i modelli e creare le relative versioni nel cloud di Azure, all'interno della propria area di lavoro. Il registro dei modelli consente di organizzare i modelli sottoposti a training e tenerne traccia.
Per altre informazioni su come creare modelli nel Registro di sistema, vedere Usare i modelli in Azure Machine Learning.
Ambiente
Gli ambienti di Azure Machine Learning sono un incapsulamento dell'ambiente in cui viene eseguita l'attività di apprendimento automatico. Specificano i pacchetti software, le variabili di ambiente e le impostazioni software per gli script di training e assegnazione dei punteggi. Gli ambienti sono entità gestite e con controllo delle versioni all'interno dell'area di lavoro di Machine Learning. Gli ambienti consentono flussi di lavoro di apprendimento automatico riproducibili, controllabili e portabili in diversi ambienti di calcolo.
Tipi di ambiente
Azure Machine Learning supporta due tipi di ambienti: curati e personalizzati.
Gli ambienti curati vengono forniti da Azure Machine Learning e sono disponibili nell'area di lavoro per impostazione predefinita. Destinati a essere usati così come sono, contengono raccolte di pacchetti e impostazioni Python per iniziare a usare diversi framework di apprendimento automatico. Questi ambienti pre-creati consentono anche tempi di distribuzione più rapidi. Per un elenco completo, vedere l'articolo Ambienti curati.
Negli ambienti personalizzati è necessario configurare l'ambiente e installare i pacchetti o qualsiasi altra dipendenza richiesta dallo script di training o di assegnazione dei punteggi nell'ambiente di calcolo. Azure Machine Learning consente di creare un ambiente personalizzato usando:
- Immagine Docker
- Un’immagine Docker di base con YAML conda per un’ulteriore personalizzazione
- Contesto di compilazione Docker
Creare un ambiente personalizzato di Azure Machine Learning
Per creare un ambiente usando Python SDK v2, vedere Creare un ambiente.
Questo notebook Jupyter mostra altri modi per creare ambienti personalizzati con SDK v2.
Per informazioni più dettagliate sugli ambienti, vedere Creare e gestire ambienti in Azure Machine Learning.
Dati
Azure Machine Learning consente di usare diversi tipi di dati:
- URI (una posizione nell'archiviazione locale/cloud)
uri_folder
uri_file
- Tabelle (astrazione di dati tabulari)
mltable
- Primitive
string
boolean
number
Per la maggior parte degli scenari, si useranno gli URI (uri_folder
e uri_file
), una posizione nella risorsa di archiviazione che può essere facilmente mappata al file system di un nodo di calcolo in un processo montando o scaricando la risorsa di archiviazione nel nodo.
mltable
è un'astrazione per i dati tabulari da usare per processi AutoML, processi in parallelo e alcuni scenari avanzati. Se si sta iniziando a usare Azure Machine Learning e non si usa AutoML, è consigliabile iniziare con gli URI.
Componente
Un componente di Azure Machine Learning è una parte autonoma di codice che esegue un passaggio in una pipeline di apprendimento automatico. I componenti sono i blocchi predefiniti delle pipeline avanzate di apprendimento automatico. I componenti possono eseguire attività come l'elaborazione dati, il training del modello, l'assegnazione di punteggi al modello e così via. Un componente è analogo a una funzione. Ha un nome, parametri, prevede un input e restituisce un output.