Solución de problemas de notebooks

No sucede nada cuando hago clic en “Abrir JupyterLab”

Verifica que tu navegador no bloquee las pestañas emergentes. JupyterLab se abre en una pestaña del navegador nueva.

No puedo acceder a JupyterLab mediante un proxy

La configuración de la instancia de AI Platform Notebooks, la configuración de la red y otros factores pueden impedir el acceso a JupyterLab mediante un proxy. Usa SSH para conectarte a JupyterLab y obtener más información sobre los posibles motivos que podrían impedirte acceder mediante un proxy.

Cuando abro un notebook, se produce un error 403 (Prohibido)

Si no puedes acceder a un notebook, intenta lo siguiente:

  • Asegúrate de que la Cuenta de Google que intente acceder a la instancia de notebook tenga al menos las funciones de IAM de AI Platform Notebooks, como Notebooks Runner o Notebooks Admin.

  • Cuando haces clic en Abrir JupyterLab para abrir un notebook, el notebook se abre en una pestaña nueva del navegador. Si accediste a más de una Cuenta de Google, la pestaña nueva se abre con tu Cuenta de Google predeterminada. Si no creaste tu instancia de notebook con tu Cuenta de Google predeterminada, la pestaña del navegador nueva mostrará un error 403 (Forbidden).

Abrir un notebook genera un error 504 (Gateway Timeout)

Esto es un indicador de tiempo de espera de proxy interno o un tiempo de espera de servidor de backend (Jupyter).

Si no puedes acceder a un notebook:

  • Abre un caso de ayuda de Google.

Abrir un notebook genera un error 524 (se produjo un tiempo de espera)

El proxy no recibió una respuesta del agente para la solicitud dentro del tiempo de espera. Esto suele ser un indicador de que el agente no se conecta al servidor proxy o que las solicitudes tardan demasiado en el servidor de backend (Jupyter). Un caso típico de este error es del lado del usuario (p.ej., un problema de red). o el servidor de Jupyter o agente no está en ejecución).

Si no puedes acceder a un notebook, intenta lo siguiente:

  • Verifica que se haya iniciado tu notebook.

  • Verifica que se haya iniciado el servicio de Docker y que el agente se esté ejecutando. Si se inició el agente, intenta reiniciarlo.

  • Asegúrate de que el servicio de Jupyter esté en ejecución. Si es así, intenta reiniciarlo.

  • Verifique que esté usando la versión M55 de la imagen de VM de aprendizaje profundo de AI Platform o posterior.

Abrir una notebook genera un error 598 (tiempo de espera de lectura de red)

El proxy aún no ha recibido el agente en más de 10 minutos. Esto es un buen indicador de un problema de un agente o Jupyter.

