Cómo trabajar con Cloud Storage

AI Platform lee los datos de las ubicaciones de Cloud Storage en las que otorgaste acceso a tu proyecto de AI Platform. En esta página, se ofrece una guía rápida para el uso de Cloud Storage con AI Platform.

Descripción general

El uso de Cloud Storage es obligatorio o recomendable para los siguientes aspectos de los servicios de AI Platform:

Entrenamiento

  • Habilitar a etapa tu aplicación de entrenamiento y tus dependencias personalizadas.
  • Almacenar tus datos de entrada de entrenamiento.
  • Almacenar tus datos de salida de entrenamiento.

Predicción

  • Almacenar tu modelo guardado para convertirlo en una versión modelo.
  • Almacenar códigos personalizados para manejar solicitudes de predicción, si usas una rutina de predicción personalizada (versión Beta).
  • Almacenar datos adicionales para que tu código personalizado pueda acceder cuando maneje las predicciones.

Predicción por lotes

  • Almacenar tus archivos de entrada de predicción por lotes.
  • Almacenar tus resultados de predicción por lotes.

Consideraciones sobre la región

Cuando creas un depósito de Cloud Storage para usar con AI Platform, debes hacer lo siguiente:

  • Asignarlo a una región de procesamiento específico, no a un valor multirregión.
  • Usar la misma región en la que ejecutas tus trabajos de entrenamiento.

Obtén más información sobre las regiones disponibles de AI Platform.

Cómo configurar tus depósitos de Cloud Storage

En esta sección se muestra cómo crear un depósito nuevo. Puedes usar un depósito existente, pero si no es parte del proyecto que usas para ejecutar AI Platform, debes otorgar acceso a las cuentas de servicio de AI Platform de forma explícita.

  1. Especifica un nombre para tu depósito nuevo. El nombre debe ser único en todos los depósitos en Cloud Storage.

    BUCKET_NAME="your_bucket_name"

    Por ejemplo, usa el nombre de tu proyecto con -mlengine agregado:

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    BUCKET_NAME=${PROJECT_ID}-mlengine
  2. Comprueba el nombre del depósito que creaste.

    echo $BUCKET_NAME
  3. Selecciona una región para tu depósito y establece una variable de entorno REGION.

    Por ejemplo, con el siguiente código, se crea una REGION y se establece en us-central1:

    REGION=us-central1
  4. Crea el depósito nuevo:

    gsutil mb -l $REGION gs://$BUCKET_NAME

    Nota: Usa la misma región donde planeas ejecutar trabajos de AI Platform. En el ejemplo, se usa us-central1 porque es la región que figura en las instrucciones de introducción.

Organización de modelos en depósitos

Organiza la estructura de carpetas en tu depósito para alojar muchas iteraciones de tu modelo.

  • Coloca cada modelo guardado en su propio directorio separado dentro de tu depósito.
  • Considera usar marcas de tiempo para nombrar los directorios en tu depósito.

Por ejemplo, puedes colocar tu primer modelo en una estructura similar a gs://your-bucket/your-model-DATE1/your-saved-model-file. Para nombrar los directorios para cada iteración subsecuente de tu modelo, usa una marca de tiempo actualizada (gs://your-bucket/your-model-DATE2/your-saved-model-file y así sucesivamente).

Cómo acceder a Cloud Storage durante la predicción

Si implementas una rutina de predicción personalizada (versión Beta), la versión de tu modelo puede leer desde cualquier depósito de Cloud Storage en el mismo proyecto durante el manejo de las predicciones.

Usa un módulo de Python que pueda leer desde Cloud Storage en tu código de predicción predeterminado, como el Cliente de Python para Google Cloud Storage, el módulo tf.gfile de Tensorflow, o Pandas 0.24.0 o posterior. AI Platform se encarga de la autenticación.

También puedes especificar una cuenta de servicio cuando implementas tu rutina de predicción personalizada para personalizar a qué recursos de Cloud Storage tiene acceso tu implementación.

Cómo usar un depósito de Cloud Storage de un proyecto diferente

Esta sección describe cómo configurar depósitos de Cloud Storage desde fuera de tu proyecto para que AI Platform pueda acceder a ellos.

Si configuras tu depósito de Cloud Storage en el mismo proyecto en el que estás usando AI Platform, tus cuentas de servicio de AI Platform ya tienen los permisos necesarios para acceder a tu depósito de Cloud Storage.

