Python et Machine Learning sur le Cloud … gratuitement ! :)

Si vous êtes intéressés par le langage Python et le Machine Learning, vous vous êtes probablement posés la question de configurer un environnement local ou instancier un environnement chez votre Clouder préféré. Dans les deux cas, soit vous allez être limités par la puissance, soit cela vous coûtera quelques euros.

De plus, si vous souhaitez essayer et construire un petit réseau de neurones, vous aurez probablement besoin d’un GPU pour accélérer l’exécution de votre code (vous aurez également besoin de vous casser les dents sur l’installation et la configuration d’extensions CudA). Idem, si vous souhaitez vous essayer à Spark et plus spécifiquement pySpark.

Néanmoins, il est tout à fait possible de provisionner un environnement dans ce but, sur le cloud et … gratuitement, oui oui …

Les deux solutions que nous allons voir sont les notebooks Google Colab et la plateforme Kaggle.

Juste avant de commencer, nous vous proposons de revoir ce qu’est un notebook car ces deux plateformes utilisent sur ceux-ci comme terrain de “jeu” 🙂

Un notebook … pour quoi faire ?

Un notebook est tout simplement un fichier qui embarque du code, du langage de markup type HTML, ou encore des équations. Chaque notebook est divisé en cellules, et chacune d’entre-elles peut être exécutée individuellement au sein d’un noyau ou kernel.

Lorsque le notebook embarque du code Python, l’extension du notebook est “ipynb”. Notez bien que ces notebooks peuvent exécuter d’autres langages que du Python. Il existe par exemple des kernel Python, Scala,  ou encore Java

Si vous souhaitez en savoir plus sur les notebooks, nous vous conseillons la lecture des pages suivantes : https://jupyter.org/ or https://en.wikipedia.org/wiki/Notebook_interface.

Notebook Python avec Google Colab(oratory)

Google Colab est un environnement gratuit de notebook hébergé par Google. Pour y accéder, vous aurez besoin d’un compte google (Gratuit). Une fois votre notebook créé, vous aurez la possibilité de le sauvegarder sur votre drive google (le fichier portera alors l’extension ipynb), voire de l’exporter sur github.

Créer son premier notebook

Pour créer votre premier notebook sur Google Colab, cliquez sur le lien suivant https://colab.research.google.com/notebooks/welcome.ipynb puis sur le menu “File” et sélectionnez “New Python 3 notebook” (Pour rappel Python 2 arrive en fin de support en 2020, évitez donc de rester sur cette vieille version de Kernel)

Python Google Colab

 

Cette opération va alors créer un nouveau répertoire dans votre répertoire Google Drive dénommé “Colab Notebooks” avec le notebook que vous venez de créer dedans.

Une fois dans le notebook, vous pouvez ajouter des cellules et y écrire vos première lignes de Python.

Dans votre notebook, vous êtes dans un environnement distant avec ses propres packages installés (Il est à noter que, par défaut, de nombreux packages sont installés). Une fois instancié, vous pouvez facilement modifier votre kernel voire y installer de nouveaux packages Python (via la commande pip install)

Configurer son environnement

Par exemple, vous souhaitez configurer un environnement pyspark, vous aurez donc besoin d’installer pyspark avec pip puis d’exécuter quelques lignes de code “de base” pour vérifier que l’extension est bien fonctionnelle.

Le notebook en question est disponible à cette URL : https://github.com/lolo115/python/blob/master/notebooks/google_colab/blog/pyspark1.ipynb, et le résultat de l’exécution de la cellule est représenté ci-dessous :

Python Google Colab pyspark

Charger des fichiers dans le notebook

Il est même possible de charger des fichiers locaux dans votre runtime puis d’exécuter du code sur celui-ci. Dans l’exemple donné ci-dessous, nous avons utilisé l’API Google pour faire cela:

GoogleColab Files

Activer son GPU

Si vous avez besoin d’utiliser un GPU, vous pouvez le faire en modifiant votre runtime d’exécution pour y associer ce GPU.

Pour cela, il suffit d’aller dans le menu “Edit”, puis de cliquer sur “Notebook Settings”. S’ouvre alors la fenêtre suivante qui vous permettra d’activer un GPU :

GPU

 

Bien évidemment, ceci est essentiellement fait pour de la démonstration ou du simple test. Vous n’aurez pas à disposition une énorme puissance de calcul, néanmoins, vous pourrez faire vos premiers pas et ce, gratuitement !

Notebook Python avec Kaggle

La seconde plateforme utile pour débuter Python est plus orientée “Machine Learning”. En effet, Kaggle est une plateforme pour les Data Scientists qui leur permet de partager des jeux de données divers, de construire des modèles d’analyses ou encore de participer à des challenges relatifs à la Data Science.

Pour accéder à Kaggle, qui est une plateforme libre, il suffit d’ouvrir un compte sur www.kaggle.com puis de s’authentifier sur le site.

Une fois authentifié, il suffit de se rendre à l’adresse www.kaggle.com/kernels puis de cliquer sur “New Kernel” et de sélectionner :

  • le style d’interface
  • le langage du Kernel. A date, Python et R sont disponibles.
  • D’activer ou pas le GPU
  • Ou encore d’activer les services Google pour pouvoir vous connecter à votre compte Google

Vous aurez ensuite accès à un notebook avec les packages Python de base chargés (comme numpy ou encore pandas) :

Python Kaggle

 

Kaggle n’est pas foncièrement différent de Google Colab, néanmoins il a une orientation clairement Data Science et l’activation d’un GPU pour le calcul est plus “intuitive” que sur Google Colab où il faut aller fouiller dans les menus. Contrairement à Google Colab, le “temps” GPU est disponible à hauteur de 30h par semaine.

A noter que, contrairement à Google Colab, votre notebook n’est pas connecté à internet et que, pour télécharger des packages notamment, il faut activer la connexion internet.

 

Voilà donc pour ce rapide tour des solutions notebook pour s’initier au machine learning en mode connecté et entièrement gratuit.

 

Si vous avez des questions sur les solutions de Data Engineering, de Data Science et d’analytique, toute l’équipe se tient à votre disposition pour y répondre : contact@premiseo.com