Google Colab, anche chiamato Google Colaboratory, è un ambiente on-line gratuito per lo sviluppo e l’esecuzione di applicazioni in Python. Permette di lavorare a progetti di Data Science senza doversi preoccupare dell’installazione, configurazione e manutenzione di di un pc o server, richiedendo esclusivamente un browser e una connessione Internet.

In questo articolo lo conosceremo meglio, vedremo quali sono i requisiti, come attivare un account Google Colab e scopriremo quanto può essere utile nella produzione, nella sperimentazione e nella ricerca, grazie alla possibilità di avere un ambiente operativo totalmente pronto, espandibile ma con una base di funzionalità operative di altissimo livello.

Per aprire Colab dobbiamo aprire l’indirizzo web https://colab.research.google.com e cliccare sul pulsante Accedi. Come qualsiasi servizio Google si potrà fare accesso mediante credenziali Gmail e da lì si avrà il proprio ambiente per Data Science a disposizione.

La finestra che vediamo qui in figura ci accoglie dopo il login e rappresenta il punto d’inizio fa cui muovere i primi passi con Colab.

202205-GoogleColab_img01

La finestra che si apre al login è strutturata in diverse schede che, già da quanto si intravede, dimostrano come Colab sia un ambiente nato per l’interazione a 360 gradi. La prima scheda elenca una serie di esempi pronti in cui vengono mostrate alcune delle potenzialità dello strumento: interazione con un data warehouse come BigQuery, realizzazione di grafici, formattazione in Markdown (un formato per la descrizione di pagine web più sintetico rispetto al classico HTML) nonché gestione di dati provenienti da sorgenti come Google Fogli (Sheets), Google Drive e Cloud Storage (il servizio di storage della Google Cloud Platform).

In buona parte, questa grande capacità di interazione di Colab è conferita dalla presenza del linguaggio di programmazione Python che, grazie al contributo della sua vasta community, mette a disposizione tantissime librerie che permettono la collaborazione con moltissimi tipi di sorgente dati.

Come si usano i notebook Colab

Colab si basa sui notebook e ciò si poteva evincere già dalla figura precedente notando quel pulsante in basso che riporta l’indicazione Nuovo blocco note. Un notebook è uno spazio per lo sviluppo di applicazioni (soprattutto destinate alla Data Science) che si utilizza in un browser ed è composto da una sequenza di celle che vengono create dallo sviluppatore man mano che ne ha bisogno.

Essenzialmente, lavorare con Colab significa creare dei notebook che potranno essere salvati su Google Drive, eseguiti in Colab stesso o scaricati per essere condivisi o utilizzati altrove.

Le celle di un notebook sono di due tipi:

  • di codice, in cui vengono realizzati script in linguaggio Python. L’output del comando viene direttamente stampato di seguito alla cella;
  • di testo, in cui viene utilizzato il formato Markdown per la formattazione e che tipicamente ha lo scopo di inserire spiegazioni, descrizioni, semplici titoli ma anche vere e proprie trattazioni a supporto di ciò che viene realizzato nelle celle di codice.

Quello che segue è uno stralcio di uno degli esempi disponibili in Colab e mostra gli aspetti di cui abbiamo parlato poco fa: celle di testo, celle di codice e output.

202205-GoogleColab_img02

Ciò che si vede è una porzione dell’esempio destinata a rappresentare un grafico. L’area centrale in grigio è costituita da una cella di codice. Si tratta di un piccolo script in Python che sfruttando la libreria matplotlib rappresenta il grafico che viene pubblicato immediatamente nella zona sottostante.

Per quanto riguarda l’esecuzione degli script dobbiamo notare che:

  • ogni cella di codice può essere eseguita singolarmente cosa che, a dire il vero, avviene molto spesso. Si noti nell’immagine precedente che ogni cella di codice ha, sulla sinistra, un pulsante che innesca la sua esecuzione (il cerchio nero con una freccia bianca);
  • un notebook Colab contiene un menù Runtime che contiene una serie di comandi per gestire l’esecuzione di celle multiple. Tra i vari comandi, tale menù contiene le voci Esegui tutte per l’esecuzione dell’intero notebook comprendendo, in ordine, tutte le celle che esso contiene, Esegui prima ed Esegui dopo per eseguire tutte le celle, rispettivamente, prima e dopo quella in cui stiamo operando;
  • è fondamentale ricordare che, sebbene possano essere trattate come script indipendenti, tutte le celle di uno stesso notebook costituiscono un unico programma con tanto di unico spazio di indirizzamento delle variabili. Ciò a volte porta a degli errori in quanto codice malfunzionante o variabili con valore errato in una cella potrebbero condizionare l’esecuzione delle altre.

