MARGO

Actualité

Lancer Jupyter Notebook sur Google Cloud pour un challenge Kaggle

Par Hao Chen Data Scientist

20/04/2018

Quand vous participez à un challenge Kaggle, vous avez généralement besoin d’un ordinateur spécifique pour y stocker l’ensemble des données ainsi que pour accélérer l’entraînement avec votre GPU. Plutôt que d’acheter une nouvelle machine, j’ai préféré utiliser $300 de crédits offerts par Google Cloud Platform, et ainsi participer gratuitement.

Etape 1 : Création d’un compte gratuit sur Google Cloud

Pour cette étape, vous pouvez créer un nouveau compte Google ou vous connecter avec votre compte habituel sur https://cloud.google.com/. Vous aurez besoin d’indiquer vos informations et paiement et de vérifier votre compte.

Etape 2 : Création d’un nouveau projet sur GCP

Cliquer sur les trois points comme indiqué sur l’image ci-dessous, puis cliquer sur le symbole « + » pour créer un nouveau projet.

Margo - Create a new project on GCP

Etape 3 : Création d’une machine virtuelle (VM instance)

Cliquer sur le menu représenté par 3 lignes en haut à gauche de l’écran, puis sur “Compute Engine” et « VM instances ».

Margo - Create a VM instance

Cliquez maintenant sur “Créer une nouvelle instance”. Nommez votre instance, sélectionnez une zone proche de vous, j’ai choisi « europe-west1-b ». Choisissez votre type de machine. J’ai choisi 8v CPUs avec 52 GB de mémoire car mon set de données était conséquent. GCP vous donne une estimation du prix correspondant à vos configurations.

Vous pouvez customiser votre machine virtuelle en fonction du nombre de GPUs dont vous avez besoin. Attention, les GPUs ne sont disponibles que dans certaines zones. Assurez-vous d’avoir choisi l’une des zones suivantes :

  • us-west1-b
  • us-central1-c
  • us-central1-f
  • us-east1-c
  • europe-west1-b
  • europe-west1-d
  • asia-east1-a
  • asia-east1-c
  • europe-west4-a

Margo machine type

Dans la section Boot disk, sélectionnez l’OS “‘Ubuntu 16.04 LTS” et choisissez la taille de disque en fonction de la taille de votre dataset, par exemple 50 GB.

Dans les options de firewall, il est très important de cocher “http” et “https”. Ensuite, cliquez sur l’onglet “disk” et décochez “Delete boot disk when instance is deleted”.


Cliquez sur “Create”. Votre instance est prête !

IMPORTANT : n’oubliez pas d’arrêter votre instance GPU après avoir fini en cliquant sur l’icône représentant trois points, puis sur “stop” comme sur l’image ci-dessous. Si vous oubliez d’arrêter votre instance, GCP continuera de vous faire payer les heures utilisées.

 

Etape 4 : Conversion de l’adresse IP dynamique en adresse IP fixe

Par défaut, l’adresse IP externe est dynamique. Afin de simplifier la suite du processus, nous avons besoin de la rendre fixe. Cliquez sur le menu représenté par les trois lignes horizontales en haut à gauche de l’écran, puis dans la partie “Networking”, cliquez sur “External IP addresses”.

Dans “Type”, choisissez “Static”.

Maintenant, cliquez sur “Firewall rules” dans “VPC network”. Cliquez sur “Create Firewall Rules” et référez-vous à l’image suivante :

Pour la section “Protocols and ports”, vous pouvez choisir n’importe quel port. J’ai choisi tcp:5000 comme numéro de port. Enfin, cliquez sur “Create”.

 

Etape 5 : Installation de Google Cloud SDK

Référez-vous au document correspondant à votre OS sur : https://cloud.google.com/sdk/docs/quickstarts.

Puis, exécutez gcloud init en suivant les étapes sur le site pour installer Google Cloud SDK.


Etape 6 : Installer Jupyter notebook

Ouvrez un terminal, connectez votre Machine Virtuelle :

gcloud compute --project <project name> ssh --zone <zone name> <instance name>

Puis installez anaconda3 sur votre VM :

wget http://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
bash Anaconda3-4.0.0-Linux-x86_64.sh


et suivez les inscriptions qui apparaissent à l’écran. Conservez les réglages par défaut, mais répondez “yes” à la dernière question suivante :

Do you wish the installer to prepend the
Anaconda3 install location to PATH
in your /home/haroldsoh/.bashrc ?
[yes|no][no] >>> yes


