Condividi tramite


Gestire le aree di lavoro di Azure Machine Learning con Python SDK (v1)

SI APPLICA A: Python SDK azureml v1

Questo articolo illustra come creare, visualizzare ed eliminare aree di lavoro di Azure Machine Learning per Azure Machine Learning usando SDK per Python.

Man mano che le esigenze cambiano o aumentano i requisiti per l'automazione, è anche possibile gestire le aree di lavoro usando l'interfaccia della riga di comandoo tramite l'estensione VS Code.

Prerequisiti

Limiti

  • Quando si crea una nuova area di lavoro, è possibile creare automaticamente i servizi necessari per l’area di lavoro o usare i servizi esistenti. Se si vogliono usare i servizi esistenti di una sottoscrizione di Azure diversa rispetto all'area di lavoro, è necessario registrare lo spazio dei nomi di Azure Machine Learning nella sottoscrizione che contiene tali servizi. Ad esempio, se si crea un’area di lavoro nella sottoscrizione A che usa un account di archiviazione nella sottoscrizione B, lo spazio dei nomi di Azure Machine Learning deve essere registrato nella sottoscrizione B prima che l’area di lavoro possa usare l’account di archiviazione.

    Il provider di risorse per Azure Machine Learning è Microsoft.MachineLearningServices. Per informazioni sul controllo di una registrazione o per eseguire una registrazione, vedere Provider e tipi di risorse 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.

  • Per impostazione predefinita, la creazione di un'area di lavoro crea anche un Registro Azure Container. Poiché Registro Azure Container non supporta attualmente i caratteri Unicode nei nomi dei gruppi 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 Azure Application Insights. Se necessario, è possibile eliminare l'istanza di Application Insights dopo la creazione del cluster. L’eliminazione limita le informazioni raccolte dall’area di lavoro e potrebbe rendere più difficile la risoluzione dei problemi. Se si elimina l’istanza di Application Insights creata dall’area di lavoro, l’unico modo per ricrearla consiste nell’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 servizio Web di Machine Learning.

Creare un'area di lavoro

È possibile creare un'area di lavoro direttamente in Azure Machine Learning Studio, con opzioni limitate disponibili. In alternativa, usare uno dei metodi seguenti per un maggiore controllo delle opzioni.

  • Specifica predefinita. Per impostazione predefinita, le risorse dipendenti e il gruppo di risorse verranno creati automaticamente. Questo codice crea un'area di lavoro denominata myworkspace e un gruppo di risorse denominato myresourcegroup in eastus2.

    SI APPLICA A: Python SDK azureml v1

    from azureml.core import Workspace
    
    ws = Workspace.create(name='myworkspace',
                   subscription_id='<azure-subscription-id>',
                   resource_group='myresourcegroup',
                   create_resource_group=True,
                   location='eastus2'
                   )
    

    Impostare create_resource_group su False se si ha un gruppo di risorse di Azure già esistente che si vuole usare per l'area di lavoro.

  • Più tenant. Se si dispone di più account, aggiungere l'ID tenant del Microsoft Entra ID da usare. Trovare l'ID tenant dal portale di Azure in Microsoft Entra ID, Identità esterne.

    SI APPLICA A: Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Cloud sovrano. Se si lavora in un cloud sovrano, è necessario codice aggiuntivo per l'autenticazione in Azure.

    SI APPLICA A: Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Usare le risorse di Azure esistenti. È anche possibile creare un'area di lavoro che usa le risorse di Azure esistenti con il formato ID della risorsa di Azure. Trovare gli ID della risorsa di Azure specifici nel portale di Azure o con l'SDK. Questo esempio presuppone che il gruppo di risorse, l'account di archiviazione, l'insieme di credenziali delle chiavi, App Insights e il registro contenitori esistano già.

    SI APPLICA A: Python SDK azureml v1

    import os
    from azureml.core import Workspace
    from azureml.core.authentication import ServicePrincipalAuthentication
    
    service_principal_password = os.environ.get("AZUREML_PASSWORD")
    
    service_principal_auth = ServicePrincipalAuthentication(
        tenant_id="<tenant-id>",
        username="<application-id>",
        password=service_principal_password)
    
                          auth=service_principal_auth,
                               subscription_id='<azure-subscription-id>',
                               resource_group='myresourcegroup',
                               create_resource_group=False,
                               location='eastus2',
                               friendly_name='My workspace',
                               storage_account='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.storage/storageaccounts/mystorageaccount',
                               key_vault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault',
                               app_insights='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.insights/components/myappinsights',
                               container_registry='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.containerregistry/registries/mycontainerregistry',
                               exist_ok=False)
    

Per altre informazioni, vedere Riferimento all'SDK dell'area di lavoro.

Se si verificano problemi durante l'accesso alla sottoscrizione, vedere Configurare l'autenticazione per le risorse e i flussi di lavoro di Azure Machine Learning, nonché 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 virtuale e della privacy.

Azure Machine Learning Python SDK fornisce la classe PrivateEndpointConfig, che può essere usata con Workspace.create() per creare un'area di lavoro con un endpoint privato. 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 tramite 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 impostare 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 Azure Machine Learning.

Usare la procedura seguente per fornire la propria chiave:

Importante

Prima di seguire questa procedura, è necessario eseguire le azioni riportate:

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

Usare cmk_keyvault e resource_cmk_uri per specificare la chiave gestita dal cliente.

