Condividi tramite


Risoluzione dei problemi relativi all'ambiente

Questo articolo illustra come risolvere i problemi comuni che possono verificarsi con le compilazioni di immagini di ambiente oltre a presentare informazioni sulle vulnerabilità dell'ambiente AzureML.

Stiamo cercando attivamente il tuo feedback! Se si è passati a questa pagina tramite i log di definizione dell'ambiente o analisi degli errori di compilazione, vorremmo sapere se la funzionalità è stata utile o se si vuole segnalare uno scenario di errore non ancora coperto dall'analisi. È possibile anche lasciare commenti e suggerimenti relativi a questa documentazione. Lascia un tuo commento qui.

Ambienti di Azure Machine Learning

Gli ambienti di Azure Machine Learning sono un incapsulamento dell'ambiente in cui si verifica il training di Machine Learning. Specificano l'immagine docker di base, i pacchetti Python e le impostazioni software per il training e gli script di assegnazione dei punteggi. Gli ambienti sono asset gestiti e con versione all'interno dell'area di lavoro di Machine Learning che consentono flussi di lavoro riproducibili, controllabili e portabili in un'ampia gamma di destinazioni di calcolo.

Tipi di ambienti

Gli ambienti rientrano in tre categorie: curati, gestiti dall'utente e gestiti dal sistema.

Gli ambienti curati sono ambienti pre-creati da Azure Machine Learning e sono disponibili per impostazione predefinita in ogni area di lavoro. Gli ambienti 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.

Negli ambienti gestiti dall'utente è necessario configurare l'ambiente e installare ogni pacchetto richiesto dallo script di training nella destinazione di calcolo. Assicurarsi anche di includere eventuali dipendenze necessarie per la distribuzione modello.

Questi tipi di ambienti hanno due sottotipi. Per il primo tipo, BYOC (bring your own container), si porta un'immagine Docker esistente in Azure Machine Learning. Per il secondo tipo, gli ambienti basati sul contesto di compilazione Docker, Azure Machine Learning materializza l'immagine dal contesto fornito.

Quando si vuole che conda gestisca l'ambiente Python, usare un ambiente gestito dal sistema. Azure Machine Learning crea un nuovo ambiente conda isolato materializzando la specifica conda su un'immagine Docker di base. Per impostazione predefinita, Azure Machine Learning aggiunge funzionalità comuni all'immagine derivata. Tutti i pacchetti Python presenti nell'immagine di base non sono disponibili nell'ambiente conda isolato.

Crea e gestisci gli ambienti

È possibile creare e gestire ambienti da client come SDK di Python di Azure Machine Learning, interfaccia della riga di comando di Azure Machine Learning, interfaccia utente dello Studio di Azure Machine Learning ed Estensione di Visual Studio Code.

Gli ambienti "anonimi" vengono registrati automaticamente nell'area di lavoro quando si invia un esperimento senza registrare o fare riferimento a un ambiente già esistente. Non sono elencati, ma è possibile recuperarli in base alla versione o all'etichetta.

Azure Machine Learning compila le definizioni di ambiente in immagini Docker. Memorizza nella cache anche le immagini nel Registro Azure Container associato all'area di lavoro di Azure Machine Learning in modo che possano essere riutilizzate nei processi di training successivi e nelle distribuzioni degli endpoint di servizio. Più ambienti con la stessa definizione possono dare luogo a una stessa immagine memorizzata nella cache.

L'esecuzione di uno script di training in remoto richiede la creazione di un'immagine Docker.

Vulnerabilità negli ambienti AzureML

È possibile risolvere le vulnerabilità eseguendo l'aggiornamento a una versione più recente di una dipendenza (immagine di base, pacchetto Python e così via) o eseguendo la migrazione a una dipendenza diversa che soddisfi i requisiti di sicurezza. La mitigazione delle vulnerabilità richiede tempi e costi elevati perché può richiedere il refactoring del codice e dell'infrastruttura. Con la prevalenza di software open source e l'uso di dipendenze annidate complesse è importante gestire e tenere traccia delle vulnerabilità.

Esistono alcuni modi per ridurre l'impatto delle vulnerabilità:

  • Ridurre il numero di dipendenze: usare il set minimo di dipendenze per ogni scenario.
  • Raggruppare l'ambiente in modo da poter definire l'ambito e risolvere i problemi in un'unica posizione.
  • Comprendere le vulnerabilità contrassegnate e la relativa rilevanza per lo scenario.

Analizzare le vulnerabilità

È possibile monitorare e mantenere l'igiene dell'ambiente con Microsoft Defender per Registro Container per analizzare le immagini per individuare le vulnerabilità.

Per automatizzare questo processo in base ai trigger di Microsoft Defender, vedere Automatizzare le risposte ai trigger di Microsoft Defender per il cloud.

Vulnerabilità e riproducibilità

La riproducibilità è una delle basi dello sviluppo di software. Quando si sviluppa codice di produzione, un'operazione ripetuta deve garantire lo stesso risultato. La mitigazione delle vulnerabilità può compromettere la riproducibilità modificando le dipendenze.

L'obiettivo principale di Azure Machine Learning è garantire la riproducibilità. Gli ambienti rientrano in tre categorie: curati, gestiti dall'utente e gestiti dal sistema.

Ambienti curati

Gli ambienti curati sono ambienti pre-creati che Azure Machine Learning gestisce e sono disponibili per impostazione predefinita in ogni area di lavoro di Azure Machine Learning di cui è stato effettuato il provisioning. Le nuove versioni vengono rilasciate da Azure Machine Learning per risolvere le vulnerabilità. Se si usa l'immagine più recente può essere un compromesso tra riproducibilità e gestione delle vulnerabilità.

Gli ambienti curati contengono raccolte di pacchetti e impostazioni Python per iniziare a usare diversi framework di apprendimento automatico. Sono concepiti per essere usati così come sono. Questi ambienti pre-creati consentono anche tempi di distribuzione più rapidi.

Ambienti gestiti dall’utente

Negli ambienti gestiti dall'utente è necessario configurare l'ambiente e installare ogni pacchetto richiesto dallo script di training nella destinazione di calcolo e per la distribuzione modello. Questi tipi di ambienti hanno due sottotipi:

  • BYOC (bring your own container): l'utente fornisce un'immagine Docker ad Azure Machine Learning
  • Contesto di compilazione Docker: Azure Machine Learning materializza l'immagine dal contenuto fornito dall'utente

Dopo aver installato più dipendenze su un’immagine fornita da Microsoft o aver installato la propria immagine di base, la gestione delle vulnerabilità diventa responsabilità dell'utente.

Ambienti gestiti dal sistema

