
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.
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 ».
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
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