Assurez-vous d’utiliser Anaconda correctement :

source ~/.bashrc


Installez ensuite d’autres logiciels, par exemple :

conda install -c conda-forge lightgbm

 

Etape 7 : Configuration du serveur VM

Ouvrez une session SSH sur votre Machine Virtuelle. Vérifiez que vous avez bien un fichier de configuration de Jupyter :

ls ~/.jupyter/jupyter_notebook_config.py


Si un tel fichier n’existe pas, créez le :

jupyter notebook --generate-config


Nous allons ajouter quelques lignes à votre fichier de configuration Jupyter; le fichier est en texte brut, vous pouvez donc le modifier via votre éditeur favori (par exemple, vim, emacs). Assurez-vous de remplacer le numéro de port par celui auquel vous avez autorisé l’accès au pare-feu à l’étape 4.

c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = <Port Number>


Vous devriez obtenir un écran semblable à celui-ci :

 

Etape 8 : Lancement de Jupyter Notebook

Pour lancer Jupyter notebook, tapper simplement la ligne de commande suivante dans votre fenêtre ssh :

jupyter notebook --ip=0.0.0.0 --port=<port-number> --no-browser &

Une fois la commande exécutée, vous obtenez un mot de passe similaire à celui-ci :

Lancez maintenant votre Jupyter Notebook. Pour ce faire, taper l’adresse suivante dans votre navigateur, où “External Static IP Address” correspond à l’adresse IP que vous avez rendue fixe, et “Port Number”, est celui auquel vous avez autorisé l’accès au pare-feu :

http://<External Static IP Address>:<Port Number>

 

Entrez le mot de passe que vous avez obtenue lors de l’étape précédente.

 

Vous avez maintenant un Jupyter Notebook lancé sur GCP.

Sources

  1. Running Jupyter Notebook on Google Cloud Platform in 15 min
  2. Google Cloud Quickstarts

 

 


Par Hao Chen Data Scientist
Cloud
Google
Kaggle
Actualité

Introduction aux systèmes réactifs

Les systèmes réactifs sont un style d’architecture permettant à de multiples applications individuelles de se fondre en une seule unité, en réagissant à leur environnement, tout en restant conscientes les unes des autres. La première formalisation de ce terme a vu le jour avec la création du « Reactive Manifesto » en 2013 par Jonas Boner qui, en rassemblant certains des esprits les plus brillants dans l’industrie des systèmes distribués, souhaitait clarifier la confusion autour de la réactivité (qui est devenu un « buzz-word ») et construire une base solide pour un style de développement viable.

04/05/2018 Découvrir 
Actualité

Introduction à TensorFlow sur le datalab de Google Cloud Platform

TensorFlow est une librairie logicielle, open source depuis 2015, de calcul numérique développée par Google. Dans ce mini-tutoriel, nous allons vous apprendre comment utiliser datalab sur GCP et écrire votre premier programme en TensorFlow.

04/05/2018 Découvrir 
Actualité

Exploration de Google Cloud Platform

Google propose une cinquantaine de produits sur son Cloud, de l’infrastructure (stockage et puissance de calcul) au Machine Learning, en passant par la transformation et l’analyse de données massives. Ce sont des outils qui sont, pour la plupart, rapides à mettre en place (set-up en 10 min voire moins) et peu coûteux par rapport à une infrastructure standard on-premise.

06/03/2018 Découvrir 
Actualité

AWS Transformation Day : le pouvoir du cloud décrypté

Arnaud, consultant Margo, était présent à l’AWS Transformation Day et nous livre son retour d’expérience sur l’événement et sur les points clés à retenir

10/11/2017 Découvrir 
Actualité

Retour sur le Google Cloud Summit 2017

Suite à la conférence Google Cloud Summit 2017 qui a eu lieu la semaine dernière au Palais des Congrès de Paris, découvrez le retour de l’équipe Margo Conseil, sur ce qu’il faut en retenir.

Découvrir 
Actualité

Connaissez-vous les dernières évolutions d'AngularJS 2 ?

AngularJS est devenu le framework Javascript le plus populaire pour le développement d’applications web. Sorti en 2012, le framework a connu jusqu’à aujourd’hui plusieurs évolutions lui permettant de gagner en maturité et en performance. Aujourd’hui, AngularJS 2 n’a plus grand-chose à voir avec sa première version, et Google a décidé de faire des breaking-changes afin de remanier et repenser le framework.

31/03/2017 Découvrir