Usare gli ambienti gestiti dal sistema quando si vuole che conda gestisca l'ambiente Python per conto dell'utente. Azure Machine Learning crea un nuovo ambiente conda isolato materializzando la specifica conda su un'immagine Docker di base. Anche se Azure Machine Learning applica patch alle immagini di base con ogni versione, l'eventuale uso dell'immagine più recente potrebbe essere un compromesso tra riproducibilità e gestione delle vulnerabilità. Quindi è responsabilità dell'utente scegliere la versione dell'ambiente usata per i processi o le distribuzioni di modelli durante l'uso di ambienti gestiti dal sistema.

Vulnerabilità: problemi comuni

Vulnerabilità nelle immagini Docker di base

Le vulnerabilità di sistema in un ambiente vengono in genere introdotte dall'immagine di base. Ad esempio, le vulnerabilità contrassegnate come "Ubuntu" o "Debian" provengono dal livello di sistema dell'ambiente, ovvero l'immagine Docker di base. Se l'immagine di base proviene da un'autorità emittente di terze parti, verificare se la versione più recente contiene correzioni per le vulnerabilità contrassegnate. Le origini più comuni per le immagini di base in Azure Machine Learning sono:

  • Registro artefatti Microsoft (MAR) noto anche come Registro Container Microsoft (mcr.microsoft.com).
    • Le immagini possono essere elencate dalla home page MAR, chiamando l'API del catalogo o /tags/list
    • Le note sulla versione e l'origine delle immagini di base di training di AzureML sono disponibili in Azure/AzureML-Containers
  • Nvidia (nvcr.io o profilo nvidia)

Se la versione più recente dell'immagine di base non risolve le vulnerabilità, è possibile risolvere le vulnerabilità dell'immagine di base installando le versioni consigliate da un'analisi delle vulnerabilità:

apt-get install -y library_name

Vulnerabilità nei pacchetti Python

Le vulnerabilità possono anche provenire da pacchetti Python installati sopra l'immagine di base gestita dal sistema. Queste vulnerabilità correlate a Python devono essere risolte aggiornando le dipendenze Python. Le vulnerabilità Python (pip) nell'immagine provengono in genere dalle dipendenze definite dall'utente.

Per cercare le vulnerabilità e le soluzioni Python note, vedere Database di consulenza GitHub. Per risolvere le vulnerabilità di Python, aggiornare il pacchetto alla versione che presenta le correzioni per il problema contrassegnato:

pip install -u my_package=={good.version}

Se si usa un ambiente conda, aggiornare il riferimento nel file delle dipendenze conda.

In alcuni casi, i pacchetti Python verranno installati automaticamente durante la configurazione dell'ambiente conda su un'immagine Docker di base. I passaggi di mitigazione per tali pacchetti sono uguali a quelli per i pacchetti introdotti dall'utente. Conda installa le dipendenze necessarie per ogni ambiente che materializza. I pacchetti come crittografia, strumenti di installazione, wheel e così via verranno installati automaticamente dai canali predefiniti di conda. È noto un problema con il canale anaconda predefinito che non presenta le versioni più recenti del pacchetto, quindi è consigliabile assegnare priorità al canale conda-forge gestito dalla community. In caso contrario, specificare in modo esplicito pacchetti e versioni, anche se non si fa riferimento al codice che si prevede di eseguire in tale ambiente.

Problemi relativi alla cache

All'area di lavoro di Azure Machine Learning è associata un'istanza di Registro Azure Container che è una cache per le immagini del contenitore. Qualsiasi immagine materializzata viene inserita nel registro contenitori e usata se viene attivata la sperimentazione o la distribuzione per l'ambiente corrispondente. Azure Machine Learning non elimina le immagini dal registro contenitori ed è responsabilità dell'utente valutare le immagini da gestire nel tempo.

Risolvere i problemi relativi alle compilazioni di immagini dell'ambiente

Informazioni su come risolvere i problemi relativi alle compilazioni di immagini di ambiente e alle installazioni di pacchetti.

Problemi di definizione dell'ambiente

Problemi relativi al nome dell'ambiente

Prefisso curato non consentito

Questo problema può verificarsi quando il nome dell'ambiente personalizzato usa termini riservati solo agli ambienti curati. Gli ambienti curati sono ambienti gestiti da Microsoft. Gli ambienti personalizzati sono ambienti creati e gestiti.

Possibili cause:

  • Il nome dell'ambiente inizia con Microsoft o AzureML

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Aggiornare il nome dell'ambiente per escludere il prefisso riservato attualmente in uso

Risorse

Il nome dell'ambiente è troppo lungo

Possibili cause:

  • Il nome dell'ambiente è più lungo di 255 caratteri

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Aggiornare il nome dell'ambiente con un massimo di 255 caratteri

Problemi di Docker

SI APPLICA A: Estensione ML dell’interfaccia della riga di comando di Azure v1

SI APPLICA A: Python SDK azureml v1

Per creare un nuovo ambiente, è necessario usare uno degli approcci seguenti (vedere DockerSection):

  • Immagine di base
    • Specificare il nome dell'immagine di base, il repository da cui eseguirne il pull e le credenziali, se necessario
    • Fornire una specifica conda
  • Base Dockerfile
    • Fornire un Dockerfile
    • Fornire una specifica conda
  • Contesto di compilazione Docker
    • Specificare il percorso del contesto di compilazione (URL)
    • Il contesto di compilazione deve contenere almeno un Dockerfile, ma può contenere anche altri file

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

Per creare un nuovo ambiente, è necessario usare uno degli approcci seguenti:

  • Immagine Docker
    • Specificare l'URI dell'immagine ospitata in un registro, ad esempio Docker Hub o Registro Azure Container
    • Esempio qui
  • Contesto di compilazione Docker
    • Specificare la directory che funge da contesto di compilazione
    • La directory deve contenere un Dockerfile e tutti gli altri file necessari per compilare l'immagine
    • Esempio qui
  • Specifica di Conda
    • È necessario specificare un'immagine Docker di base per l'ambiente; Azure Machine Learning compila l'ambiente conda sopra l'immagine Docker fornita
    • Specificare il percorso relativo del file conda
    • Esempio qui

Definizione Docker mancante

SI APPLICA A: Python SDK azureml v1

Questo problema può verificarsi quando la definizione dell'ambiente non contiene DockerSection. In questa sezione vengono configurate le impostazioni correlate all'immagine Docker finale creata dalla specifica dell'ambiente.

Possibili cause:

  • Non è stato specificato l'oggetto della definizione dell'ambiente DockerSection

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Aggiungere DockerSection alla definizione dell'ambiente specificando un'immagine di base, un dockerfile di base o un contesto di compilazione Docker.

from azureml.core import Environment
myenv = Environment(name="myenv")
# Specify docker steps as a string.
dockerfile = r'''
FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
RUN echo "Hello from custom container!"
'''

myenv.docker.base_dockerfile = dockerfile

Risorse

Numero di opzioni docker eccessivo

Possibili cause:

SI APPLICA A: Python SDK azureml v1

Sono disponibili più di una di queste opzioni Docker specificate nella definizione dell'ambiente

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

