Colaboratory

Entornos de ejecución locales

Colaboratory te permite conectarte a un entorno de ejecución local a través de Jupyter para que puedas ejecutar un código en tu hardware local y tener acceso a tu sistema de archivos local.

Consideraciones de seguridad

Antes de ejecutar un bloc de notas, asegúrate de que el autor sea de confianza. Con una conexión local, el código que ejecutes podrá leer, escribir y borrar archivos en tu computadora.

Si te conectas a un servidor de blocs de notas de Jupyter que se ejecute en tu máquina local, puedes obtener muchos beneficios, pero estos conllevan muchos riesgos potenciales graves. Cuando te conectas a un entorno de ejecución local, permites que el frontend de Colaboratory ejecute el código en el bloc de notas mediante los recursos locales de tu máquina. Esto significa que el bloc de notas podría realizar lo siguiente:

Antes de intentar conectarte a un entorno de ejecución local, asegúrate de comprender qué código se está ejecutando y que los autores del bloc de notas sean de confianza. Para obtener más información sobre el modelo de seguridad del servidor de blocs de notas de Jupyter, consulta la documentación de Jupyter.

Instrucciones de configuración

Para permitir que Colaboratory se conecte al servidor de Jupyter que se ejecuta de forma local, deberás realizar los siguientes pasos.

Paso 1: Instala Jupyter

Instala Jupyter en tu máquina local.

Paso 2: Instala y habilita la extensión jupyter_http_over_ws de Jupyter (una vez)

La extensión jupyter_http_over_ws cuenta con la autorización del equipo de Colaboratory y está disponible en GitHub.

pip install jupyter_http_over_ws
jupyter serverextension enable --py jupyter_http_over_ws

Paso 3: Inicia el servidor y autentícalo

Si bien los nuevos servidores de blocs de notas se inician normalmente, deberás establecer una marca para determinar de forma explícita que confías en las conexiones de WebSocket del frontend de Colaboratory.

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

Una vez que se inicie el servidor, mostrará un mensaje con la URL de backend inicial utilizada para la autenticación. Copia esa URL, ya que la necesitarás en el siguiente paso.

Paso 4: Conéctate al entorno de ejecución local

En Colaboratory, haz clic en el botón "Conectar" y selecciona "Conectar a un entorno de ejecución local…". Ingresa la URL del paso anterior en el cuadro de diálogo que aparece y haz clic en el botón "Conectar". Debería establecerse conexión con tu entorno de ejecución local.

Configuración específica del navegador

Nota: Si usas Mozilla Firefox, deberás establecer la preferencia network.websocket.allowInsecureFromHTTPS en el editor de configuración de Firefox. Colaboratory establece una conexión con tu kernel local mediante un WebSocket. De forma predeterminada, Firefox inhabilita las conexiones de los dominios HTTPS mediante WebSockets estándar.

Uso compartido

Si compartes tu bloc de notas con otras personas, no se compartirá el entorno de ejecución en tu máquina local. De forma predeterminada, cuando abran el bloc de notas compartido, esos usuarios se conectarán a un entorno de ejecución de nube estándar.

De forma predeterminada, se almacenan en Google Drive todos los resultados de las celdas de código. Si tu conexión local accede a datos sensibles y deseas omitir los resultados de celdas, selecciona la opción Editar > Configuración del notebook > Omitir el resultado de las celdas al guardar este notebook.

Desinstalación

Para inhabilitar y quitar la extensión jupyter_http_over_ws de Jupyter, puedes ejecutar lo siguiente:

      jupyter serverextension disable --py jupyter_http_over_ws
      pip uninstall jupyter_http_over_ws
      

Conexión a un entorno de ejecución en una instancia de Google Compute Engine

Si el servidor de bloc de notas de Jupyter al que deseas conectarte se ejecuta en otra máquina (p. ej., una instancia de Google Compute Engine), puedes establecer la redirección de puertos locales SSH para que Colaboratory se conecte a él.

Nota: Google Cloud Platform proporciona imágenes de VM de aprendizaje profundo con un soporte backend local de Colaboratory previamente configurado. Sigue las guías prácticas para configurar tu instancia de Google Compute Engine con redirección de puertos SSH locales. Si utilizas estas imágenes, continúa directamente con el Paso 4: Conéctate al entorno de ejecución local (mediante el puerto 8888).

Primero, configura el servidor de bloc de notas de Jupyter con las instrucciones que se indicaron anteriormente.

Segundo, establece una conexión SSH desde tu máquina local hasta la instancia remota (p. .ej. una instancia de Google Compute Engine) y especifica la marca "-L". Por ejemplo, para redireccionar el puerto 8888 en la máquina local al mismo puerto en la instancia de Google Compute Engine, ejecuta lo siguiente:

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

Por último, establece la conexión al puerto redirigido mediante Colaboratory (sigue las mismas instrucciones que se indican en el Paso 4: Conéctate al entorno de ejecución local).