Configurare un lab per insegnare l'analisi scientifica dei dati con Python e Jupyter Notebook

Questo articolo descrive come configurare una macchina virtuale (VM) modello in Azure Lab Services che include strumenti per insegnare agli studenti a usare Jupyter Notebook. Si apprenderà anche come gli utenti del lab possono connettersi ai notebook nelle macchine virtuali.

Jupyter Notebooks è un progetto open source che consente di combinare facilmente codice sorgente Python rtf ed eseguibile in un'unica area di disegno, nota come notebook. Eseguire un notebook per creare un record lineare di input e output. Questi output possono includere testo, tabelle di informazioni, grafici a dispersione e altro ancora.

Nota

Questo articolo fa riferimento alle funzionalità disponibili nei piani lab, che hanno sostituito gli account lab.

Prerequisiti

  • Per configurare questo lab, è necessario accedere a una sottoscrizione di Azure. Discutere con l'amministratore dell'organizzazione per verificare se è possibile accedere a una sottoscrizione di Azure esistente. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Configurare le impostazioni del piano lab

Dopo aver creato una sottoscrizione di Azure, è possibile creare un piano lab in Azure Lab Services. Per altre informazioni sulla creazione di un nuovo piano lab, vedere Avvio rapido: Configurare le risorse per creare lab. È anche possibile usare un piano lab esistente.

Questo lab usa una delle immagini di Data Science Virtual Machine come immagine della macchina virtuale di base. Queste immagini sono disponibili in Azure Marketplace. Questa opzione consente ai creatori di lab di selezionare l'immagine come immagine di base per il lab. È necessario abilitare queste immagini nel piano del lab.

Seguire questa procedura per abilitare queste immagini di Azure Marketplace disponibili per gli autori di lab.

  • Selezionare una delle immagini di Azure Marketplace seguenti, a seconda dei requisiti del sistema operativo:

    • Data Science Virtual Machine - Windows Server 2019/Windows Server 2022
    • Data Science Virtual Machine - Ubuntu 20.04
  • In alternativa, creare un'immagine di macchina virtuale personalizzata:

    Le immagini delle macchine virtuali di data science in Azure Marketplace sono già configurate con Jupyter Notebook. Queste immagini includono anche altri strumenti di sviluppo e modellazione per l'analisi scientifica dei dati. Se non sono necessari questi strumenti aggiuntivi e si vuole un'installazione leggera con solo notebook di Jupyter, creare un'immagine di macchina virtuale personalizzata. Per un esempio, vedere Installazione di JupyterHub in Azure.

    Dopo aver creato l'immagine personalizzata, caricare l'immagine in una raccolta di calcolo per usarla con Azure Lab Services. Altre informazioni sull'uso della raccolta di calcolo in Azure Lab Services.

Creare un lab

Configurazione del computer modello

Dopo aver creato un lab, creare una macchina virtuale modello basata sulle dimensioni della macchina virtuale e sull'immagine scelta. Configurare la macchina virtuale modello con tutto ciò che si vuole fornire agli studenti per questa classe. Per altre informazioni, vedere Creare e gestire un modello in Azure Lab Services.

Le immagini delle macchine virtuali di data science sono dotate di molti framework e strumenti di data science necessari per questo tipo di classe. Ad esempio, le immagini includono:

  • Jupyter Notebooks: un'applicazione Web che consente ai data scientist di acquisire dati non elaborati, eseguire calcoli e visualizzare i risultati nello stesso ambiente. Viene eseguito localmente nella macchina virtuale modello.
  • Visual Studio Code: ambiente di sviluppo integrato (IDE) che offre un'esperienza interattiva avanzata durante la scrittura e il test di un notebook. Per altre informazioni, vedere Uso di Jupyter Notebook in Visual Studio Code.

Viene eseguito il provisioning dell'immagine Data Science Virtual Machine - Ubuntu con il server X2Go per consentire agli utenti del lab di usare un'esperienza desktop grafica.

Abilitazione degli strumenti per l'uso di GPU

Se si usano le dimensioni Alternative Small GPU (Compute), è consigliabile verificare che i framework e le librerie di data science siano configurati correttamente per l'uso delle GPU. Potrebbe essere necessario installare una versione diversa dei driver NVIDIA e del toolkit CUDA. Per configurare le GPU, consultare la documentazione del framework o della libreria.

Ad esempio, per verificare che TensorFlow usi la GPU, connettersi alla macchina virtuale modello ed eseguire il codice Python-TensorFlow seguente in Jupyter Notebooks:

import tensorflow as tf
from tensorflow.python.client import device_lib

print(device_lib.list_local_devices())

Se l'output di questo codice è simile al risultato seguente, TensorFlow non usa la GPU:

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
]

Continuare con questo esempio, vedere Supporto GPU TensorFlow per indicazioni. Le linee guida di TensorFlow riguardano:

Dopo aver seguito i passaggi di TensorFlow per configurare la GPU, quando si esegue di nuovo il codice di test, verranno visualizzati risultati simili all'output seguente.

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 11154792128
locality {
  bus_id: 1
  links {
  }
}
incarnation: 2659412736190423786
physical_device_desc: "device: 0, name: NVIDIA Tesla K80, pci bus id: 0001:00:00.0, compute capability: 3.7"
]