Estas instrucciones se proporcionan para los siguientes casos:

  • No puedes usar un depósito de tu proyecto, como cuando se comparte un gran conjunto de datos en varios proyectos.
  • Si usas varios depósitos con AI Platform, debes otorgar acceso a las cuentas de servicio de AI Platform por separado a cada una.

Paso 1: Obtén la información necesaria de tu proyecto de Cloud

Console

  1. Abre la página IAM en Google Cloud Platform Console.

    Abrir la página IAM

  2. La página IAM muestra una lista de todos los miembros de tu proyecto con sus funciones asociadas. Tu proyecto de AI Platform tiene varias cuentas de servicio. Localiza la cuenta de servicio en la lista que tiene la función Agente de servicios de Cloud ML y copia el ID de la cuenta de servicio, que es similar a lo siguiente:

    "service-111111111111@cloud-ml.google.com.iam.gserviceaccount.com".

    Debes pegar este ID de cuenta de servicio en una página diferente en GCP Console durante los próximos pasos.

Línea de comandos

Los pasos en esta sección obtienen información sobre tu proyecto de Google Cloud Platform con el fin de usarla para cambiar el control de acceso a tu cuenta de servicio del proyecto de AI Platform. Es necesario que almacenes los valores para su uso posterior en las variables de entorno.

  1. Obtén tu identificador de proyecto con la herramienta de línea de comandos de gcloud con tu proyecto seleccionado:

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    
  2. Obtén el token de acceso para tu proyecto con gcloud:

    AUTH_TOKEN=$(gcloud auth print-access-token)
    
  3. Obtén la información de la cuenta de servicio mediante la solicitud de la configuración del proyecto del servicio de REST:

    SVC_ACCOUNT=$(curl -X GET -H "Content-Type: application/json" \
        -H "Authorization: Bearer $AUTH_TOKEN" \
        https://ml.googleapis.com/v1/projects/${PROJECT_ID}:getConfig \
        | python -c "import json; import sys; response = json.load(sys.stdin); \
        print response['serviceAccount']")
    

Paso 2: Configura el acceso a tu depósito de Cloud Storage

Console

  1. Abre la página de Storage en GCP Console.

    Abrir la página de Storage

  2. Selecciona el depósito de Cloud Storage que usas a fin de implementar los modelos. Para ello, marca la casilla a la izquierda del nombre del depósito.

  3. Haz clic en el botón Mostrar el panel de información en la esquina superior derecha para mostrar la pestaña Permisos.

  4. Pega el ID de la cuenta de servicio en el campo Agregar miembros. A la derecha de ese campo, selecciona tus funciones deseadas, como Lector de depósitos heredados de Storage.

    Si no estás seguro de qué función seleccionar, puedes elegir varias para mostrarlas debajo del campo Agregar miembros, cada una con una breve descripción de sus permisos.

  5. Para asignar tus funciones a la cuenta de servicio, haz clic en el botón Agregar a la derecha del campo Agregar miembros.

Línea de comandos

Ahora que tienes la información de tu cuenta de servicio y proyecto, debes actualizar los permisos de acceso para tu depósito de Cloud Storage. Estos pasos usan los mismos nombres de variables usados en la sección anterior.

  1. Establece el nombre de tu depósito en una variable de entorno llamada BUCKET_NAME:

    BUCKET_NAME="your_bucket_name"
    
  2. Otorga acceso de lectura a la cuenta de servicio de tu depósito de Cloud Storage:

    gsutil -m defacl ch -u $SVC_ACCOUNT:R gs://$BUCKET_NAME
    
  3. Si tu depósito contiene objetos a los que necesitas acceder, debes otorgarles acceso de lectura de manera explícita:

    gsutil -m acl ch -u $SVC_ACCOUNT:R -r gs://$BUCKET_NAME
    
  4. Otorga acceso de escritura:

    gsutil -m acl ch -u $SVC_ACCOUNT:W gs://$BUCKET_NAME
    

Para elegir una función que desees otorgar a tu cuenta de servicio de AI Platform, consulta las funciones IAM de Cloud Storage. Para obtener información general acerca de la actualización de las funciones de IAM en Cloud Storage, consulta cómo otorgar acceso a una cuenta de servicio para un recurso.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Cloud ML Engine para TensorFlow