Colaboratory

Environnements d'exécution locaux

Colaboratory vous permet de vous connecter à un environnement d'exécution local utilisant Jupyter. Vous pouvez ainsi exécuter du code sur votre matériel local et accéder à votre système de fichiers local.

Points à noter concernant la sécurité

Avant d'exécuter un notebook, assurez-vous que son auteur est digne de confiance. Avec une connexion locale, le code que vous exécutez peut lire, écrire et supprimer des fichiers sur votre ordinateur.

La connexion à un serveur de notebooks Jupyter s'exécutant sur votre machine locale peut présenter de nombreux avantages, mais également de sérieux risques à ne pas négliger. En vous connectant à un environnement d'exécution local, vous autorisez l'interface Colaboratory à exécuter du code dans le notebook avec les ressources locales de votre machine. Autrement dit, le notebook peut effectuer les actions suivantes :

Avant de vous connecter à un environnement d'exécution local, assurez-vous que l'auteur du notebook est digne de confiance, tout en veillant à bien comprendre le code en cours d'exécution. Pour en savoir plus sur le modèle de sécurité du serveur de notebooks Jupyter, consultez la documentation relative à Jupyter.

Instructions de configuration

Pour autoriser Colaboratory à se connecter à votre serveur Jupyter exécuté localement, vous devez effectuer les étapes suivantes.

Étape 1 : Installez Jupyter

Installez Jupyter sur votre machine locale.

Étape 2 : Installez l'extension jupyter_http_over_ws et activez-la (une seule fois)

Créée par l'équipe Colaboratory, l'extension jupyter_http_over_ws est disponible sur GitHub.

pip install jupyter_http_over_ws
jupyter serverextension enable --py jupyter_http_over_ws

Étape 3 : Démarrez le serveur et procédez à l'authentification

Même si les nouveaux serveurs de notebooks sont démarrés normalement, vous devez définir un indicateur pour approuver clairement les connexions WebSocket depuis l'interface Colaboratory.

jupyter notebook \
  --NotebookApp.allow_origin='https://colab.research.google.com' \
  --port=8888 \
  --NotebookApp.port_retries=0
    

Après avoir démarré, le serveur affichera un message contenant l'URL de backend initiale utilisée pour l'authentification. Copiez cette URL, car vous en aurez besoin à l'étape suivante.

Étape 4 : Connectez-vous à l'environnement d'exécution local

Dans Colaboratory, cliquez sur le bouton "Connecter", puis sélectionnez "Se connecter à un environnement d'exécution local". Dans la boîte de dialogue qui s'affiche, indiquez l'URL copiée à l'étape précédente, puis cliquez sur le bouton "Connecter". À présent, vous devez être connecté à votre environnement d'exécution local.

Paramètres spécifiques au navigateur

Remarque : Si vous utilisez Mozilla Firefox, vous devez définir la préférence network.websocket.allowInsecureFromHTTPS dans l'éditeur de configuration pour Firefox. Colaboratory établit une connexion avec votre noyau local à l'aide d'un WebSocket. Par défaut, Firefox interdit les connexions à partir de domaines HTTPS à l'aide de WebSockets standards.

Partage

Sachez que si vous partagez votre notebook avec d'autres personnes, l'environnement d'exécution sur votre machine locale ne l'est pas. Par conséquent, lorsque ces personnes ouvrent le notebook partagé, elles sont connectées par défaut à un environnement d'exécution standard dans le cloud.

Par défaut, tous les éléments de sortie de cellules de code sont enregistrés dans Google Drive. Si votre connexion locale accède à des données sensibles et que vous souhaitez omettre ces éléments, sélectionnez Modifier > Paramètres du notebook > Omettre l'élément de sortie des cellules de code lors de l'enregistrement de ce notebook.

Désinstallation

Vous pouvez désactiver et supprimer l'extension Jupyter jupyter_http_over_ws en exécutant la commande suivante :

      jupyter serverextension disable --py jupyter_http_over_ws
      pip uninstall jupyter_http_over_ws
      

Se connecter à un environnement d'exécution sur une instance de Google Compute Engine

Si le serveur de notebooks Jupyter auquel vous souhaitez vous connecter est exécuté sur une autre machine (par exemple, une instance Google Compute Engine), vous pouvez configurer un transfert de port local SSH pour permettre à Colaboratory de s'y connecter.

Remarque : Google Cloud Platform fournit des images de VM de deep learning avec compatibilité locale Colaboratory préconfigurée. Suivez les guides pratiques pour configurer votre instance Google Compute Engine avec le transfert de port SSH en local. Si vous utilisez ces images, passez directement à l'étape 4, "Connectez-vous à l'environnement d'exécution local" (à l'aide du port 8888).

Commencez par configurer votre serveur de notebooks Jupyter en suivant les instructions ci-dessus.

Ensuite, établissez une connexion SSH entre votre machine locale et l'instance distante (par exemple, l'instance Google Compute Engine) et spécifiez l'indicateur "-L". Par exemple, pour transférer le port 8888 de votre machine locale vers le port 8888 de votre instance Google Compute Engine, exécutez la commande suivante :

gcloud compute ssh --zone YOUR_ZONE YOUR_INSTANCE_NAME -- -L 8888:localhost:8888
    

Enfin, établissez la connexion dans Colaboratory en vous connectant au port transféré. Pour cela, suivez les instructions de l'étape 4 : "Connectez-vous à l'environnement d'exécution local".