Gestire le aree di lavoro di Azure Machine Learning nel portale o con Python SDK (v2)
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
Questo articolo consente di creare, visualizzare ed eliminare aree di lavoro di Azure Machine Learning per Azure Machine Learning usando il portale di Azure o l'SDK per Python.
Poiché le esigenze cambiano o requisiti per l'aumento dell'automazione, è anche possibile gestire le aree di lavoro usando l'interfaccia della riga di comando, Azure PowerShell o tramite l'estensione VS Code.
Prerequisiti
- 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.
- Se si usa Python SDK:
Specificare i dettagli della sottoscrizione
# Enter details of your subscription subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>"
Ottenere un handle per la sottoscrizione.
ml_client
verrà usato in tutto il codice Python in questo articolo.# get a handle to the subscription from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
(Facoltativo) Se sono presenti più account, aggiungere l'ID tenant di Azure Active Directory che si vuole usare in
DefaultAzureCredential
. Trovare l'ID tenant dal portale di Azure in Azure Active Directory, Identità esterne.DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
(Facoltativo) Se si lavora su un cloud sovrano**, specificare il cloud sovrano con cui eseguire l'autenticazione
DefaultAzureCredential
in ..from azure.identity import AzureAuthorityHosts DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT))
Limitazioni
Quando si crea una nuova area di lavoro, è possibile creare automaticamente servizi necessari dall'area di lavoro o usare i servizi esistenti. Se si desidera usare i servizi esistenti da una sottoscrizione di Azure diversa rispetto all'area di lavoro, è necessario registrare lo spazio dei nomi di Azure Machine Learning nella sottoscrizione contenente tali servizi. Ad esempio, la creazione di un'area di lavoro nella sottoscrizione A che usa un account di archiviazione dalla sottoscrizione B, lo spazio dei nomi di Azure Machine Learning deve essere registrato nella sottoscrizione B prima di poter usare l'account di archiviazione con l'area di lavoro.
Il provider di risorse per Azure Machine Learning è Microsoft.MachineLearningServices. Per informazioni su come verificare se è registrato e come registrarlo, vedere l'articolo Provider di risorse e tipi di Azure .
Importante
Questo vale solo per le risorse fornite durante la creazione dell'area di lavoro; Account di archiviazione di Azure, Registro Azure Container, Azure Key Vault e Application Insights.
Se si usa Registro Azure Container (ACR), Account di archiviazione, Key Vault o Application Insights nella sottoscrizione diversa dall'area di lavoro, non è possibile usare l'isolamento di rete con endpoint online gestiti. Se si vuole usare l'isolamento di rete con endpoint online gestiti, è necessario disporre di Registro Azure Container, Account di archiviazione, Key Vault e Application Insights nella stessa sottoscrizione con l'area di lavoro. Per le limitazioni applicabili all'isolamento di rete con endpoint online gestiti, vedere Come proteggere l'endpoint online.
Per impostazione predefinita, la creazione di un'area di lavoro crea anche un Registro Azure Container (ACR). Poiché il Registro Azure Container non supporta attualmente i caratteri Unicode nei nomi del gruppo di risorse, usare un gruppo di risorse che non contiene questi caratteri.
Azure Machine Learning non supporta lo spazio dei nomi gerarchico (funzionalità Azure Data Lake Storage Gen2) per l'account di archiviazione predefinito dell'area di lavoro.
Suggerimento
Quando si crea l'area di lavoro, viene creata un'istanza di Insights applicazione Azure. È possibile eliminare l'istanza di Application Insights dopo la creazione del cluster se si desidera. L'eliminazione limita le informazioni raccolte dall'area di lavoro e può rendere più difficile risolvere i problemi. Se si elimina l'istanza di Application Insights creata dall'area di lavoro, non è possibile ricrearla senza eliminare e ricreare l'area di lavoro.
Per altre informazioni sull'uso di questa istanza di Application Insights, vedere Monitorare e raccogliere dati dagli endpoint del servizio Web di Machine Learning.
Creare un'area di lavoro
È possibile creare un'area di lavoro direttamente in studio di Azure Machine Learning, con opzioni limitate disponibili. In alternativa, usare uno dei metodi seguenti per un maggiore controllo delle opzioni.
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
Specifica predefinita. Per impostazione predefinita, le risorse dipendenti e il gruppo di risorse verranno creati automaticamente. Questo codice crea un'area di lavoro denominata e un gruppo di risorse denominato
myworkspace
myresourcegroup
ineastus2
.# Creating a unique workspace name with current datetime to avoid conflicts from azure.ai.ml.entities import Workspace import datetime basic_workspace_name = "mlw-basic-prod-" + datetime.datetime.now().strftime( "%Y%m%d%H%M" ) ws_basic = Workspace( name=basic_workspace_name, location="eastus", display_name="Basic workspace-example", description="This example shows how to create a basic workspace", hbi_workspace=False, tags=dict(purpose="demo"), ) ws_basic = ml_client.workspaces.begin_create(ws_basic).result() print(ws_basic)
Usare le risorse di Azure esistenti. È anche possibile creare un'area di lavoro che usa le risorse di Azure esistenti con il formato ID risorsa di Azure. Trovare gli ID risorsa di Azure specifici nell'portale di Azure o con l'SDK. In questo esempio si presuppone che il gruppo di risorse, l'account di archiviazione, l'insieme di credenziali delle chiavi, App Insights e il Registro contenitori esistano già.
# Creating a unique workspace name with current datetime to avoid conflicts import datetime from azure.ai.ml.entities import Workspace basic_ex_workspace_name = "mlw-basicex-prod-" + datetime.datetime.now().strftime( "%Y%m%d%H%M" ) # Change the following variables to resource ids of your existing storage account, key vault, application insights # and container registry. Here we reuse the ones we just created for the basic workspace existing_storage_account = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>" ws_basic.storage_account ) existing_container_registry = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<CONTAINER_REGISTRY>" ws_basic.container_registry ) existing_key_vault = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>" ws_basic.key_vault ) existing_application_insights = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.insights/components/<APP_INSIGHTS>" ws_basic.application_insights ) ws_with_existing_resources = Workspace( name=basic_ex_workspace_name, location="eastus", display_name="Bring your own dependent resources-example", description="This sample specifies a workspace configuration with existing dependent resources", storage_account=existing_storage_account, container_registry=existing_container_registry, key_vault=existing_key_vault, application_insights=existing_application_insights, tags=dict(purpose="demonstration"), ) ws_with_existing_resources = ml_client.begin_create_or_update( ws_with_existing_resources ).result() print(ws_with_existing_resources)
Per altre informazioni, vedere Informazioni di riferimento sull'SDK dell'area di lavoro.
Se si verificano problemi nell'accesso alla sottoscrizione, vedere Configurare l'autenticazione per le risorse e i flussi di lavoro di Azure Machine Learning e l'autenticazione nel notebook di Azure Machine Learning .
Rete
Importante
Per altre informazioni sull'uso di un endpoint privato e di una rete virtuale con l'area di lavoro, vedere Isolamento della rete e privacy.
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
# Creating a unique workspace name with current datetime to avoid conflicts
import datetime
from azure.ai.ml.entities import Workspace
basic_private_link_workspace_name = (
"mlw-privatelink-prod-" + datetime.datetime.now().strftime("%Y%m%d%H%M")
)
ws_private = Workspace(
name=basic_private_link_workspace_name,
location="eastus",
display_name="Private Link endpoint workspace-example",
description="When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.",
image_build_compute="cpu-compute",
public_network_access="Disabled",
tags=dict(purpose="demonstration"),
)
ml_client.workspaces.begin_create(ws_private).result()
Questa classe richiede una rete virtuale esistente.
Avanzato
Per impostazione predefinita, i metadati per l'area di lavoro vengono archiviati in un'istanza di Azure Cosmos DB gestita da Microsoft. Questi dati vengono crittografati usando chiavi gestite da Microsoft.
Per limitare i dati raccolti da Microsoft nell'area di lavoro, selezionare Area di lavoro a impatto aziendale elevato nel portale o impostata hbi_workspace=true
in Python. Per altre informazioni su questa impostazione, vedere Crittografia dei dati inattivi.
Importante
La selezione di un impatto aziendale elevato può essere eseguita solo quando si crea un'area di lavoro. Non è possibile modificare questa impostazione dopo la creazione dell'area di lavoro.
Usare la propria chiave di crittografia dei dati
È possibile fornire la propria chiave per la crittografia dei dati. In questo modo viene creata l'istanza di Azure Cosmos DB che archivia i metadati nella sottoscrizione di Azure. Per altre informazioni, vedere Chiavi gestite dal cliente.
Per specificare la propria chiave, seguire questa procedura:
Importante
Prima di seguire questa procedura, è necessario eseguire le azioni seguenti:
Seguire la procedura descritta in Configurare le chiavi gestite dal cliente per:
- Registrare il provider Azure Cosmos DB
- Creare e configurare un insieme di credenziali delle chiavi di Azure
- Generare una chiave
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
from azure.ai.ml.entities import Workspace, CustomerManagedKey
# specify the workspace details
ws = Workspace(
name="my_workspace",
location="eastus",
display_name="My workspace",
description="This example shows how to create a workspace",
customer_managed_key=CustomerManagedKey(
key_vault="/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP>/providers/microsoft.keyvault/vaults/<VAULT_NAME>"
key_uri="<KEY-IDENTIFIER>"
)
tags=dict(purpose="demo")
)
ml_client.workspaces.begin_create(ws)
Scaricare un file di configurazione
Se si esegue il codice in un'istanza di calcolo, ignorare questo passaggio. L'istanza di calcolo creerà e archivierà automaticamente la copia di questo file.
Se si prevede di usare il codice nell'ambiente locale che fa riferimento a questa area di lavoro, scaricare il file:
Selezionare l'area di lavoro in Azure Studio
In alto a destra selezionare il nome dell'area di lavoro, quindi selezionare Scarica config.json
Inserire il file nella struttura di directory con gli script Python o i notebook di Jupyter. Può trattarsi della stessa directory, in una sottodirectory denominata .azureml o in una directory padre. Quando si crea un'istanza di calcolo, questo file viene aggiunto alla directory corretta nella macchina virtuale.
Connettersi a un'area di lavoro
Quando si eseguono attività di Machine Learning usando l'SDK, è necessario un oggetto MLClient che specifica la connessione all'area di lavoro. È possibile creare un MLClient
oggetto dai parametri o con un file di configurazione.
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
Con un file di configurazione: Questo codice leggerà il contenuto del file di configurazione per trovare l'area di lavoro. Se non si è già autenticati, verrà visualizzato un prompt per l'accesso.
from azure.ai.ml import MLClient # read the config from the current directory ws_from_config = MLClient.from_config()
Dai parametri: non è necessario avere un file config.json disponibile se si usa questo approccio.
from azure.ai.ml import MLClient from azure.ai.ml.entities import Workspace from azure.identity import DefaultAzureCredential ws = MLClient( DefaultAzureCredential(), subscription_id="<SUBSCRIPTION_ID>", resource_group_name="<RESOURCE_GROUP>", workspace_name="<AML_WORKSPACE_NAME>", ) print(ws)
Se si verificano problemi durante l'accesso alla sottoscrizione, vedere Configurare l'autenticazione per risorse e flussi di lavoro di Azure Machine Learning e l'autenticazione nel notebook di Azure Machine Learning .
Trovare un'area di lavoro
Vedere un elenco di tutte le aree di lavoro che è possibile usare.
È anche possibile cercare l'area di lavoro all'interno di Studio. Vedere Cercare asset di Azure Machine Learning (anteprima) .
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
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>"
my_ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
for ws in my_ml_client.workspaces.list():
print(ws.name, ":", ws.location, ":", ws.description)
Per ottenere i dettagli di un'area di lavoro specifica:
ws = my_ml_client.workspaces.get("<AML_WORKSPACE_NAME>")
# uncomment this line after providing a workspace name above
# print(ws.location,":", ws.resource_group)
Eliminazione di un'area di lavoro
Quando non è più necessaria un'area di lavoro, eliminarla.
Avviso
Se l'eliminazione temporanea è abilitata per l'area di lavoro, può essere ripristinata dopo l'eliminazione. Se l'eliminazione temporanea non è abilitata o si seleziona l'opzione per eliminare definitivamente l'area di lavoro, non può essere ripristinata. Per altre informazioni, vedere Ripristinare un'area di lavoro eliminata.
Se l'area di lavoro è stata eliminata accidentalmente, è comunque possibile recuperare i notebook. Per informazioni dettagliate, vedere Failover per la continuità aziendale e il ripristino di emergenza.
SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)
ml_client.workspaces.begin_delete(name=ws_basic.name, delete_dependent_resources=True)
L'azione predefinita non consiste nell'eliminare le risorse associate all'area di lavoro, ovvero registro contenitori, account di archiviazione, insieme di credenziali delle chiavi e Application Insights. Impostare su delete_dependent_resources
True per eliminare anche queste risorse.
Pulire le risorse
Importante
Le risorse create possono essere usate come prerequisiti per altre esercitazioni e procedure dettagliate per Azure Machine Learning.
Se non si prevede di usare alcuna risorsa creata, eliminarle in modo da non sostenere alcun addebito:
Nel portale di Azure fare clic su Gruppi di risorse all'estrema sinistra.
Nell'elenco selezionare il gruppo di risorse creato.
Selezionare Elimina gruppo di risorse.
Immettere il nome del gruppo di risorse. Selezionare Elimina.
Risoluzione dei problemi
Browser supportati in studio di Azure Machine Learning: è consigliabile usare il browser più aggiornato compatibile con il sistema operativo. Sono supportati i browser seguenti:
- Microsoft Edge (la nuova versione più recente di Microsoft Edge. Non la versione legacy di Microsoft Edge)
- Safari (versione più recente, solo Mac)
- Chrome (versione più recente)
- Firefox (versione più recente)
portale di Azure:
- Se si passa direttamente all'area di lavoro da un collegamento di condivisione dall'SDK o dal portale di Azure, non è possibile visualizzare la pagina panoramica standard con informazioni sulla sottoscrizione nell'estensione. In questo scenario non è anche possibile passare a un'altra area di lavoro. Per visualizzare un'altra area di lavoro, passare direttamente a studio di Azure Machine Learning e cercare il nome dell'area di lavoro.
- Tutti gli asset (dati, esperimenti, calcoli e così via) sono disponibili solo in studio di Azure Machine Learning. Non sono disponibili dal portale di Azure.
- Il tentativo di esportare un modello per un'area di lavoro dal portale di Azure può restituire un errore simile al testo seguente:
Could not get resource of the type <type>. Resources of this type will not be exported.
come soluzione alternativa, usare uno dei modelli forniti in https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices come base per il modello.
Diagnostica dell'area di lavoro
È possibile eseguire la diagnostica nell'area di lavoro da studio di Azure Machine Learning o Python SDK. Dopo l'esecuzione della diagnostica, viene restituito un elenco di eventuali problemi rilevati. Questo elenco include collegamenti alle possibili soluzioni. Per altre informazioni, vedere Come usare la diagnostica dell'area di lavoro.
Errori del provider di risorse
Quando si crea un'area di lavoro di Azure Machine Learning o una risorsa usata dall'area di lavoro, è possibile che venga visualizzato un errore simile ai messaggi seguenti:
No registered resource provider found for location {location}
The subscription is not registered to use namespace {resource-provider-namespace}
Molti provider di risorse vengono registrati automaticamente, ma non tutti. Se si riceve questo messaggio, è necessario registrare il provider indicato.
La tabella seguente contiene un elenco dei provider di risorse richiesti da Azure Machine Learning:
Provider di risorse | Perché è necessario |
---|---|
Microsoft.MachineLearningServices | Creazione dell'area di lavoro di Azure Machine Learning. |
Microsoft.Storage | L'account di archiviazione di Azure viene usato come risorsa di archiviazione predefinita per l'area di lavoro. |
Microsoft.ContainerRegistry | Registro Azure Container viene usato dall'area di lavoro per compilare immagini Docker. |
Microsoft.KeyVault | Azure Key Vault viene usato dall'area di lavoro per archiviare i segreti. |
Microsoft.Notebooks/NotebookProxies | Notebook integrati nell'istanza di calcolo di Azure Machine Learning. |
Microsoft.ContainerService | Se si prevede di distribuire modelli sottoposti a training nei servizi Azure Kubernetes. |
Se si prevede di usare una chiave gestita dal cliente con Azure Machine Learning, è necessario registrare i provider di servizi seguenti:
Provider di risorse | Perché è necessario |
---|---|
Microsoft.DocumentDB/databaseAccounts | Istanza di Azure CosmosDB che registra i metadati per l'area di lavoro. |
Microsoft.Search/searchServices | Ricerca di Azure offre funzionalità di indicizzazione per l'area di lavoro. |
Per informazioni sulla registrazione dei provider di risorse, vedere Risoluzione degli errori di registrazione del provider di risorse.
Eliminazione del Registro Azure Container
L'area di lavoro di Azure Machine Learning usa il Registro Azure Container (ACR) per alcune operazioni. Verrà creata automaticamente un'istanza di ACR quando è necessaria per la prima volta.
Avviso
Dopo aver creato un'istanza di Registro Azure Container per un'area di lavoro, non eliminarla. In caso contrario, l'area di lavoro di Azure Machine Learning verrà terminata.
Esempio
Gli esempi in questo articolo provengono da workspace.ipynb.
Passaggi successivi
Dopo aver creato un'area di lavoro, informazioni su come eseguire il training e distribuire un modello.
Per altre informazioni sulla pianificazione di un'area di lavoro per i requisiti dell'organizzazione, vedere Organizzare e configurare Azure Machine Learning.
- Se è necessario spostare un'area di lavoro in un'altra sottoscrizione di Azure, vedere Come spostare un'area di lavoro.
Per informazioni su come mantenere Aggiornato Azure Machine Learning con gli aggiornamenti della sicurezza più recenti, vedere Gestione delle vulnerabilità.