Utilisation Efficace du GPU Gratuit avec Google Colab

Lorsque le temps de calcul local devient un obstacle ou que les ressources d'une machine personnelle sont insuffisantes pour des tâches intensives, l'utilisation de serveurs cloud représente une solution attrayante. Cependant, l'acquisition de ces services peut s'avérer coûteuse. Google Colaboratory (Colab) offre une alternative puissante et gratuite : un environnement Jupyter hébergé dans le cloud, intégrant un accès GPU pour accélérer significativement les tâches de calcul, notamment en apprentissage automatique.

Qu'est-ce que Google Colab ?

Google Colab est une plateforme basée sur le cloud qui propose un environnement de notebook Jupyter entièrement gratuit. Fournie par Google, elle est conçue pour simplifier le développement et l'exécution de code Python, en particulier pour l'apprentissage automatique et l'intelligence artificielle. Ses atouts majeurs incluent :

  • Gratuité : Aucune acquisition de matériel ou de logiciel n'est requise, rendant l'accès au calcul haute performance démocratique.
  • Calcul Cloud : Le code s'exécute sur l'infrastructure cloud de Google, éliminant les contraintes de performance ou de stockage de votre machine locale.
  • Environnement Jupyter : Permet de créer, d'exécuter et de documenter du code Python de manière interactive, avec support pour les visualisations et les explications.
  • Accélération GPU/TPU : Bénéficiez d'un accès à des GPU (Graphics Processing Units) et parfois des TPU (Tensor Processing Units) pour des performances accrues dans les charges de travail de deep learning et de calcul scientifique.
  • Intégration Google Drive : Connexion transparente avec Google Drive pour une gestion facile des fichiers et une persistance des données entre les sessions.
  • Collaboration en Temps Réel : Plusieurs utilisateurs peuvent travailler simultanément sur le même notebook, facilitant le travail d'équipe.
  • Partage Aisé : Les notebooks peuvent être exportés et partagés sous différents formats (HTML, PDF, etc.), simplifiant la diffusion des résultats et du code.

Étapes pour Démarrer avec Google Colab

1. Préparation de Google Drive pour le Stockage Persistant

Google Colab peut être synchronisé avec votre Google Drive. Cette intégration est cruciale car les fichiers stockés directement dans l'environnement Colab sans montage de Drive sont volatils et risquent d'être perdus après la déconnexion de la session. Pour commencer, connectez-vous à votre Google Drive et créez un dossier dédié pour vos projets Colab. C'est dans ce dossier que vous téléverserez vos scripts, jeux de données et autres ressources nécessaires à vos travaux.

2. Création d'un Nouveau Notebook Colab

Il existe plusieurs méthodes pour initier un nouveau notebook Colab :

  • Depuis Google Drive : Dans le dossier de votre choix, faites un clic droit sur un espace vide, puis sélectionnez Plus > Google Colaboratory.
  • Depuis l'interface Drive principale : Cliquez sur Nouveau > Plus > Google Colaboratory.

Une fois créé, vous pouvez renommer le fichier en cliquant sur son nom en haut de la page.

3. Vérification et Configuration de l'Accès GPU

Pour bénéficier de l'accélération GPU, assurez-vous que votre environnement d'exécution est configuré en conséquence. Accédez à Environnement d'exécution (Runtime) > Modifier le type d'environnement d'exécution (Change runtime type) et choisissez GPU dans le menu déroulant "Accélérateur matériel" (Hardware accelerator). Après cette configuration, vous pouvez vérifier la disponibilité du GPU en exécutant le code Python suivant dans une cellule de votre notebook :

import tensorflow as tf

# Tente de récupérer le nom du périphérique GPU disponible
nom_dispositif_gpu = tf.test.gpu_device_name()

if nom_dispositif_gpu:
   print(f"GPU détecté et disponible : {nom_dispositif_gpu}")
else:
   print("Aucun GPU n'a été trouvé. Veuillez vérifier la configuration de l'environnement d'exécution.")

Si un GPU est attribué à votre session, son nom (par exemple, "/device:GPU:0") sera affiché. Sinon, un message d'absence de GPU apparaîtra.

4. Montage de Google Drive dans le Notebook

Pour accéder aux fichiers et dossiers de votre Google Drive directement depuis votre notebook Colab, vous devez "monter" votre Drive. Exécutez le bloc de code Python ci-dessous. Une URL d'autorisation vous sera présentée ; suivez le lien, connectez-vous à votre compte Google et copiez le code d'autorisation qui vous est fourni dans la zone de texte du notebook. Une fois autorisé, un dossier nommé drive apparaîtra dans l'arborescence des fichiers de votre environnement Colab, contenant l'intégralité de votre Google Drive sous /content/drive/MyDrive/.