Fornire notebook per la classe

L'attività successiva consiste nel fornire agli utenti del lab notebook da usare. È possibile salvare i notebook in locale nella macchina virtuale modello in modo che ogni utente del lab disponga della propria copia.

Per usare notebook di esempio di Azure Machine Learning, vedere come configurare un ambiente con Jupyter Notebooks.

Pubblicare il computer modello

Per rendere disponibile la macchina virtuale lab per gli utenti del lab, pubblicare il modello. La macchina virtuale lab include tutti gli strumenti e i notebook locali configurati in precedenza.

Connessione a Jupyter Notebook

Le sezioni seguenti illustrano diversi modi per consentire agli utenti del lab di connettersi ai notebook di Jupyter nella macchina virtuale del lab.

Usare Jupyter Notebook nella macchina virtuale del lab

Gli utenti del lab possono connettersi dal computer locale alla macchina virtuale del lab e quindi usare Jupyter Notebook all'interno della macchina virtuale del lab.

Se si usa una macchina virtuale lab basata su Windows, gli utenti del lab possono connettersi alle macchine virtuali del lab tramite Desktop remoto (RDP). Per altre informazioni, vedere come connettersi a una macchina virtuale del lab Windows.

Se si usa una macchina virtuale lab basata su Linux, gli utenti del lab possono connettersi alle macchine virtuali del lab tramite SSH o tramite X2Go. Per altre informazioni, vedere come connettersi a una macchina virtuale del lab Linux.

Tunnel SSH al server Jupyter nella macchina virtuale

Per i lab basati su Linux, è anche possibile connettersi direttamente dal computer locale al server Jupyter all'interno della macchina virtuale lab. Il protocollo SSH abilita il port forwarding tra il computer locale e un server remoto. Si tratta della macchina virtuale lab dell'utente. Un'applicazione eseguita su una determinata porta nel server viene sottoposto a tunneling sulla porta di mapping nel computer locale.

Seguire questa procedura per configurare un tunnel SSH tra il computer locale di un utente e il server Jupyter nella macchina virtuale del lab:

  1. Passare al sito Web di Azure Lab Services.

  2. Verificare che la macchina virtuale lab basata su Linux sia in esecuzione.

  3. Selezionare l'icona >Connessione Connessione tramite SSH per ottenere il comando di connessione SSH.

    Il comando ssh connection è simile all'esempio seguente:

    ssh -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus2.cloudapp.azure.com
    

    Altre informazioni su come connettersi a una macchina virtuale Linux.

  4. Nel computer locale avviare un terminale o un prompt dei comandi e copiarvi il stringa di connessione SSH. -L 8888:localhost:8888 Aggiungere quindi alla stringa di comando , che crea il tunnel tra le porte.

    Il comando finale dovrebbe essere simile all'esempio seguente.

    ssh –L 8888:localhost:8888 -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus.cloudapp.azure.com
    
  5. Premere INVIO per eseguire il comando.

  6. Quando richiesto, specificare la password della macchina virtuale del lab per connettersi alla macchina virtuale del lab.

  7. Quando ci si connette alla macchina virtuale, avviare il server Jupyter usando questo comando:

    jupyter notebook
    

    Il comando restituisce un URL per il server Jupyter nel terminale. L'URL dovrebbe essere simile all'esempio seguente:

    http://localhost:8888/?token=8c09ecfc93e6a8cbedf9c66dffdae19670a64acc1d37
    
  8. Per connettersi al notebook di Jupyter e usarlo, incollare questo URL in un browser nel computer locale.

    Nota

    Visual Studio Code consente anche un'esperienza di modifica ottimale di Jupyter Notebook. È possibile seguire le istruzioni su come connettersi a un server Jupyter remoto e usare lo stesso URL del passaggio precedente per connettersi da VS Code anziché dal browser.

Stimare i costi

Questa sezione fornisce una stima dei costi per l'esecuzione di questa classe per 25 utenti del lab. Ci sono 20 ore di tempo di classe pianificato. Inoltre, ogni utente ottiene una quota di 10 ore per compiti o assegnazioni al di fuori dell'orario di classe pianificato. La dimensione della macchina virtuale scelta è stata una GPU di piccole dimensioni alternativa (calcolo), ovvero 139 unità lab. Se si desidera usare le dimensioni piccole (20 unità lab) o medie (42 unità di laboratorio), è possibile sostituire la parte dell'unità lab nell'equazione qui con il numero corretto.

Di seguito è riportato un esempio di una stima dei costi possibile per questa classe: 25 lab users * (20 scheduled hours + 10 quota hours) * 139 lab units * 0.01 USD per hour = 1042.5 USD.

Importante

Questa stima dei costi è solo a scopo esemplificativo. Per informazioni dettagliate sui prezzi, vedere Prezzi di Azure Lab Services.

In questo articolo si è appreso come creare un lab per una classe Jupyter Notebooks e come l'utente può connettersi ai notebook nella macchina virtuale del lab. È possibile usare una configurazione simile per altre classi di Machine Learning.

È ora possibile pubblicare l'immagine modello nel lab. Per altre informazioni, vedere Pubblicare la macchina virtuale modello.

Durante la configurazione del lab, vedere gli articoli seguenti: