Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Google Colab per il Machine Learning: cos'è e come si usa

Google Colab è una piattaforma per eseguire codice sul Cloud, in forma di Jupyter Notebook: impariamo a conoscere meglio questo potente strumento.
Google Colab è una piattaforma per eseguire codice sul Cloud, in forma di Jupyter Notebook: impariamo a conoscere meglio questo potente strumento.
Link copiato negli appunti

Qualsiasi sviluppatore che abbia avuto a che fare con applicazioni di intelligenza artificiale e machine learning, è consapevole di quanta potenza di calcolo può essere necessaria per implementare modelli sufficientemente robusti ed efficienti. Mentre per i primi test può essere sufficiente affidarsi alla propria macchina, con l'aumentare della dimensione dei dataset l'esecuzione di algoritmi di addestramento complessi come quelli di deep learning diventa rapidamente proibitiva.

Per risolvere questo problema, esistono numerosi servizi cloud che offrono potenza di calcolo, spesso a pagamento o con varie limitazioni. In alternativa ad essi, esiste poi Google Colab, una interessante piattaforma che, seppur con alcune limitazioni, ci permette di eseguire codice direttamente sul Cloud, sfruttando la potenza di calcolo fornita da Google.

In questo articolo di approfondimento forniremo una panoramica di tale piattaforma, in moda da capire cos'è Google Colab, come funziona e come possiamo usarlo.

Google Colab e i Jupyter Notebook

Come già anticipato, Google Colab è una piattaforma che ci permette di eseguire codice direttamente sul Cloud. Per sfruttare le funzionalità di tale piattaforma, tutto ciò di cui abbiamo bisogno è un account Google, mediante il quale potremo effettuare il login ed avere accesso a questa pagina.

Prima di capire meglio come funziona, è bene fare una premessa. Per eseguire codice, Google Colab sfrutta i cosiddetti Jupyter Notebook. Questi non sono altro che documenti interattivi nei quali possiamo scrivere (e quindi eseguire) il nostro codice. Più precisamente, tali documenti permettono di suddividere il nostro codice in celle, ognuna delle quali può contenere anche del testo informativo, eventualmente formattato in Markdown.

Figura 1. Esempio di Jupyter Notebook su Google Colab (fonte: www.dataschool.io) (click per ingrandire)Esempio di Jupyter Notebook su Google Colab

L'uso di tali notebook è abbastanza comodo (e, non a caso, piuttosto popolare) per chi si occupa di data science e machine learning. Tramite un unico documento, è infatti possibile sia eseguire tutti gli step di un processo di analisi o processing, sia descriverne il comportamento in linguaggio naturale. Di fatto, i notebook rappresentano un ottimo modo per spiegare o semplicemente mostrare come agisce un algoritmo, e si prestano molto bene alla realizzazione di un portfolio da data scientist.

Sebbene non sia l'unico linguaggio utilizzato, Python è quello più comunemente adoperato quando si lavora su Google Colab con i Jupyter Notebook.

Primi passi su Google Colab

Apprese le nozioni di base sul funzionamento di questa piattaforma, vediamo come utilizzarla. Una volta effettuato l'accesso, ci viene subito mostrata una finestra modale tramite la quale potremo accedere alle varie funzionalità di Google Colab.

Figura 2. Avvio di Google Colab (click per ingrandire)Avvio di Google Colab

Ognuna delle voci rappresenta una insieme di caratteristiche e/o contenuti accessibili mediante Colab:

  • Examples: contiene un insieme di notebook con vari esempi
  • Recent: mostra i notebook con cui abbiamo lavorato più di recente
  • Google Drive: ci permette di visualizzare ed aprire i notebook presenti sul nostro Google Drive
  • GitHub: permette di aggiungere notebook direttamente da un account GitHub (che deve essere connesso con Colab)
  • Upload: consente di caricare un notebook da una directory locale

In alternativa, possiamo iniziare a lavorare su Google Colab creando il nostro primo notebook. Per farlo è sufficiente chiudere la finestra vista in precedenza, e tramite il menu File (in alto a sinistra), potremo creare un notebook compatibile con le versioni 2 o 3 di Python. Poiché la versione 2 sarà supportata solo fino a Gennaio 2020, la scelta migliore è senza dubbio quella di Python 3.