Sono disponibili più di una di queste opzioni Docker specificate nella definizione dell'ambiente

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Scegliere l'opzione Docker da usare per compilare l'ambiente. Impostare quindi tutte le altre opzioni specificate su Nessuna.

SI APPLICA A: Python SDK azureml v1

from azureml.core import Environment
myenv = Environment(name="myEnv")
dockerfile = r'''
FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
RUN echo "Hello from custom container!"
'''
myenv.docker.base_dockerfile = dockerfile
myenv.docker.base_image = "pytorch/pytorch:latest"

# Having both base dockerfile and base image set will cause failure. Delete the one you won't use.
myenv.docker.base_image = None

Opzione Docker mancante

Possibili cause:

Nella definizione dell'ambiente non è stata specificata una delle opzioni seguenti

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

Nella definizione dell'ambiente non è stata specificata una delle opzioni seguenti

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Scegliere l'opzione Docker da usare per compilare l'ambiente, quindi popolare tale opzione nella definizione dell'ambiente.

SI APPLICA A: Python SDK azureml v1

from azureml.core import Environment
myenv = Environment(name="myEnv")
myenv.docker.base_image = "pytorch/pytorch:latest"

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

env_docker_image = Environment(
    image="pytorch/pytorch:latest",
    name="docker-image-example",
    description="Environment created from a Docker image.",
)
ml_client.environments.create_or_update(env_docker_image)

Risorse

Credenziali del registro contenitori mancanti di nome utente o password

Possibili cause:

  • È stato specificato un nome utente o una password per il registro contenitori nella definizione dell'ambiente, ma non entrambi sono stati specificati entrambi

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Aggiungere il nome utente o la password mancanti alla definizione dell'ambiente per risolvere il problema

myEnv.docker.base_image_registry.username = "username"

In alternativa, fornire l'autenticazione tramite connessioni all'area di lavoro

from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "ACR", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

Creare una connessione all'area di lavoro da un file di specifica YAML

az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace

Nota

  • La fornitura di credenziali nella definizione dell'ambiente non è più supportata. Usare invece le connessioni all'area di lavoro.

Risorse

Più credenziali per il registro delle immagini di base

Possibili cause:

  • Sono stati specificati più di un set di credenziali per il registro delle immagini di base

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Se si usano connessioni all'area di lavoro, visualizzare le connessioni impostate ed eliminare le connessioni che non si intende usare

from azureml.core import Workspace
ws = Workspace.from_config()
ws.list_connections()
ws.delete_connection("myConnection2")

Se sono state specificate le credenziali nella definizione dell'ambiente, scegliere un set di credenziali da usare e impostare tutti gli altri set su Null

myEnv.docker.base_image_registry.registry_identity = None

Nota

  • La fornitura di credenziali nella definizione dell'ambiente non è più supportata. Usare invece le connessioni all'area di lavoro.

Risorse

Segreti nel registro delle immagini di base

Possibili cause:

  • Sono state specificate le credenziali nella definizione dell'ambiente

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

La specifica delle credenziali nella definizione dell'ambiente non è più supportata. Eliminare le credenziali dalla definizione dell'ambiente e usare invece le connessioni dell'area di lavoro.

SI APPLICA A: Python SDK azureml v1

Impostare una connessione all'area di lavoro nell'area di lavoro

from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "ACR", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

Creare una connessione all'area di lavoro da un file di specifica YAML

az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace

Risorse

Attributo Docker deprecato

Possibili cause:

  • Nella definizione dell'ambiente sono stati specificati attributi Docker deprecati
  • Di seguito sono riportate le proprietà deprecate:
    • enabled
    • arguments
    • shared_volumes
    • gpu_support
      • Azure Machine Learning ora rileva e usa automaticamente l'estensione NVIDIA Docker quando è disponibile
    • smh_size

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Anziché specificare questi attributi in DockerSection della definizione dell'ambiente, usare DockerConfiguration

Risorse

Lunghezza del Dockerfile oltre il limite

Possibili cause:

  • Il Dockerfile specificato ha superato le dimensioni massime di 100 KB

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Abbreviare il Dockerfile per ridurlo al di sotto di questo limite

Risorse

Problemi relativi al contesto di compilazione docker

Percorso del contesto di compilazione Docker mancante

Possibili cause:

  • Non è stato specificato il percorso della directory del contesto di compilazione nella definizione dell'ambiente

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Includere un percorso in build_context della DockerSection in uso

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

Assicurarsi di includere un percorso per il contesto di compilazione

Risorse

Percorso Dockerfile mancante

Questo problema può verificarsi quando Azure Machine Learning non riesce a trovare il Dockerfile. Per impostazione predefinita, Azure Machine Learning cerca un Dockerfile denominato "Dockerfile" nella root della directory del contesto di compilazione, a meno che non si specifichi un percorso Dockerfile.

Possibili cause:

  • Il Dockerfile non si trova nella root della directory del contesto di compilazione e/o è stato denominato con un nome diverso da "Dockerfile" e non è stato specificato il relativo percorso

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

In build_context della DockerSection in uso includere dockerfile_path

Risorse

Non è consentito specificare l'attributo con il contesto di compilazione Docker

Questo problema può verificarsi quando sono state specificate proprietà nella definizione dell'ambiente che non possono essere incluse in un contesto di compilazione Docker.

Possibili cause:

  • È stato specificato un contesto di compilazione Docker, insieme ad almeno una delle proprietà seguenti nella definizione dell'ambiente:
    • Variabili di ambiente
    • Dipendenze Conda
    • R
    • Spark

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Se nella definizione dell'ambiente è stata specificata una delle proprietà elencate sopra, rimuoverle

  • Se si usa un contesto di compilazione Docker e si desidera specificare le dipendenze conda, la specifica conda deve risiedere nella directory del contesto di compilazione

Risorse

Tipo di percorso non supportato/Tipo di percorso sconosciuto

Possibili cause:

  • È stato specificato un tipo di percorso per il contesto di compilazione Docker non supportato o sconosciuto

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Di seguito sono riportati i tipi di posizione accettati:

Risorse

Posizione non valida

Possibili cause:

  • La posizione specificata del contesto di compilazione Docker non è valida

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Per gli scenari in cui si archivia il contesto di compilazione Docker in un account di archiviazione

  • È necessario specificare il percorso del contesto di compilazione nel modo seguente

    https://<storage-account>.blob.core.windows.net/<container>/<path>

  • Assicurarsi che il percorso specificato sia un URL valido

  • Assicurarsi di aver specificato un contenitore e un percorso

Risorse

Problemi relativi all'immagine di base

L'immagine di base è deprecata

Possibili cause:

  • È stata usata un'immagine di base deprecata
    • Azure Machine Learning non può fornire supporto per la risoluzione dei problemi per le compilazioni non riuscite con immagini deprecate
    • Azure Machine Learning non aggiorna o gestisce queste immagini, quindi sono a rischio di vulnerabilità