from google.colab import drive
import os

# Monte Google Drive dans le répertoire /content/drive
drive.mount("/content/drive", force_remount=True)

# Exemple : Lister le contenu du dossier racine de votre Google Drive
print("Contenu de Google Drive monté :")
print(os.listdir("/content/drive/MyDrive/"))

Il est souvent judicieux de copier les fichiers ou dossiers volumineux de votre Drive vers l'environnement local de Colab (qui est plus rapide) pour les opérations intensives. Voici un exemple de copie d'un dossier de Drive vers Colab :

import shutil

# Chemin du dossier source sur Google Drive (adaptez-le à votre structure)
chemin_source_drive = '/content/drive/MyDrive/mon_projet_data_ml'
# Chemin de destination dans l'environnement local de Colab
chemin_destination_colab = '/content/donnees_locales'

# Copie l'intégralité du dossier si la source existe
if os.path.exists(chemin_source_drive):
   print(f"Copie du dossier '{chemin_source_drive}' vers '{chemin_destination_colab}'...")
   shutil.copytree(chemin_source_drive, chemin_destination_colab)
   print("Copie terminée.")
else:
   print(f"Le dossier source '{chemin_source_drive}' n'existe pas sur Google Drive. Vérifiez le chemin.")

5. Exécution de Code et Gestion des Dépendances

Pour exécuter un script Python principal (par exemple, un script d'entraînement de modèle), vous devrez peut-être d'abord naviguer vers le répertoire contenant votre fichier. Utilisez la commande os.chdir() pour changer le répertoire de travail, puis exécutez votre script en utilisant le préfixe ! pour indiquer une commande shell :

import os

# Définissez le chemin vers le répertoire de votre script Python sur Drive
repertoire_script_projet = '/content/drive/MyDrive/mon_projet_data_ml/scripts_entrainement'
os.chdir(repertoire_script_projet)

# Exécutez votre script principal d'entraînement
print(f"Exécution du script train_modele.py depuis {os.getcwd()}")
!python train_modele.py

Si votre projet nécessite des bibliothèques Python spécifiques ou des paquets système non préinstallés, vous pouvez les installer directement dans votre noteboko. Le préfixe ! est utilisé pour exécuter des commandes du système d'exploitation, comme pip pour les paquets Python ou apt-get pour les paquets système (sur les distributions basées sur Debian/Ubuntu utilisées par Colab) :

# Installation de bibliothèques Python via pip
!pip install scikit-learn pandas matplotlib

# Installation d'un paquet système via apt-get (exemple pour un codec vidéo)
!apt-get update
!apt-get install -y ffmpeg

Stratégies Anti-Déconnexion pour les Sessions Colab

Les sessions Google Colab, bien que gratuites, sont sujettes à des déconnexions automatiques après une période d'inactivité (généralement 90 minutes) ou après un temps de sesion maximale (environ 12 heures). Cela peut entraîner la perte de l'état de l'environnement et des données non sauvegardées. Voici quelques méthodes pour prolonger la durée de vos sessions :

Méthode 1 : Script JavaScript dans la Console du Navigateur

Cette approche consiste à exécuter un script JavaScript dans la console de développement de votre navigateur (généralement accessible via la touche F12 ou "Inspecter l'élément" > "Console"). Ce script simule une interaction utilisateur régulière, empêchant Colab de détecter une inactivité prolongée. Copiez et collez le code suivant dans l'onglet "Console" de votre navigateur pendant que votre notebook Colab est ouvert, puis appuyez sur Entrée :

function maintenirConnexionColab() {
   console.log("Tentative de maintenir la connexion Colab active...");
   // Localise et clique sur le bouton de connexion si visible et actif
   const elementBoutonConnexion = document.querySelector("colab-connect-button")?.shadowRoot.querySelector("#connect");
   if (elementBoutonConnexion && elementBoutonConnexion.getAttribute("track-name") === "Connect") {
       elementBoutonConnexion.click();
       console.log("Bouton de connexion cliqué pour éviter la déconnexion.");
   }
}

// Exécute la fonction toutes les 60 secondes (60000 millisecondes)
setInterval(maintenirConnexionColab, 60000);

Méthode 2 : Extensions de Navigateur

Il existe également des extensions de navigateur teirces, conçues spécifiquement pour gérer les reconnexions de Colab de manière automatisée. Des extensions comme "Colab Auto Reconnect" peuvent maintenir la session active tant que l'onglet du navigateur est ouvert et que vous disposez d'une connexion internet stable. Si vous optez pour cette solution, assurez-vous de toujours vérifier la fiabilité et la sécurité de toute extension avant de l'installer dans votre navigateur.

Étiquettes: Google Colab GPU TensorFlow Jupyter Python

Publié le 11 juillet à 16h50