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.

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 descriverne il comportamento portfolio da data scientist
Sebbene non sia l'unico linguaggio utilizzato, Python
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. Ognuna delle voci rappresenta una insieme di caratteristiche e/o contenuti accessibili mediante Colab: 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. 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. 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. Completiamo questa panoramica di Google Colab mostrando alcuni esempi per realizzare semplici operazioni su questa piattaforma. La prima cosa da imparare è il classico "Hello World", che su Python si implementa con una semplice riga di codice: 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. Questo semplicissimo esempio implica, ovviamente, che potremo eseguire qualsiasi tipo di codice Python, importare moduli ed eseguire operazioni anche più complesse. A questo punto può essere comodo volere usare moduli di Python aggiuntivi al nostro notebook. Per farlo, è sufficiente sfruttare la seguente sintassi: Si noti l'uso del carattere Sfruttando la stessa sintassi appena vista, possiamo anche clonare un intero repository Git sul nostro notebook, per poi lavorare sul codice in esso contenuto: Per richiedere all'utente di caricare un file in modo programmatico sul nostro notebook, sfruttiamo il codice seguente: 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: A questo punto potremmo anche visualizzare il contenuto dei file del nostro Drive mediante il comando 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.Primi passi su Google Colab
Configurare il notebook
Alcuni esempi
Eseguire codice Python
print("Hello World!")
Installare moduli Python
! pip install <module>
!
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
! git clone https://github.com/my-user/my-repo
Upload di un file
from google.colab import files
uploaded = files.upload()
Interazione con Google Drive
from google.colab import drive
drive.mount('/my-drive')
ls
:! ls "/my-drive/My Drive"
Conclusioni
Ti consigliamo anche