Le immagini di base seguenti sono deprecate:

  • azureml/base
  • azureml/base-gpu
  • azureml/base-lite
  • azureml/intelmpi2018.3-cuda10.0-cudnn7-ubuntu16.04
  • azureml/intelmpi2018.3-cuda9.0-cudnn7-ubuntu16.04
  • azureml/intelmpi2018.3-ubuntu16.04
  • azureml/o16n-base/python-slim
  • azureml/openmpi3.1.2-cuda10.0-cudnn7-ubuntu16.04
  • azureml/openmpi3.1.2-ubuntu16.04
  • azureml/openmpi3.1.2-cuda10.0-cudnn7-ubuntu18.04
  • azureml/openmpi3.1.2-cuda10.1-cudnn7-ubuntu18.04
  • azureml/openmpi3.1.2-cuda10.2-cudnn7-ubuntu18.04
  • azureml/openmpi3.1.2-cuda10.2-cudnn8-ubuntu18.04
  • azureml/openmpi3.1.2-ubuntu18.04
  • azureml/openmpi4.1.0-cuda11.0.3-cudnn8-ubuntu18.04
  • azureml/openmpi4.1.0-cuda11.1-cudnn8-ubuntu18.04

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Aggiornare l'immagine di base a una versione più recente delle immagini supportate

Nessun tag o digest

Possibili cause:

  • Non è stato incluso un tag di versione o un digest nell'immagine di base specificata
  • Senza uno di questi identificatori, l'ambiente non è riproducibile

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Includere almeno uno degli identificatori seguenti nell'immagine di base

Problemi relativi alle variabili di ambiente

Variabili di runtime posizionate erroneamente

Possibili cause:

  • Sono state specificate variabili di runtime nella definizione dell'ambiente

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Usare invece l'attributo environment_variables nell'oggetto RunConfiguration

Problemi relativi a Python

Sezione Python mancante

Possibili cause:

  • La definizione dell'ambiente non ha una sezione Python

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Popolare la sezione Python della definizione dell'ambiente

Versione di Python mancante

Possibili cause:

  • Non è stata specificata una versione Python nella definizione dell'ambiente

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Aggiungere Python come pacchetto conda e specificare la versione

from azureml.core.environment import CondaDependencies

myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep

Se si usa un file YAML per la specifica conda, includere Python come dipendenza

name: project_environment
dependencies:
  - python=3.8
  - pip:
      - azureml-defaults
channels:
  - anaconda

Più versioni di Python

Possibili cause:

  • Nella definizione dell'ambiente sono state specificate più versioni di Python

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Scegliere la versione di Python da usare e rimuovere tutte le altre versioni

myenv.python.conda_dependencies.remove_conda_package("python=3.8")

Se si usa un file YAML per la specifica conda, includere una sola versione di Python come dipendenza

Versione di Python non supportata

Possibili cause:

  • È stata specificata una versione di Python che è prossima o si trova alla fine del ciclo di vita e non è più supportata

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Specificare una versione Python che non è stata raggiunta e che non è prossima alla fine del ciclo di vita

Possibili cause:

  • È stata specificata una versione di Python che è prossima o si trova alla fine del ciclo di vita

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Specificare una versione Python che non è stata raggiunta e che non è prossima alla fine del ciclo di vita

Impossibile convalidare la versione di Python

Possibili cause:

  • È stata specificata una versione di Python con sintassi non corretta o formattazione non corretta

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Usare la sintassi corretta per specificare una versione di Python usando l'SDK

myenv.python.conda_dependencies.add_conda_package("python=3.8")

Usare la sintassi corretta per specificare una versione Python in una conda YAML

name: project_environment
dependencies:
  - python=3.8
  - pip:
      - azureml-defaults
channels:
  - anaconda

Risorse

Problemi di conda

Dipendenze conda mancanti

Possibili cause:

  • Non è stata fornita una specifica conda nella definizione dell'ambiente e user_managed_dependencies è impostato su False (impostazione predefinita)

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Se non si vuole che Azure Machine Learning crei automaticamente un ambiente Python basato su conda_dependencies,, impostare user_managed_dependencies su True

env.python.user_managed_dependencies = True
  • Si ha la responsabilità di garantire che tutti i pacchetti necessari siano disponibili nell'ambiente Python in cui si sceglie di eseguire lo script

Se si intende che Azure Machine Learning crei un ambiente Python in base a una specifica conda, è necessario popolare conda_dependencies nella definizione dell'ambiente

from azureml.core.environment import CondaDependencies

env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

È necessario specificare un'immagine Docker di base per l'ambiente e Azure Machine Learning compila quindi l'ambiente conda sopra tale immagine

Risorse

Dipendenze conda non valide

Possibili cause:

  • Le dipendenze conda specificate nella definizione dell'ambiente sono state formattate in modo non corretto

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

SI APPLICA A: Python SDK azureml v1

Assicurarsi che conda_dependencies sia una versione JSON della struttura YAML delle dipendenze conda

"condaDependencies": {
    "channels": [
    "anaconda",
        "conda-forge"
    ],
    "dependencies": [
        "python=3.8",
        {
            "pip": [
                "azureml-defaults"
            ]
        }
    ],
    "name": "project_environment"
}

È anche possibile specificare dipendenze conda usando il metodo add_conda_package

from azureml.core.environment import CondaDependencies

env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

È necessario specificare un'immagine Docker di base per l'ambiente e Azure Machine Learning compila quindi l'ambiente conda sopra tale immagine

Canali conda mancanti

Possibili cause:

  • Non sono stati specificati canali conda nella definizione dell'ambiente

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Per la riproducibilità dell'ambiente, specificare i canali da cui eseguire il pull delle dipendenze. Se non si specificano canali conda, conda usa le impostazioni predefinite che potrebbero cambiare.

SI APPLICA A: Python SDK azureml v1

Aggiungere un canale conda usando l'SDK di Python

from azureml.core.environment import CondaDependencies

env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_channel("conda-forge")
env.python.conda_dependencies = conda_dep

Se si usa un file YAML per la specifica conda, includere i canali conda da usare

name: project_environment
dependencies:
  - python=3.8
  - pip:
      - azureml-defaults
channels:
  - anaconda
  - conda-forge

Risorse

Possibili cause:

  • È stato specificato un ambiente conda di base nella definizione dell'ambiente

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Gli aggiornamenti parziali dell'ambiente possono provocare conflitti di dipendenza e/o errori di runtime imprevisti, pertanto l'uso di ambienti conda di base non è consigliato.

SI APPLICA A: Python SDK azureml v1

Rimuovere l'ambiente conda di base e specificare tutti i pacchetti necessari per l'ambiente nella sezione conda_dependencies della definizione dell'ambiente in uso

from azureml.core.environment import CondaDependencies

env = Environment(name="env")
env.python.base_conda_environment = None
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

Definire un ambiente usando un file di configurazione YAML conda standard

Risorse

Dipendenze sbloccate

