Utiliser Cloud Storage

AI Platform Training lit les données des emplacements Cloud Storage que vous avez rendus accessibles à votre projet AI Platform Training. Cette page propose un guide rapide sur l'utilisation de Cloud Storage avec AI Platform Training.

Présentation

L'utilisation de Cloud Storage est requise ou recommandée pour les aspects suivants des services AI Platform Training :

  • Préproduction de l'application d'entraînement et des dépendances personnalisées
  • Stockage des données d'entrée d'entraînement, telles que les données tabulaires ou les données d'image
  • Stockage des données de sortie d'entraînement

Considérations relatives à la région

Lorsque vous créez un bucket Cloud Storage que vous souhaitez utiliser avec AI Platform Training, vous devez :

  • attribuer le bucket à une région de calcul spécifique et non à une valeur multirégionale ;
  • utiliser la même région que celle où vous exécutez vos tâches d'entraînement.

En savoir plus sur les régions disponibles pour AI Platform Training

Configurer vos buckets Cloud Storage

Vous trouverez dans cette section la procédure à suivre pour créer un bucket. Vous pouvez utiliser un bucket existant, mais il doit se trouver dans la même région que celle où vous prévoyez d'exécuter des tâches AI Platform. En outre, s'il ne fait pas partie du projet que vous utilisez pour exécuter AI Platform Training, vous devez explicitement accorder l'accès aux comptes de service AI Platform Training.

  1. Indiquez un nom pour votre nouveau bucket. Ce nom doit être unique par rapport à tous les buckets dans Cloud Storage.

    BUCKET_NAME="YOUR_BUCKET_NAME"

    Par exemple, utilisez le nom de votre projet en ajoutant -aiplatform:

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    BUCKET_NAME=${PROJECT_ID}-aiplatform
  2. Vérifiez le nom du bucket que vous avez créé.

    echo $BUCKET_NAME
  3. Sélectionnez une région pour votre bucket, puis définissez une variable d'environnement REGION.

    Utilisez la même région que celle où vous prévoyez d'exécuter des tâches AI Platform Training. Consultez les régions disponibles pour les services AI Platform Training.

    Par exemple, le code suivant crée la variable REGION et la définit sur us-central1:

    REGION=us-central1
  4. Créez le bucket :

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

Organiser le modèle en buckets

Organisez la structure des dossiers de votre bucket pour y prendre en charge de nombreuses itérations de votre modèle.

  • Placez chaque modèle enregistré dans un répertoire distinct de votre bucket.
  • Pensez à utiliser des horodatages pour nommer les répertoires de votre bucket.

Par exemple, vous pouvez placer votre premier modèle dans une structure analogue à gs://your-bucket/your-model-DATE1/your-saved-model-file. Pour nommer les répertoires lors de chaque itération ultérieure de votre modèle, utilisez un horodatage mis à jour (gs://your-bucket/your-model-DATE2/your-saved-model-file, etc.).

Accéder à Cloud Storage pendant l'entraînement

Utilisez un module Python capable de lire des données depuis Cloud Storage dans votre code d'entraînement, tel que le client Python pour Google Cloud Storage, le module tf.io.gfile.GFile de TensorFlow ou les versions de pandas 0.24.0 ou ultérieures. AI Platform Training s'occupe de l'authentification.

Utiliser un bucket Cloud Storage à partir d'un projet différent

Cette section explique comment configurer les buckets Cloud Storage depuis l'extérieur de votre projet pour permettre à AI Platform Training d'y accéder.

Si vous configurez votre bucket Cloud Storage dans le même projet que celui utilisé pour exécuter AI Platform Training, vos comptes de service AI Platform Training disposent déjà des autorisations nécessaires pour accéder à votre bucket Cloud Storage.

Ces instructions sont fournies pour les cas de figure suivants :

  • Vous ne pouvez pas utiliser un bucket de votre projet, par exemple lorsqu'un ensemble de données volumineux est partagé entre plusieurs projets.
  • Si vous utilisez plusieurs buckets avec AI Platform Training, vous devez accorder l'accès aux comptes de service AI Platform Training individuellement pour chaque bucket.