Si no puedes acceder a un notebook, intenta lo siguiente:

  • Verifica que se haya iniciado tu notebook.

  • Verifica que se haya iniciado el servicio de Docker y que el agente se esté ejecutando. Si es así, intenta reiniciarlo.

  • Asegúrate de que el servicio de Jupyter esté en ejecución. Si es así, intenta reiniciarlo.

  • Verifique que esté usando [Deep Learning VM Image de AI Platform versión M55 o una versión posterior.

La descarga de archivos de JupyterLab produce un error 403 (Prohibido)

El paquete “notebook” de la versión M23 de VM de aprendizaje profundo incluye un error que impide descargar un archivo mediante la IU de JupyterLab. Puedes leer más sobre el error en las siguientes conversaciones de GitHub: Cannot download files after JL update (No se puede descargar archivos después de la actualización de JL) y Download file functionality is broken in notebook packages version 5.7.6+ (5.7.7, 5.7.8) (La función de descarga de archivos no funciona en paquetes de notebook versión 5.7.6+ (5.7.7, 5.7.8).

Si usas la versión M23 de la VM de aprendizaje profundo, puedes resolver el problema de dos maneras:

  • Utiliza un navegador Safari. La funcionalidad de descarga funciona para Safari.

  • Regresa a la versión 5.7.5 del paquete de notebook.

    Para regresar a una versión anterior de tu paquete de notebook, haz lo siguiente:

    1. Conéctate a la VM de aprendizaje profundo mediante SSH. Para obtener información sobre cómo conectarte a una VM mediante SSH, consulta Conéctate a instancias.

    2. Ejecute los siguientes comandos:

      sudo pip3 install notebook==5.7.5
      sudo service jupyter restart
      

Se superó la cuota de GPU

Determina la cantidad de GPU disponibles en el proyecto. Para hacerlo, verifica la página de cuotas. Si las GPU no están enumeradas en la página de cuotas o si necesitas obtener más cuota de GPU, puedes solicitar un aumento de cuota. Consulta Solicita un aumento de la cuota en la página Cuotas de recursos de Compute Engine.

No se crea un notebook nuevo (permisos insuficientes)

Por lo general, se tarda aproximadamente un minuto crear una instancia de notebook. Si tu nueva instancia de notebook permanece en estado "pendiente" indefinidamente, podría deberse a que la cuenta de servicio utilizada para iniciar la instancia de notebook no tiene el permiso de Editor requerido en tu proyecto de Google Cloud Platform (GCP).

Puedes iniciar una instancia de notebook con una cuenta de servicio personalizada que crees o en modo de usuario único con un ID de usuario. Si inicias una instancia de notebook en modo de usuario único, tu instancia de notebook comienza el proceso de inicio con la cuenta de servicio predeterminada de Compute Engine antes de pasar el control a tu ID de usuario.

Para verificar que una cuenta de servicio tenga los permisos apropiados, sigue estos pasos:

Console

  1. Abre la página de IAM en Cloud Console.

    Abrir la página de IAM

  2. Determina la cuenta de servicio que se usó con la instancia de notebook, que es una de las siguientes opciones:

    • Una cuenta de servicio personalizada que especificaste cuando creaste tu instancia de notebook.

    • La cuenta de servicio predeterminada de Compute Engine para el proyecto de GCP, que se usa cuando inicias la instancia de notebook en modo de usuario único. La cuenta de servicio predeterminada de Compute Engine del proyecto de GCP se llama project-number-compute@developer.gserviceaccount.com. Por ejemplo: 113377992299-compute@developer.gserviceaccount.com.

  3. Verifica que tu cuenta de servicio esté en la función de editor.

  4. Si no lo está, edita la cuenta de servicio y agrégala a la función de editor.

Para obtener más información, consulta Otorga, cambia y revoca el acceso a los recursos en la documentación de IAM.

gcloud

  1. Si aún no lo hiciste, instala la herramienta de línea de comandos de gcloud.

  2. Obtén el nombre y el número de proyecto de tu proyecto de GCP mediante el siguiente comando. Reemplaza project-id por el ID del proyecto de tu proyecto de GCP.

    gcloud projects describe project-id
    

    Deberías ver un resultado similar al siguiente, que muestra el nombre (name:) y el número (projectNumber:) del proyecto.

    createTime: '2018-10-18T21:03:31.408Z'
    lifecycleState: ACTIVE
    name: my-project-name
    parent:
     id: '396521612403'
     type: folder
    projectId: my-project-id-1234
    projectNumber: '113377992299'
    
  3. Determina la cuenta de servicio que se usó con la instancia de notebook, que es una de las siguientes opciones:

    • Una cuenta de servicio personalizada que especificaste cuando creaste tu instancia de notebook.

    • La cuenta de servicio predeterminada de Compute Engine para el proyecto de GCP, que se usa cuando inicias la instancia de notebook en modo de usuario único. La cuenta de servicio predeterminada de Compute Engine del proyecto de GCP se llama project-number-compute@developer.gserviceaccount.com. Por ejemplo: 113377992299-compute@developer.gserviceaccount.com.

  4. Agrega la función de roles/editor a la cuenta de servicio con el siguiente comando. Reemplaza project-name por el nombre de tu proyecto y service-account-id por el ID de la cuenta de servicio de tu instancia de notebook.

    gcloud projects add-iam-policy-binding project-name \
     --member serviceAccount:service-account-id \
     --role roles/editor
    

Si se crea una instancia, se produce un error de “Permiso denegado”.

Cuando crees una instancia nueva, verifica que el usuario que la crea tenga el permiso iam.serviceAccounts.ActAs en la cuenta de servicio definida.

La cuenta de servicio en la instancia proporciona acceso a otros servicios de Google Cloud. Puedes usar cualquier cuenta de servicio dentro del mismo proyecto, pero debes tener el permiso de usuario de la cuenta de servicio (iam.serviceAccounts.actAs) a fin de crear la instancia. Si no se especifica, se usa la cuenta de servicio predeterminada de Compute Engine.

En el siguiente ejemplo, se muestra cómo especificar una cuenta de servicio cuando creas una instancia:

gcloud beta notebooks instances create nb-1 \
  --vm-image-project=deeplearning-platform-release \
  --vm-image-family=tf2-latest-cpu \
  --machine-type=n1-standard-1 \
  --service-account=your_service_account@project_id.iam.gserviceaccount.com \
  --location=us-west1-a

El notebook no responde

Si tu instancia de notebook no ejecuta celdas o parece estar inmovilizada, primero intenta reiniciar el kernel. Para ello, haz clic en Kernel en el menú superior y, luego, en Reiniciar kernel. Si eso no funciona, puedes intentar lo siguiente:

  • Desde una sesión de terminal en el notebook, ejecuta top para ver si hay procesos que consumen la CPU.
  • En la terminal, verifica la cantidad de espacio libre en el disco con df o la memoria RAM disponible con free.
  • Para cerrar tu instancia, selecciónala en la página de instancias de notebook y haz clic en Detener. Una vez que se haya detenido por completo, selecciónala y haz clic en Iniciar.

Verifica que el agente de Docker esté en ejecución

Para verificar si los notebooks de Docker que se ejecutan están en ejecución, accede a la instancia de notebook a través de SSH y, luego, ingresa lo siguiente:

# Confirm docker service is running
sudo ps -aux | grep docker
# Confirm agent container is running
sudo docker ps
# grab logs
sudo docker logs proxy-agent

Verifica el estado del servicio de Jupyter y recopila registros

Para verificar el estado del servicio de Jupyter, puedes acceder a la instancia de notebook a través de SSH y, luego, ingresar la información siguiente:

sudo service jupyter status

Para recopilar registros del servicio de Jupyter, sigue estos pasos:

sudo journalctl -u jupyter.service --no-pager

Reinicia el servicio de Jupyter

Para reiniciar el servicio de Jupyter, puedes detener y volver a iniciar la VM en la página Instancias de notebook o puedes acceder a la instancia de notebook a través de SSH y, luego, ingresar la siguiente información:

sudo service jupyter restart