Possibili cause:

  • Non sono state specificate versioni per determinati pacchetti nella specifica conda

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Se non si specifica una versione di dipendenza, il sistema di risoluzione dei pacchetti conda può scegliere una versione diversa del pacchetto nelle build successive dello stesso ambiente. Questa interruzione interrompe la riproducibilità dell'ambiente e può causare errori imprevisti.

SI APPLICA A: Python SDK azureml v1

Includere numeri di versione quando si aggiungono pacchetti alla specifica conda

from azureml.core.environment import CondaDependencies

conda_dep = CondaDependencies()
conda_dep.add_conda_package("numpy==1.24.1")

Se si usa un file YAML per la specifica conda, specificare le versioni per le dipendenze

name: project_environment
dependencies:
  - python=3.8
  - pip:
      - numpy=1.24.1
channels:
  - anaconda
  - conda-forge

Risorse

Problemi pip

Pip non specificato

Possibili cause:

  • Non è stato specificato pip come dipendenza nella specifica conda

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Per la riproducibilità, è necessario specificare e aggiungere pip come dipendenza nella specifica conda.

SI APPLICA A: Python SDK azureml v1

Specificare pip come dipendenza, insieme alla relativa versione

env.python.conda_dependencies.add_conda_package("pip==22.3.1")

Se si usa uno YAML per la specifica conda, specificare pip come dipendenza

name: project_environment
dependencies:
  - python=3.8
  - pip=22.3.1
  - pip:
      - numpy=1.24.1
channels:
  - anaconda
  - conda-forge

Risorse

Pip non aggiunto

Possibili cause:

  • Non è stata specificata una versione di pip nella specifica conda

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Se non si specifica una versione pip, è possibile usare una versione diversa nelle build successive dello stesso ambiente. Questo comportamento può causare problemi di riproducibilità e altri errori imprevisti se le versioni diverse di pip risolvono i pacchetti in modo diverso.

SI APPLICA A: Python SDK azureml v1

Specificare una versione pip nelle dipendenze conda

env.python.conda_dependencies.add_conda_package("pip==22.3.1")

Se si usa uno YAML per la specifica conda, specificare una versione di pip

name: project_environment
dependencies:
  - python=3.8
  - pip=22.3.1
  - pip:
      - numpy=1.24.1
channels:
  - anaconda
  - conda-forge

Risorse

Problemi di ambiente vari

La sezione R è deprecata

Possibili cause:

  • È stata specificata una sezione R nella definizione dell'ambiente

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Azure Machine Learning SDK per R è stato deprecato alla fine del 2021 per migliorare l'esperienza di training e distribuzione di R usando l'interfaccia della riga di comando di Azure v2

SI APPLICA A: Python SDK azureml v1

Rimuovere la sezione R dalla definizione dell'ambiente

env.r = None

Vedere il repository di esempi per iniziare a eseguire il training dei modelli R con l'interfaccia della riga di comando di Azure v2

Nessuna definizione esistente per l'ambiente

Possibili cause:

  • È stato specificato un ambiente che non esiste o non è stato registrato
  • Si è verificato un errore di ortografia o di sintassi nella specifica del nome dell'ambiente o della versione dell'ambiente

Aree interessate (sintomi):

  • Errore durante la registrazione dell'ambiente

Passaggi per la risoluzione dei problemi

Assicurarsi di specificare correttamente il nome dell'ambiente, insieme alla versione corretta

  • path-to-resource:version-number

È necessario specificare la versione più recente dell'ambiente in modo diverso

  • path-to-resource@latest

Problemi di compilazione delle immagini

Problemi del Registro Azure Container

Registro Azure Container non raggiungibile

Questo problema può verificarsi quando si verifica un errore durante l'accesso alla risorsa del Registro Azure Container associata a un'area di lavoro.

Possibili cause:

  • Il Registro Azure Container dell'area di lavoro si trova dietro una rete virtuale (VNet) (endpoint privato o endpoint servizio) e non viene usato un cluster di elaborazione per compilare immagini.
  • Il Registro Azure Container dell'area di lavoro si trova dietro una rete virtuale (VNet) (endpoint privato o endpoint servizio) e il cluster di elaborazione usato per la creazione di immagini non ha accesso al Registro Azure Container dell'area di lavoro.

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.
  • Errori del processo della pipeline.
  • Errori di distribuzione modello.

Passaggi per la risoluzione dei problemi

  • Verificare che la rete virtuale del cluster di elaborazione abbia accesso al Registro Azure Container dell'area di lavoro.
  • Assicurarsi che il cluster di elaborazione sia basato sulla CPU.

Nota

  • Sono supportati solo i cluster di calcolo di Azure Machine Learning. Calcolo, servizio Azure Kubernetes o altri tipi di istanza non sono supportati per il calcolo della compilazione di immagini.

Risorse

Formato Dockerfile imprevisto

Questo problema può verificarsi quando il Dockerfile è formattato in modo non corretto.

Possibili cause:

  • Il Dockerfile contiene una sintassi non valida
  • Il Dockerfile contiene caratteri non compatibili con UTF-8

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché verrà compilato in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Verificare che il Dockerfile sia formattato correttamente e che sia codificato in UTF-8

Risorse

Problemi di pull di Docker

Impossibile eseguire il pull dell'immagine Docker

Questo problema può verificarsi quando un pull di un'immagine Docker non riesce durante la compilazione di un'immagine.

Possibili cause:

  • Il nome del percorso del registro contenitori non è corretto
  • Un registro contenitori dietro una rete virtuale usa un endpoint privato in un'area non supportata
  • L'immagine a cui si sta tentando di fare riferimento non esiste nel registro contenitori specificato
  • Non sono state fornite credenziali per un registro privato da cui si sta provando a eseguire il pull dell'immagine oppure le credenziali specificate non sono corrette

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Verificare che il nome del percorso del registro contenitori sia corretto

Se il registro contenitori si trova dietro una rete virtuale o usa un endpoint privato in un'area non supportata

  • Configurare il registro contenitori usando l'endpoint di servizio (accesso pubblico) dal portale e riprovare
  • Dopo aver inserito il registro contenitori dietro una rete virtuale, eseguire il modello di Azure Resource Manager in modo che l'area di lavoro possa comunicare con l'istanza del registro contenitori

Se l'immagine a cui si sta tentando di fare riferimento non esiste nel registro contenitori specificato

  • Verificare di aver usato il tag corretto e che user_managed_dependencies sia stato impostato su True. L'impostazione di user_managed_dependencies su True disabilita conda e usa i pacchetti installati dell'utente

Se non sono state fornite credenziali per un registro privato da cui si sta tentando di eseguire il pull o le credenziali specificate non sono corrette

Risorse

Errore di I/O

Questo problema può verificarsi quando il pull di un'immagine Docker non riesce a causa di un problema di rete.

Possibili cause:

  • Problema di connessione di rete, che potrebbe essere temporaneo
  • Il firewall blocca la connessione
  • Registro Azure Container non è raggiungibile ed è presente l'isolamento della rete. Per altre informazioni, vedere Registro Azure Container non raggiungibile.

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Aggiungere l'host alle regole del firewall

