Configurare un ambiente di sviluppo con Azure Databricks e AutoML in Azure Machine Learning
Informazioni su come configurare un ambiente di sviluppo in Azure Machine Learning che usa Azure Databricks e Machine Learning automatizzato.
Azure Databricks è ideale per l'esecuzione di flussi di lavoro di Machine Learning a elevato utilizzo su larga scala nella piattaforma Apache Spark scalabile nel cloud di Azure. Fornisce un ambiente basato su notebook collaborativo con un cluster di calcolo basato su CPU o GPU.
Per informazioni su altri ambienti di sviluppo di Machine Learning, vedere Configurare l'ambiente di sviluppo Python.
Prerequisito
Area di lavoro di Azure Machine Learning. Per crearne uno, seguire la procedura descritta nell'articolo Creare le risorse dell'area di lavoro .
Azure Databricks con Azure Machine Learning e AutoML
Azure Databricks si integra con Azure Machine Learning e le relative funzionalità AutoML.
È possibile usare Azure Databricks:
- Per eseguire il training di un modello usando Spark MLlib e distribuire il modello in ACI/servizio Azure Kubernetes.
- Con funzionalità di Machine Learning automatizzate con Azure Machine Learning SDK.
- Come destinazione di calcolo da una pipeline di Azure Machine Learning.
Configurare un cluster Databricks
Creare un cluster Databricks. Alcune impostazioni si applicano solo se si installa l'SDK per l'apprendimento automatico in Databricks.
La creazione del cluster richiede alcuni minuti.
Usare queste impostazioni:
Impostazione | Si applica a | Valore |
---|---|---|
Cluster Name | always | nomecluster |
Versione di Databricks Runtime | always | 9.1 LTS |
Versione Python | always | 3 |
Tipo di ruolo di lavoro (determina il numero massimo di iterazioni simultanee) |
Funzionalità automatiche di Machine Learning only |
È preferibile una macchina virtuale ottimizzata per la memoria |
Ruoli di lavoro | always | almeno 2 |
Enable Autoscaling (Abilita la scalabilità automatica) | Funzionalità automatiche di Machine Learning only |
Deselezionare |
Attendere che il cluster sia in esecuzione prima di proseguire.
Aggiungere Azure Machine Learning SDK a Databricks
Dopo aver eseguito il cluster, creare una libreria per collegare il pacchetto azure Machine Learning SDK appropriato al cluster.
Per usare Machine Learning automatizzato, passare a Aggiungere Azure Machine Learning SDK con AutoML.
Fare clic con il pulsante destro del mouse sulla cartella Area di lavoro corrente in cui si vuole archiviare la libreria. Selezionare Crea>libreria.
Suggerimento
Se si ha una versione precedente dell'SDK, deselezionarla dalle librerie installate del cluster e spostarla nel cestino. Installare la nuova versione dell'SDK e riavviare il cluster. Se si verifica un problema dopo il riavvio, scollegare e ricollegare il cluster.
Scegliere l'opzione seguente (non sono supportate altre installazioni sdk)
Extra del pacchetto SDK Source (Sorgente) PyPi Name (Nome PyPi) Per Databricks Caricare Python Egg o PyPI azureml-sdk[databricks] Avviso
Non è possibile installare altri sdk aggiuntivi. Scegliere solo l'opzione [
databricks
] .- Non selezionare Collega automaticamente a tutti i cluster.
- Selezionare Connetti accanto al nome del cluster.
Monitorare gli errori fino a quando lo stato non viene modificato in Collegato, che potrebbe richiedere alcuni minuti. Se questo passaggio ha esito negativo:
Provare a riavviare il cluster con:
- Nel riquadro a sinistra selezionare Cluster.
- Nella tabella selezionare il nome del cluster.
- Nella scheda Librerie selezionare Riavvia.
Un'installazione completata ha un aspetto simile al seguente:
Aggiungere Azure Machine Learning SDK con AutoML a Databricks
Se il cluster è stato creato con Databricks Runtime 7.3 LTS (non ML), eseguire il comando seguente nella prima cella del notebook per installare Azure Machine Learning SDK.
%pip install --upgrade --force-reinstall -r https://aka.ms/automl_linux_requirements.txt
Impostazioni di configurazione autoML
Nella configurazione di AutoML quando si usa Azure Databricks aggiungere i parametri seguenti:
max_concurrent_iterations
si basa sul numero di nodi di lavoro nel cluster.spark_context=sc
è basato sul contesto spark predefinito.
Notebook di Machine Learning che funzionano con Azure Databricks
Per provarlo:
Anche se sono disponibili molti notebook di esempio, solo questi notebook di esempio funzionano con Azure Databricks.
Importare questi esempi direttamente dall'area di lavoro. Vedere di seguito:
Informazioni su come creare una pipeline con Databricks come calcolo di training.
Risoluzione dei problemi
Databricks annulla un'esecuzione automatizzata di Machine Learning: quando si usano funzionalità di Machine Learning automatizzate in Azure Databricks, per annullare un'esecuzione e avviare una nuova esecuzione dell'esperimento, riavviare il cluster Azure Databricks.
Iterazioni di Databricks >10 per Machine Learning automatizzato: nelle impostazioni di Machine Learning automatizzate, se sono presenti più di 10 iterazioni, impostare su
show_output
False
quando si invia l'esecuzione.Widget di Databricks per Azure Machine Learning SDK e Machine Learning automatizzato: il widget di Azure Machine Learning SDK non è supportato in un notebook di Databricks perché i notebook non possono analizzare i widget HTML. È possibile visualizzare il widget nel portale usando questo codice Python nella cella del notebook di Azure Databricks:
displayHTML("<a href={} target='_blank'>Azure Portal: {}</a>".format(local_run.get_portal_url(), local_run.id))
Errore durante l'installazione dei pacchetti
L'installazione di Azure Machine Learning SDK ha esito negativo in Azure Databricks quando vengono installati altri pacchetti. Alcuni pacchetti, come
psutil
, possono causare conflitti. Per evitare errori di installazione, installare i pacchetti bloccando la versione della libreria. Questo problema è correlato a Databricks e non ad Azure Machine Learning SDK. Questo problema potrebbe verificarsi anche con altre librerie. Esempio:psutil cryptography==1.5 pyopenssl==16.0.0 ipython==2.2.0
In alternativa, è possibile usare script init se si verificano problemi di installazione con le librerie Python. Questo approccio non è ufficialmente supportato. Per altre informazioni, vedere Script init con ambito cluster.
Errore di importazione: non è possibile importare il nome
Timedelta
dapandas._libs.tslibs
: Se viene visualizzato questo errore quando si usa Machine Learning automatizzato, eseguire le due righe seguenti nel notebook:%sh rm -rf /databricks/python/lib/python3.7/site-packages/pandas-0.23.4.dist-info /databricks/python/lib/python3.7/site-packages/pandas %sh /databricks/python/bin/pip install pandas==0.23.4
Errore di importazione: nessun modulo denominato "pandas.core.indexes": se viene visualizzato questo errore quando si usa Machine Learning automatizzato:
Eseguire questo comando per installare due pacchetti nel cluster Azure Databricks:
scikit-learn==0.19.1 pandas==0.22.0
Scollegare e ricollegare il cluster al notebook.
Se questi passaggi non risolvono il problema, provare a riavviare il cluster.
FailToSendFeather: se viene visualizzato un
FailToSendFeather
errore durante la lettura dei dati nel cluster Azure Databricks, vedere le soluzioni seguenti:- Aggiornare il
azureml-sdk[automl]
pacchetto alla versione più recente. - Aggiungere
azureml-dataprep
la versione 1.1.8 o successiva. - Aggiungere
pyarrow
la versione 0.11 o successiva.
- Aggiornare il
Passaggi successivi
- Eseguire il training e distribuire un modello in Azure Machine Learning con il set di dati MNIST.
- Vedere le informazioni di riferimento su Azure Machine Learning SDK per Python.