Google Colaboratory


Share on LinkedIn
Pocket

Pourquoi une solution cloud ?

Dans un précédent article, je vous suggérais fortement d’utiliser Jupyter pour concevoir et travailler sur vos modèles de Machine Learning. Bien sur je n’ai pas changé d’avis, bien au contraire. Néanmoins Jupyter tel quel présente un gros inconvénient : il faut l’installer ! Bien sur avec Anaconda, pas de soucis vous avez juste un bouton à cliquer.

Mais à moins que vous ayez une machine de guerre à votre disposition (chanceux que vous êtes) vous aurez besoin de puissance dés lors que vous aller traiter des gros volumes. Qui plus est tout le monde n’a pas à sa disposition des GPU !

Bref, une réponse simple consiste à s’orienter vers une solution Cloud !

En la matière vous allez avoir quelques solutions qui se présentent à vous pour faire du Jupyter en mode cloud. Que diriez-vous d’utiliser une solution 100% gratuite ? et bien je vous recommande fortement Google Colaboratory.

Google Colaboratory en bref

Colaboratory est un projet d’incubation de Google créé dans un but de collaboration (comme son nom l’indique), de formation et de recherche relatives au Machine Learning. Colaboratory est un environnement de notebook Jupyter qui ne nécessite réellement aucune configuration et qui s’exécute entièrement dans le cloud Google.
Une contrainte : les notebooks Colaboratory sont enregistrés dans Google Drive et peuvent d’ailleurs être partagés comme les documents Google Docs ou Sheets. Une passerelle GitHub (peut être pas pour longtemps) est aussi disponible.

Bien sur Colaboratory est disponible gratuitement, vous devez juste posséder un compte Google.

Pour plus d’informations sur Colaboratory je vous invite à aller sur la FAQ.

Ce qui est vraiment génial c’est que vous pouvez utiliser gratuitement une GPU pendant 12 heures (utilisation continue) !

Prise en main de Google Colaboratory

Bon aller, tapez dans votre browser l’URL : https://colab.research.google.com/

Rapidement Google Colaboratory vous propose soit de créer un notebook soit d’en récupérer un de Google Drive ou Github, soit d’en uploaded un directement depuis votre ordinateur :

Vous avez même quelques exemples intéressants à consulter pour bien prendre en main l’outil.

Créez donc un notebook ou faites comme moi récupérez-en un de Google Drive. Bonne nouvelle à propos les notebook Jupyter sont bien sur compatible avec Google Colaboratory.

La prise en main est rapide pour ceux qui sont déjà habitués à Jupyter. L’environnement est quasi-identique à part quelques artifices et autres petites fonctionnalités rajoutées (et bien utiles d’ailleurs).

Juste un hic : les fichiers de données !

Et oui nous étions dans un doux rêve jusque là. Si le monde du cloud permet en effet de se simplifier la vie coté installation et plus généralement puissance machine il reste un hic:

Il faut pouvoir interagir avec le reste du monde, et donc pouvoir à minima lire/écrire des fichiers plats !

Ça parait être en effet juste du bon sens. Malheureusement ce n’est pas le coté le plus fun de la solution. Je vous l’ai dit vos notebooks sont stockées dans Google Drive. C’est une chose, maintenant les données peuvent provenir de plusieurs endroits. Je vous propose dans le cadre de cet article de placer vos fichiers dans Google Drive. Nous allons voir comment les récupérer dans Google Colaboratory … car ce n’est malheureusement pas automatique !

Vous trouverez plusieurs exemples et manière de faire (via PyDev, API, etc.) dans des exemples fournis par Google. Malgré ces exemples j’ai un peut galéré dans la phase de récupération de fichier. Voici comment faire simplement avec PyDev.

Downloaded un fichier de Google Drive -> Colaboratory

Tout d’abord j’ai un fichier (ici sample1000.csv) placé dans Google Drive :

Pour pouvoir récupérer ce fichier il me faut son ID Google, voici comment faire :

  • Clic droit sur le fichier
  • Choisissez Obtenir le lien partageable dans le menu déroulant :

  • Copiez l’URL. mais ne récupérez que l’ID.

NB: Nous ne récupérerons par exemple ici  que la partie en gras : https://drive.google.com/open?id=1Pl-GxINYFcXL2ASaQjo_BFFiRVIZUObB

Maintenant retournons à notre Notebook, entrez ce code dans une cellule

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# Authentification Google
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

# Download du fichier
id = '1Pl-GxINYFcXL2ASaQjo_BFFiRVIZUObB'
downloaded = drive.CreateFile({'id': '1Pl-GxINYFcXL2ASaQjo_BFFiRVIZUObB'})
downloaded.GetContentFile('sample1000.csv')

Voilà c’est fait, le fichier est maintenant présent dans l’environnement Colaboratory.Vous avez remarqué … pas besoin de préciser le répertoire, l’ID permet à Google le retrouver où qu’il soit dans votre Drive.

Il ne vous reste plus qu’à le lire comme d’habitude avec Pandas par exemple :

pd.read_csv('sample1000.csv').head()

Attention avant toute chose il vous faudra installer la librairie PyDev. Cela s’effectue via la commande pip directement dans une cellule du notebook. Vous pouvez par exemple rajouter cette ligne de commande au début du code précédent :

!pip install -U -q PyDrive

Uploader un fichier de Colaboratory –> Google Drive

Maintenant que vous pouvez travailler sur vos données, vous voudrez certainement récupérer le résultat de votre travail (vos prédictions par exemple).

Pour cela cette portion de code va vous aider :

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# 1. Authenticate and create the PyDrive client.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

# 2. Create & upload a file ()from here to Google drive) text file.
uploaded = drive.CreateFile({'title': 'sample1000_resultat.csv'})
uploaded.SetContentString('Contenu du fichier ici :-)')
uploaded.Upload()
print('Uploaded file with ID {}'.format(uploaded.get('id')))

Et voilà de quoi vous mettre le pied à l’étrier avec cet outil.
N’hésitez pas à me faire part de vos remarques dans les commentaires ci-dessous.


A propos de Benoit Cayla

En plus d'être un spécialiste des données et processus d'entreprise, j'aime passer le plus clair de mon temps à l'extérieur, à jardiner par exemple ou simplement à aller dans le bois avec mes enfants. J'adore aussi le VTT que je pratique chaque semaine avec mes amis. Quand je dois rester à l'intérieur, j'aime améliorer ma maison. Bricoler me permet ainsi de libérer ma créativité d'ingénieur. Et, si je n'ai rien à réparer ou créer, je passe mon temps libre à explorer les dernières avancées technologiques dans le monde de l'IA et du RPA.

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.

huit + six =

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.