Valutare la configurazione dell'area di lavoro. Si usa una rete virtuale o si sta provando ad accedere alle risorse durante la compilazione dell'immagine dietro una rete virtuale?

  • Assicurarsi di aver seguito i passaggi descritti in questo articolo sulla protezione di un'area di lavoro con reti virtuali
  • Azure Machine Learning richiede l'accesso in ingresso e in uscita alla rete Internet pubblica. Se si verifica un problema con la configurazione della rete virtuale, potrebbe verificarsi un problema con l'accesso a determinati repository necessari durante la compilazione dell'immagine

Se non si usa una rete virtuale o se è stata configurata correttamente

  • Provare a ricompilare l'immagine. Se il timeout era dovuto a un problema di rete, il problema potrebbe essere temporaneo e una ricompilazione potrebbe risolvere il problema

Problemi di conda durante la compilazione

Specifica non valida

Questo problema può verificarsi quando un pacchetto elencato nella specifica conda non è valido o quando è stato eseguito un comando conda in modo non corretto.

Possibili cause:

  • La sintassi usata nella specifica conda non è corretta
  • Si sta eseguendo un comando conda in modo non corretto

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Gli errori delle specifiche di conda possono verificarsi se si usa il comando Create di conda in modo non corretto

  • Leggere la documentazione e assicurarsi di usare opzioni e sintassi valide
  • È nota la confusione tra conda env create e conda create. Altre informazioni sulla risposta di conda e sulle soluzioni note di altri utenti sono disponibili qui

Per garantire una compilazione corretta, assicurarsi di usare la sintassi corretta e la specifica valida del pacchetto nello YAML di conda in uso

Errore di comunicazione

Questo problema può verificarsi quando si verifica un errore durante la comunicazione con l'entità da cui si desidera scaricare i pacchetti elencati nella specifica conda.

Possibili cause:

  • Impossibile comunicare con un canale conda o un repository di pacchetti
  • Questi errori possono essere dovuti a errori di rete temporanei

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Assicurarsi che i canali/repository conda usati nella specifica conda siano corretti

  • Verificare che esistano e che siano stati digitati correttamente

Se i canali/repository conda sono corretti

  • Provare a ricompilare l'immagine. È possibile che l'errore sia temporaneo e che una ricompilazione possa risolvere il problema
  • Verificare che i pacchetti elencati nella specifica conda siano presenti nei canali/repository specificati

Errore di compilazione

Questo problema può verificarsi quando si verifica un errore durante la compilazione di un pacchetto necessario per l'ambiente conda a causa di un errore del compilatore.

Possibili cause:

  • È stato digitato un pacchetto in modo errato e quindi questo non è stato riconosciuto
  • C'è un errore nel compilatore

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Se si usa un compilatore

  • Assicurarsi che il compilatore in uso sia riconosciuto
  • Se necessario, aggiungere un passaggio di installazione al Dockerfile
  • Verificare la versione del compilatore e verificare che tutti i comandi o le opzioni in uso siano compatibili con la versione del compilatore
  • Se necessario, aggiornare la versione del compilatore

Assicurarsi di aver digitato correttamente tutti i pacchetti elencati e di aver aggiunto correttamente le versioni

Risorse

Comando mancante

Questo problema può verificarsi quando un comando non viene riconosciuto durante una compilazione di immagini o nel requisito del pacchetto Python specificato.

Possibili cause:

  • Il comando non è stato digitato correttamente
  • Non è possibile eseguire il comando perché non è installato un pacchetto obbligatorio

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Assicurarsi di aver digitato correttamente il comando
  • Assicurarsi di aver installato tutti i pacchetti necessari per eseguire il comando che si sta tentando di eseguire
  • Se necessario, aggiungere un passaggio di installazione al Dockerfile

Risorse

Timeout di conda

Questo problema può verificarsi quando la risoluzione del pacchetto conda richiede troppo tempo per il completamento.

Possibili cause:

  • Sono inclusi un numero elevato di pacchetti elencati nella specifica conda e dei pacchetti non necessari
  • Non sono state aggiunte le dipendenze (è stato incluso tensorflow anziché tensorflow=2.8)
  • Sono stati elencati i pacchetti per i quali non è disponibile alcuna soluzione (è stato incluso il pacchetto X=1.3 e Y=2.8, ma la versione di X non è compatibile con la versione di Y)

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Memoria insufficiente

Questo problema può verificarsi quando la risoluzione del pacchetto conda non riesce a causa dell'esaurimento della memoria disponibile.

Possibili cause:

  • Sono inclusi un numero elevato di pacchetti elencati nella specifica conda e dei pacchetti non necessari
  • Non sono state aggiunte le dipendenze (è stato incluso tensorflow anziché tensorflow=2.8)
  • Sono stati elencati i pacchetti per i quali non è disponibile alcuna soluzione (è stato incluso il pacchetto X=1.3 e Y=2.8, ma la versione di X non è compatibile con la versione di Y)

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Pacchetto non trovato

Questo problema può verificarsi quando uno o più pacchetti conda elencati nella specifica non sono disponibili in un canale/repository.

Possibili cause:

  • Il nome o la versione del pacchetto sono elencati erroneamente nella specifica conda
  • Il pacchetto esiste in un canale conda che non è stato elencato nella specifica conda

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Assicurarsi di aver digitato correttamente il pacchetto e che sia presente la versione specificata
  • Assicurarsi che il pacchetto sia presente nel canale di destinazione
  • Assicurarsi di aver elencato il canale o il repository nella specifica conda in modo che il pacchetto possa essere estratto correttamente durante la risoluzione del pacchetto

Specificare i canali nella specifica conda:

channels:
  - conda-forge
  - anaconda
dependencies:
  - python=3.8
  - tensorflow=2.8
Name: my_environment

Risorse

Modulo Python mancante

Questo problema può verificarsi quando un modulo Python elencato nella specifica conda non esiste o non è valido.

Possibili cause:

  • Il modulo è stato digitato in modo non corretto
  • Il modulo non viene riconosciuto

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Assicurarsi di aver digitato correttamente il modulo e che sia presente
  • Verificare che il modulo sia compatibile con la versione di Python specificata nella specifica conda
  • Se non è stata elencata una versione specifica di Python nella specifica conda, assicurarsi di elencare una versione specifica compatibile con il modulo; in caso contrario, potrebbe essere usata un'impostazione predefinita che non è compatibile

Aggiungere una versione Python compatibile con il modulo pip in uso:

channels:
  - conda-forge
  - anaconda
dependencies:
  - python=3.8
  - pip:
    - dataclasses
Name: my_environment

Nessuna distribuzione corrispondente

Questo problema può verificarsi quando non viene trovato alcun pacchetto corrispondente alla versione specificata.