from azureml.core import Workspace
   ws = Workspace.create(name='myworkspace',
               subscription_id='<azure-subscription-id>',
               resource_group='myresourcegroup',
               create_resource_group=True,
               location='eastus2'
               cmk_keyvault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/<keyvault-name>', 
               resource_cmk_uri='<key-identifier>'
               )

Scaricare un file di configurazione

Se si usa un'istanza di ambiente di calcolo nell'area di lavoro per eseguire il codice, ignorare questo passaggio. L'istanza di ambiente di calcolo creerà e archivierà automaticamente una copia di questo file.

Se si prevede di usare il codice nell'ambiente locale che fa riferimento a questa area di lavoro (ws), scrivere il file di configurazione:

SI APPLICA A: Python SDK azureml v1

ws.write_config()

Inserire il file nella struttura di directory che contiene 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 ambiente di calcolo, questo file viene aggiunto direttamente alla directory corretta nella macchina virtuale.

Connettersi a un'area di lavoro

Nel codice Python si crea un oggetto area di lavoro per connettersi all'area di lavoro. 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.

SI APPLICA A: Python SDK azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
  • Più tenant. Se si dispone di più account, aggiungere l'ID tenant del Microsoft Entra ID da usare. Trovare l'ID tenant dal portale di Azure in Microsoft Entra ID, Identità esterne.

    SI APPLICA A: Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.from_config(auth=interactive_auth)
    
  • Cloud sovrano. Se si lavora in un cloud sovrano, è necessario codice aggiuntivo per l'autenticazione in Azure.

    SI APPLICA A: Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.from_config(auth=interactive_auth)
    

Se si verificano problemi durante l'accesso alla sottoscrizione, vedere Configurare l'autenticazione per le risorse e i flussi di lavoro di Azure Machine Learning, nonché l'Autenticazione nel notebook di Azure Machine Learning .

Individuare un'area di lavoro

Visualizzare un elenco di tutte le aree di lavoro che è possibile usare.

Trova le sottoscrizioni nella pagina Sottoscrizioni del portale di Azure. Copiare l'ID e usarlo nel codice seguente per visualizzare tutte le aree di lavoro disponibili per tale sottoscrizione.

SI APPLICA A: Python SDK azureml v1

from azureml.core import Workspace

Workspace.list('<subscription-id>')

Il metodo Workspace.list(..) non restituisce l'oggetto area di lavoro completo. Include solo informazioni di base sulle aree di lavoro esistenti nella sottoscrizione. Per ottenere un oggetto completo per un'area di lavoro specifica, usare Workspace.get(..).

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 è possibile recuperarla. Per altre informazioni, vedere Ripristinare un'area di lavoro eliminata.

Suggerimento

Il comportamento predefinito per Azure Machine Learning consiste nell'usare l'eliminazione temporanea dell'area di lavoro. Ciò significa che l'area di lavoro non viene eliminata immediatamente, ma viene invece contrassegnata per l'eliminazione. Per altre informazioni, vedere Eliminazione temporanea.

Eliminare l'area di lavoro ws:

SI APPLICA A: Python SDK azureml v1

ws.delete(delete_dependent_resources=False, no_wait=False)

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 informazioni dettagliate dell'applicazione. Impostare delete_dependent_resources su 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 le risorse create non servono più, eliminarle per evitare addebiti:

  1. Nel portale di Azure fare clic su Gruppi di risorse all'estrema sinistra.

  2. Nell'elenco selezionare il gruppo di risorse creato.

  3. Selezionare Elimina gruppo di risorse.

    Screenshot delle opzioni da selezionare per eliminare un gruppo di risorse nel portale di Azure.

  4. Immettere il nome del gruppo di risorse. Quindi seleziona Elimina.

Risoluzione dei problemi

  • Browser supportato nello studio di Azure Machine Learning: È consigliabile usare il browser più aggiornato che sia compatibile con il sistema operativo. Sono supportati i seguenti browser:

    • Microsoft Edge (il nuovo Microsoft Edge, ultima versione. Non una 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 da SDK o dal portale Azure, non sarà possibile visualizzare la pagina Panoramica normale con le informazioni sulla sottoscrizione nell'estensione. In questo scenario, inoltre, non è 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 nel 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 dell'area di lavoro da studio di Azure Machine Learning o da Python SDK. Dopo l'esecuzione della diagnostica, viene restituito un elenco di eventuali problemi rilevati. Questo elenco include i collegamenti a 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 Notebook integrati nell'istanza di ambiente 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 Istanza di Azure CosmosDB che registra i metadati per l'area di lavoro.
Microsoft.Search Ricerca cognitiva di Azure offre funzionalità di indicizzazione per l'area di lavoro.

Se si prevede di usare una rete virtuale gestita con Azure Machine Learning, è necessario registrare il provider di risorse Microsoft.Network. Questo provider di risorse viene usato dall'area di lavoro quando si creano endpoint privati per la rete virtuale gestita.

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.

Passaggi successivi

Informazioni su come Eseguire il training e distribuire un modello dopo aver creato un'area di lavoro.

Per altre informazioni sulla pianificazione di un'area di lavoro per i requisiti dell'organizzazione, vedere Organizzare e configurare Azure Machine Learning.

Per informazioni su come mantenere aggiornato Azure Machine Learning con gli aggiornamenti della sicurezza più recenti, vedere Gestione delle vulnerabilità.