Figura 3. Creazione di un nuovo notebook su Google Colab (click per ingrandire)Creazione di un nuovo notebook su Google Colab

Una volta creato il nostro nuovo notebook, esso verrà salvato all'interno del nostro Google Drive, in una directory denominata Colab Notebooks.

Non resta quindi che modificare il nostro notebook a piacimento, aggiungendo celle, codice e testo a nostro piacimento.

Configurare il notebook

Prima di mettere le mani sul nostro notebook, è bene imparare a configurare al meglio la macchina su cui esso verrà eseguito. A tal proposito, clicchiamo sul menu Runtime, selezionando quindi la voce Change runtime type. Nella finestra che ci verrà mostrata, potremo scegliere se convertire il nostro notebook in Python 2 (cosa, come già detto, sconsigliata), ma potremo anche decidere se abilitare il supporto all'uso della GPU. Sotto la voce Hardware acceleration, possiamo infatti selezionare GPU, sfruttando la potenza di calcolo parallelo fornita da questo tipo di hardware. In alternativa potremmo decidere di sfruttare le TensorFlow Power Unit (TPU), che però non approfondiremo in questo contesto.

Figura 4. Configurazione dell'accelerazione hardware su Google Colab (click per ingrandire)Configurazione dell'accelerazione hardware su Google Colab

Alcuni esempi

Completiamo questa panoramica di Google Colab mostrando alcuni esempi per realizzare semplici operazioni su questa piattaforma.

Eseguire codice Python

La prima cosa da imparare è il classico "Hello World", che su Python si implementa con una semplice riga di codice:

print("Hello World!")

Nel nostro notebook, sarà sufficiente aggiungere tale riga in una cella, e saremo pronti alla sua esecuzione. Questa potrà essere effettuata cliccando sull'icona che si trova a sinistra del blocco di codice.

Figura 5. Hello World su Google Colab (click per ingrandire)Hello World su Google Colab

Questo semplicissimo esempio implica, ovviamente, che potremo eseguire qualsiasi tipo di codice Python, importare moduli ed eseguire operazioni anche più complesse.

Installare moduli Python

A questo punto può essere comodo volere usare moduli di Python aggiuntivi al nostro notebook. Per farlo, è sufficiente sfruttare la seguente sintassi:

! pip install <module>

Si noti l'uso del carattere ! all'inizio: ciò indica che non si tratta di linguaggio Python, bensì della necessità di eseguire un comando (in questo caso utilizziamo pip per installare un modulo).

Clonare un repository Git

Sfruttando la stessa sintassi appena vista, possiamo anche clonare un intero repository Git sul nostro notebook, per poi lavorare sul codice in esso contenuto:

! git clone https://github.com/my-user/my-repo

Upload di un file

Per richiedere all'utente di caricare un file in modo programmatico sul nostro notebook, sfruttiamo il codice seguente:

from google.colab import files
uploaded = files.upload()

Figura 6. Caricamento di un file mediante Google Colab (click per ingrandire)Caricamento di un file mediante Google Colab

Interazione con Google Drive

Infine, vediamo come utilizzare i file presenti sul nostro Google Drive. Il codice seguente monta "Il mio Drive" all'interno di una directory chiamata "my-drive", all'interno della root del nostro file system:

from google.colab import drive
drive.mount('/my-drive')

A questo punto potremmo anche visualizzare il contenuto dei file del nostro Drive mediante il comando ls:

! ls "/my-drive/My Drive"

Conclusioni

Google Colab è una piattaforma che, oltre ad essere molto comoda, è anche estremamente utile per qualsiasi data scientist o sviluppatore che si occupi di machine learning. Ciò non significa, comunque, che dobbiamo usarlo solo per questi contesti, ma il vantaggio di sfruttare la potenza di calcolo del Cloud è chiaramente molto significativo quando si ha a che fare con l'analisi o il processing di grandi moli di dati.

Ti consigliamo anche