Possibili cause:

  • Il nome del pacchetto è stato digitato in modo non corretto
  • Il pacchetto e la versione non sono disponibili nei canali o nei feed specificati
  • La versione specificata non esiste

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Assicurarsi di aver digitato correttamente il pacchetto e che esista
  • Verificare che la versione specificata per il pacchetto esista
  • Assicurarsi di aver specificato il canale da cui verrà installato il pacchetto. Se non si specifica un canale, vengono usate le impostazioni predefinite e tali impostazioni predefinite potrebbero avere o meno il pacchetto che si sta cercando

Come elencare i canali in una specifica conda yaml:

channels:
  - conda-forge
  - anaconda
dependencies:
  - python = 3.8
  - tensorflow = 2.8
Name: my_environment

Risorse

Non è possibile compilare mpi4py

Questo problema può verificarsi quando la compilazione di wheel per mpi4py ha esito negativo.

Possibili cause:

  • I requisiti per un'installazione mpi4py riuscita non vengono soddisfatti
  • C'è qualcosa che non va con il metodo scelto per installare mpi4py

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Assicurarsi di avere un'installazione MPI funzionante (preferenza per il supporto MPI-3 e per MPI compilata con librerie condivise/dinamiche)

Assicurarsi di usare una versione di Python compatibile

  • Python 3.8+ è consigliato poiché le versioni precedenti sono prossime alla fine del ciclo di vita
  • Vedere installazione di mpi4py

Risorse

Tentativo di autenticazione interattiva

Questo problema può verificarsi quando pip tenta l'autenticazione interattiva durante l'installazione del pacchetto.

Possibili cause:

  • È stato elencato un pacchetto che richiede l'autenticazione, ma non sono state fornite le credenziali
  • Durante la compilazione dell'immagine, pip ha tentato di richiedere di eseguire l'autenticazione il che ha provocato un errore di compilazione perché non è possibile fornire l'autenticazione interattiva durante una compilazione

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Fornire l'autenticazione tramite connessioni all'area di lavoro

SI APPLICA A: Python SDK azureml v1

from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "PythonFeed", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

Creare una connessione all'area di lavoro da un file di specifica YAML

az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace

Risorse

BLOB non consentito

Questo problema può verificarsi quando viene rifiutato un tentativo di accesso a un BLOB in un account di archiviazione.

Possibili cause:

  • Il metodo di autorizzazione usato per accedere all'account di archiviazione non è valido
  • Si sta tentando di autorizzare tramite firma di accesso condiviso, ma il token di firma di accesso condiviso è scaduto o non valido

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Leggere quanto segue per informazioni su come autorizzare l'accesso ai dati BLOB nel portale di Azure

Leggere quanto segue per informazioni su come autorizzare l'accesso ai dati in Archiviazione di Azure

Leggere quanto segue se si è interessati all'uso della firma di accesso condiviso per accedere alle risorse di archiviazione di Azure

Compilazione horovod

Questo problema può verificarsi quando l'ambiente conda non viene creato o aggiornato perché horovod non è riuscito a compilare.

Possibili cause:

  • L'installazione di horovod richiede altri moduli non installati
  • L'installazione di horovod richiede alcune librerie non incluse

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Molti problemi potrebbero causare un errore horovod di cui un elenco completo è presente nella documentazione di horovod

  • Esaminare la guida alla risoluzione dei problemi di horovod
  • Esaminare il log di compilazione per verificare se è presente un messaggio di errore visualizzato quando horovod non è riuscito a compilare
  • È possibile che la guida alla risoluzione dei problemi di horovod spieghi il problema riscontrato, insieme a una soluzione

Risorse

Comando conda non trovato

Questo problema può verificarsi quando il comando conda non viene riconosciuto durante la creazione o l'aggiornamento dell'ambiente conda.

Possibili cause:

  • Non è stato installato conda nell'immagine di base in uso
  • Non è stato installato conda tramite il Dockerfile prima di provare a eseguire il comando conda
  • Non è stato incluso conda nel percorso o non è stato aggiunto al percorso

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Assicurarsi di disporre di un passaggio di installazione conda nel Dockerfile prima di provare a eseguire qualsiasi comando conda

Se si è provato a installare conda e si verifica questo problema, assicurarsi di aver aggiunto conda al percorso

Risorse

Versione di Python incompatibile

Questo problema può verificarsi quando è presente un pacchetto specificato nell'ambiente conda che non è compatibile con la versione di Python specificata.

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Usare una versione diversa del pacchetto compatibile con la versione di Python specificata

In alternativa, usare una versione diversa di Python compatibile con il pacchetto specificato

  • Se si sta modificando la versione di Python, usare una versione supportata e che non sia prossima alla fine del ciclo di vita
  • Vedere le date di fine del ciclo vita di Python

Risorse

Reindirizzamento bare di Conda

Questo problema può verificarsi quando è stato specificato un pacchetto nella riga di comando usando "<" o ">" senza usare le virgolette. Questa sintassi può comportare un errore nella creazione o nell'aggiornamento dell'ambiente conda.

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Aggiungere virgolette intorno alla specifica del pacchetto

  • Ad esempio, modificare conda install -y pip<=20.1.1 in conda install -y "pip<=20.1.1".

Errore di decodifica UTF-8

Questo problema può verificarsi quando si verifica un errore durante la decodifica di un carattere nella specifica conda. 

Possibili cause:

  • Il file YAML conda contiene caratteri non compatibili con UTF-8.

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Problemi pip durante la compilazione

Non è stato possibile installare i pacchetti

Questo problema può verificarsi quando la compilazione dell'immagine non riesce durante l'installazione del pacchetto Python.

Possibili cause:

  • Sono molti i problemi che potrebbero causare questo errore
  • Questo messaggio è generico e viene visualizzato quando l'analisi di Azure Machine Learning non copre ancora l'errore riscontrato

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Esaminare il log di compilazione per altre informazioni sull'errore di compilazione dell'immagine

Lasciare commenti e suggerimenti per il team di Azure Machine Learning per analizzare l'errore riscontrato

Non è possibile disinstallare il pacchetto

Questo problema può verificarsi quando pip non riesce a disinstallare un pacchetto Python installato dalla gestione pacchetti del sistema operativo.

Possibili cause:

  • Un problema pip esistente o una versione pip problematica
  • Un problema derivante dall'uso di un ambiente isolato

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Leggere quanto segue e stabilire se un problema pip esistente ha provoato l'errore

Provare quanto segue

pip install --ignore-installed [package]

Provare a creare un ambiente separato usando conda

Operatore non valido

Questo problema può verificarsi quando pip non riesce a installare un pacchetto Python a causa di un operatore non valido trovato nel requisito.

Possibili cause:

  • È stato individuato un operatore non valido nel requisito del pacchetto Python

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Assicurarsi di aver digitato correttamente il pacchetto e che sia presente la versione specificata
  • Assicurarsi che l'identificatore di versione del pacchetto sia formattato correttamente e che si usino operatori di confronto validi. Vedere Identificatori di versione
  • Sostituire l'operatore non valido con l'operatore consigliato nel messaggio di errore