Google Colab: formattazione del testo

Nella figura precedente è presente anche una cella di testo che mostra la scritta Wireframe Plots e che svolge il ruolo di titolo della sezione dell’esempio. Oltre a semplici espressioni di questo genere, si possono usare celle di testo per inserire documentazione, spiegazioni e descrizioni, cosa che ha reso i notebook uno degli strumenti più usati per la realizzazione di PDF e slide da utilizzare come materiale divulgativo in molti contesti.

Si noti che, con un doppio clic su una cella di testo, questa viene convertita nella sua versione editabile, come si vede nella figura che segue:

202205-GoogleColab_img03

La sua struttura è composta da tre aree. La porzione a sinistra ospita il codice sorgente del testo. Quello che vediamo in questo caso – la stringa ### Wireframe Plots – è un titolo definito in formato Markdown. Non approfondiremo il Markdown in questo ambito ma si consideri che una sequenza di simboli cancelletto crea un titolo: maggiore è il numero di tali simboli, più piccola sarà la dimensione del carattere (# corrisponde ad H1 in html, ## ad H2 e così via). In quest’area potrebbe essere introdotto qualsiasi altro testo eventualmente formattato in Markdown.

L’area destra contiene l’anteprima del testo formattato. L’aspetto utile di questo è che possiamo vedere effettivamente come apparirà il risultato senza dover uscire dalla modalità di modifica.

La barra visibile in alto mostra una serie di pulsanti che ricordano molto un editor di testo. Servono anch’essi per la formattazione del testo ma in maniera del tutto compatibile con quanto descritto poco fa in quanto l’azione di ognuno di essi verrà tradotta in codice Markdown. Per esempio, la figura seguente mostra del testo in cui due parole sono state formattate utilizzando gli appositi pulsanti della barra.

202205-GoogleColab_img04

La parola Python è stata posta in grassetto con il pulsante cerchiato in rosso. L’azione è stata formalizzata in Markdown con l’aggiunta di due coppie di asterischi intorno al termine che ci interessa. Inoltre, la parola matplotlib è stata posta in corsivo usando il pulsante cerchiato in azzurro: questo ha prodotto l’aggiunta nel testo di due asterischi che in Markdown rappresentano proprio il corsivo.

Confrontando le due aree – di modifica a sinistra e di anteprima a destra – si possono vedere le formattazioni applicate e l’effetto prodotto.

Qui potete trovare una guida di base alla sintassi di Markdown.

Il filesystem di Colab: dove sono salvati i file

Considerato che lavorando in Colab si passerà molto tempo ad analizzare dati e a gestire l’output prodotto dalle elaborazioni, è importante sapere che abbiamo a disposizione il supporto di un filesystem. Azionando il pulsante menù sulla sinistra si apre un pannello che mostra lo spazio disco su cui ogni nostro notebook potrà contare.

202205-GoogleColab_img05

Come vediamo è già presente una cartella che prende il nome di sample_data che contiene alcuni classici dataset di esempio. Qui potremo caricare dati provenienti dall’esterno con il comando di Upload (il pulsante che si vede in figura, in alto a sinistra) o con trascinamento diretto dal nostro computer. Agendo così però dobbiamo ricordare che quando verrà riavviato il runtime su cui si basa il notebook, tutti i file che vi avremo collocato andranno persi.

La cartella sample_data in realtà è una posizione su un sistema Linux a nostra disposizione infatti il suo percorso completo è /content/sample_data. Potremmo anche attivare il collegamento con il Google Drive dell’account con cui abbiamo fatto accesso a Colab mediante il seguente codice Python:

from google.colab import drive

drive.mount('/content/drive')

Indicheremo così che lo spazio che abbiamo su Google Drive sarà collegato al nostro runtime nel percorso /content/drive (in pratica, una cartella dello stesso livello di sample_data).

Con questo approccio, potremo non solo avere a disposizione gli eventuali dataset collocati su Drive, ma potremo anche salvarvi in modo persistente i risultati delle nostre elaborazioni.

Conclusioni

Dalla descrizione fatta in questo articolo, vediamo che Colab è un ambiente pratico, già pronto e molto ricco, che potremo sfruttare per qualsiasi tipo di lavoro in Data Science. Il fatto che includa di per sé i notebook Jupyter, il linguaggio Python e tantissime librerie preinstallate lo rende un ambiente familiare per molte aziende e vari tipi di professionisti. Strumenti di questo genere dimostrano il loro valore ogni giorno offrendo moltissimo e richiedendo poco in termini di dotazione: un browser, una connessione Internet e avremo un ufficio per Data Science operativo ovunque ci troviamo.