Étape 1 : Obtenir les informations requises dans le projet cloud

Console

  1. Ouvrez la page "IAM" dans Google Cloud Console.

    Ouvrir la page IAM

  2. La page IAM affiche une liste de tous les comptes principaux qui ont accès à votre projet, ainsi que leurs rôles associés. Votre projet AI Platform Training possède plusieurs comptes de service. Dans la liste, recherchez le compte ayant pour rôle Agent de service Cloud ML, puis copiez l'ID du compte de service. Ce dernier devrait ressembler à ceci :

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

    Vous devrez coller cet ID de compte de service dans une autre page de la console Google Cloud lors d'une prochaine étape.

Ligne de commande

Les étapes décrites dans cette section permettent d'obtenir des informations sur votre projet Google Cloud, puis de les utiliser afin de modifier le contrôle d'accès pour le compte de service AI Platform Training de votre projet. Vous devez conserver les valeurs en vue de les utiliser ultérieurement dans des variables d'environnement.

  1. Obtenez votre identifiant de projet à l'aide de Google Cloud CLI avec votre projet sélectionné :

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    
  2. Obtenez le jeton d'accès de votre projet à l'aide de gcloud :

    AUTH_TOKEN=$(gcloud auth print-access-token)
    
  3. Obtenez les informations du compte de service en demandant la configuration du projet au service 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 \
        | python3 -c "import json; import sys; response = json.load(sys.stdin); \
        print(response['serviceAccount'])")
    

Étape 2 : Configurer l'accès au bucket Cloud Storage

Console

  1. Ouvrez la page "Stockage" dans la console Google Cloud.

    Ouvrir la page Stockage

  2. Sélectionnez le bucket Cloud Storage que vous utilisez pour déployer des modèles en cochant la case située à gauche du nom du bucket.

  3. Cliquez sur le bouton Afficher le panneau d'informations dans l'angle supérieur droit pour afficher l'onglet "Autorisations".

  4. Collez l'ID du compte de service dans le champ Ajouter des comptes principaux. À droite de ce champ, sélectionnez le ou les rôles souhaités, par exemple "Lecteur des anciens buckets de l'espace de stockage".

    Si vous n'êtes pas sûr du rôle à sélectionner, vous pouvez en sélectionner plusieurs pour les afficher sous le champ Ajouter des comptes principaux avec une brève description des autorisations attribuées à chacun.

  5. Pour attribuer le ou les rôles souhaités au compte de service, cliquez sur le bouton Ajouter à droite du champ Ajouter des comptes principaux.

Ligne de commande

Après avoir consulté les informations relatives à votre compte de service et à votre projet, vous devez mettre à jour les autorisations d'accès de votre bucket Cloud Storage. Ces étapes reprennent les mêmes noms de variables que ceux de la section précédente.

  1. Définissez le nom de votre bucket dans une variable d'environnement nommée BUCKET_NAME :

    BUCKET_NAME="your_bucket_name"
    
  2. Accordez à votre bucket Cloud Storage l'accès en lecture au compte de service :

    gsutil -m defacl ch -u $SVC_ACCOUNT:R gs://$BUCKET_NAME
    
  3. Si votre bucket contient déjà des objets auxquels vous avez besoin d'accéder, vous devez leur accorder explicitement l'accès en lecture :

    gsutil -m acl ch -u $SVC_ACCOUNT:R -r gs://$BUCKET_NAME
    
  4. Accordez l'accès en écriture :

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

Pour choisir un rôle à attribuer à votre compte de service AI Platform Training, consultez la documentation sur les rôles IAM Cloud Storage. Pour en savoir plus sur la mise à jour des rôles IAM dans Cloud Storage, consultez la section portant sur l'attribution d'un accès au compte de service d'une ressource.

Étapes suivantes