Nessuna distribuzione corrispondente

Questo problema può verificarsi quando non viene trovato alcun pacchetto corrispondente alla versione specificata.

Possibili cause:

  • Il nome del pacchetto è stato digitato in modo non corretto
  • Il pacchetto e la versione non sono disponibili nei canali o nei feed specificati
  • La versione specificata non esiste

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Assicurarsi di aver digitato correttamente il pacchetto e che esista
  • Verificare che la versione specificata per il pacchetto esista
  • Eseguire pip install --upgrade pip, quindi eseguire di nuovo il comando originale
  • Assicurarsi che il pip in uso possa installare i pacchetti per la versione di Python desiderata. Vedere È consigliabile usare pip o pip3?

Risorse

Nome file wheel non valido

Questo problema può verificarsi quando è stato specificato un file wheel in modo non corretto.

Possibili cause:

  • Il nome del file wheel è stato digitato in modo errato o è stata usata una formattazione non corretta
  • Impossibile trovare il file wheel specificato

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Problemi di creazione

Nessuna destinazione specificata e nessun makefile trovato

Questo problema può verificarsi quando non sono state specificate destinazioni e non viene trovato alcun makefile durante l'esecuzione di make.

Possibili cause:

  • Makefile non è presente nella directory corrente
  • Non vengono specificate le destinazioni

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Assicurarsi di aver digitato correttamente il makefile
  • Verificare che il makefile sia presente nella directory corrente
  • Se si dispone di un makefile personalizzato, specificarlo usando make -f custommakefile
  • Specificare le destinazioni nel makefile o nella riga di comando
  • Configurare la compilazione e generare un makefile
  • Assicurarsi di aver formattato correttamente il makefile e di aver usato le schede per il rientro

Risorse

Problemi di copia

File non trovato

Questo problema può verificarsi quando Docker non riesce a trovare e copiare un file.

Possibili cause:

  • File di origine non trovato nel contesto di compilazione Docker
  • File di origine escluso da .dockerignore

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché verrà compilato in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Assicurarsi che il file di origine esista nel contesto di compilazione Docker
  • Verificare che i percorsi di origine e di destinazione esistano e siano digitati correttamente
  • Assicurarsi che il file di origine non sia elencato in .dockerignore delle directory correnti e padre
  • Rimuovere eventuali commenti finali dalla stessa riga del comando COPY

Risorse

Problemi di Apt-Get

Impossibile eseguire il comando apt-get

Questo problema può verificarsi quando apt-get non riesce a essere eseguito.

Possibili cause:

  • Problema di connessione di rete, che potrebbe essere temporaneo
  • Dipendenze interrotte correlate al pacchetto in esecuzione apt-get
  • Non si dispone delle autorizzazioni corrette per usare il comando apt-get

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché verrà compilato in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Controllare la connessione di rete e le impostazioni DNS
  • Eseguire apt-get check per verificare la presenza di dipendenze interrotte
  • Eseguire apt-get update e quindi eseguire di nuovo il comando originale
  • Eseguire il comando con il flag -f, che tenterà di risolvere il problema proveniente dalle dipendenze interrotte
  • Eseguire il comando con le autorizzazioni sudo, ad esempio sudo apt-get install <package-name>

Risorse

Problemi di push di Docker

Impossibile archiviare l'immagine Docker

Questo problema può presentarsi quando si verifica un errore durante il push di un'immagine Docker in un registro contenitori.

Possibili cause:

  • Si è verificato un problema temporaneo con il Registro Azure Container associato all'area di lavoro
  • Un registro contenitori dietro una rete virtuale usa un endpoint privato in un'area non supportata

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Ripetere la compilazione dell'ambiente se si sospetta che l'errore sia un problema temporaneo con il Registro Azure Container dell'area di lavoro

Se il registro contenitori si trova dietro una rete virtuale o usa un endpoint privato in un'area non supportata

  • Configurare il registro contenitori usando l'endpoint di servizio (accesso pubblico) dal portale e riprovare
  • Dopo aver inserito il registro contenitori dietro una rete virtuale, eseguire il modello di Azure Resource Manager in modo che l'area di lavoro possa comunicare con l'istanza del registro contenitori

Se non si usa una rete virtuale o se è stata configurata correttamente, verificare che le credenziali siano corrette per il Registro Azure Container provando una compilazione locale semplice

Comando Docker sconosciuto

Istruzione Docker sconosciuta

Questo problema può verificarsi quando Docker non riconosce un'istruzione nel Dockerfile.

Possibili cause:

  • Istruzione Docker sconosciuta usata in Dockerfile
  • Il Dockerfile contiene una sintassi non valida

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché verrà compilato in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Verificare che il comando Docker sia valido e digitato correttamente
  • Verificare che sia presente uno spazio tra il comando Docker e gli argomenti
  • Assicurarsi che non siano presenti spazi vuoti non necessari nel Dockerfile
  • Verificare che il Dockerfile sia formattato correttamente e che sia codificato in UTF-8

Risorse

Comando non trovato

Comando non riconosciuto

Questo problema può verificarsi quando il comando in esecuzione non viene riconosciuto.

Possibili cause:

  • Non è stato installato il comando tramite dockerfile prima di provare a eseguire il comando
  • Non è stato incluso il comando nel percorso o non è stato aggiunto al percorso

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché verrà compilato in modo implicito l'ambiente nel primo passaggio.

Procedura di risoluzione dei problemi Assicurarsi di disporre di un passaggio di installazione del comando nel Dockerfile prima di provare a eseguire il comando

Se si è provato a installare il comando e si verifica questo problema, assicurarsi di aver aggiunto il comando al percorso

Problemi di compilazione vari

Log di compilazione non disponibile

Possibili cause:

  • Azure Machine Learning non è autorizzato a archiviare i log di compilazione nell'account di archiviazione
  • Si è verificato un errore temporaneo durante il salvataggio dei log di compilazione
  • Si è verificato un errore di sistema prima dell'attivazione di una compilazione di immagini

Aree interessate (sintomi):

  • Compilazione riuscita, ma nessun log disponibile.
  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché Azure Machine Learning compila in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

Una ricompilazione può risolvere il problema se è temporaneo

Immagine non trovata

Questo problema può verificarsi quando non è possibile trovare l'immagine di base specificata.

Possibili cause:

  • L'immagine è stata specificata in modo non corretto
  • L'immagine specificata non esiste nel registro specificato

Aree interessate (sintomi):

  • Errore nella compilazione di ambienti dall'interfaccia utente, dall'SDK e dall'interfaccia della riga di comando.
  • Errore durante l'esecuzione dei processi perché verrà compilato in modo implicito l'ambiente nel primo passaggio.

Passaggi per la risoluzione dei problemi

  • Assicurarsi che l'immagine di base sia digitata e formattata correttamente
  • Verificare che l'immagine di base in uso esista nel registro specificato

Risorse