Como trabalhar com o Cloud Storage

O AI Platform Training lê dados de locais do Cloud Storage em que foi concedido acesso ao projeto do AI Platform Training. Veja nesta página um guia rápido sobre o uso do Cloud Storage com o AI Platform Training.

Visão geral

O uso do Cloud Storage é necessário ou recomendado nos processos a seguir dos serviços do AI Platform Training:

  • Organização do aplicativo de treinamento e das dependências personalizadas.
  • Armazenamento dos dados de entrada de treinamento, como dados tabulares ou de imagem.
  • Armazenamento dos dados de saída do treinamento

Considerações sobre regiões

Ao criar um bucket do Cloud Storage para usar com o AI Platform Training, você precisa fazer o seguinte:

  • Atribuí-lo a uma região de computação específica, não a um valor multirregional.
  • Usar a mesma região em que os jobs de treinamento são executados.

Veja mais sobre as regiões disponíveis do AI Platform Training.

Como configurar os buckets do Cloud Storage

Nesta seção, você aprende a criar um novo bucket. É possível usar um bucket atual, mas ele precisa estar na mesma região em que você planeja executar os jobs do AI Platform. Além disso, se ele não fizer parte do projeto que você está usando para executar o AI Platform Training, conceda acesso explícito às contas de serviço do AI Platform Training.

  1. Especifique um nome para o novo bucket. Ele precisa ser único em todos os buckets no Cloud Storage.

    BUCKET_NAME="YOUR_BUCKET_NAME"

    Por exemplo, use o nome do seu projeto com -aiplatform anexado:

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    BUCKET_NAME=${PROJECT_ID}-aiplatform
  2. Verifique o nome do bucket que você criou.

    echo $BUCKET_NAME
  3. Selecione a região do bucket e defina a variável de ambiente REGION.

    Use a mesma região em que você planeja executar jobs do AI Platform Training. Veja as regiões disponíveis para os serviços do AI Platform Training.

    Por exemplo, o código a seguir cria REGION e a define como us-central1:

    REGION=us-central1
  4. Crie o novo bucket:

    gcloud storage buckets create gs://$BUCKET_NAME --location=$REGION

Organização do modelo em buckets

Organize a estrutura de pastas no bucket de forma a acomodar as muitas iterações do seu modelo.

  • Coloque cada modelo salvo em um diretório próprio em separado dentro do bucket.
  • Use carimbos de data/hora para nomear os diretórios no bucket.

Por exemplo, coloque o primeiro modelo em uma estrutura semelhante a gs://your-bucket/your-model-DATE1/your-saved-model-file. Para nomear os diretórios de cada iteração posterior do modelo, use um carimbo de data/hora atualizado. Por exemplo, gs://your-bucket/your-model-DATE2/your-saved-model-file e assim por diante.

Como acessar o Cloud Storage durante o treinamento

Use um módulo do Python que possa ler o Cloud Storage no seu código de treinamento, como o cliente Python para o Google Cloud Storage, o módulo tf.io.gfile.GFile do TensorFlow ou o pandas 0.24.0 ou mais recente. O AI Platform Training cuida da autenticação.

Como usar um bucket do Cloud Storage de um projeto diferente

Veja nesta seção como configurar buckets do Cloud Storage de fora do projeto para que o AI Platform Training possa acessá-los.

Se você configurar o bucket do Cloud Storage no mesmo projeto em que o AI Platform Training é utilizado, suas contas de serviço do AI Platform Training já terão as permissões necessárias para acessar esse bucket.

As instruções abaixo se aplicam aos seguintes casos:

  • Se não for possível usar um bucket do projeto. Por exemplo, quando um grande conjunto de dados é compartilhado por vários projetos.
  • Se você usar vários buckets com o AI Platform Training, conceda acesso a cada conta de serviço da plataforma separadamente.

Etapa 1: receber informações necessárias do projeto na nuvem

Console

  1. Abra a página "IAM" no console do Google Cloud.

    Abrir a página "IAM"

  2. A página "IAM" exibe uma lista de todos os principais com acesso ao seu projeto, junto aos respectivos papéis. O projeto do AI Platform Training tem várias contas de serviço. Localize a conta de serviço na lista que tem o papel de Agente de serviço do Cloud ML e copie o ID da conta de serviço, que é assim:

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

    Você precisa colar esse ID em uma página diferente no console do Google Cloud nas próximas etapas.

Linha de comando

Ao seguir as etapas desta seção, você recebe as informações do seu projeto do Google Cloud para alterar o controle de acesso da conta de serviço do AI Platform Training do projeto. É preciso armazenar os valores para uso posterior em variáveis de ambiente.

  1. Use a Google Cloud CLI com seu projeto selecionado para receber o identificador do projeto:

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    
  2. Use a gcloud para receber o token de acesso do projeto:

    AUTH_TOKEN=$(gcloud auth print-access-token)
    
  3. Consiga as informações da conta de serviço solicitando a configuração do projeto no serviço 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'])")
    

Etapa 2: configurar o acesso ao bucket do Cloud Storage

Console

  1. Abra a página "Storage" no console do Google Cloud.

    Abrir a página "Armazenamento"

  2. Para selecionar o bucket do Cloud Storage que você usará para implantar os modelos, marque a caixa à esquerda do nome do bucket.

  3. Clique no botão Mostrar o painel de informações no canto superior direito para exibir a guia Permissões.

  4. Cole o código da conta de serviço no campo Adicionar principais. À direita desse campo, selecione os papéis que você quer, por exemplo, Leitor de bucket legado do Storage.

    Se não tiver certeza sobre qual papel selecionar, é possível selecionar vários papéis para vê-los exibidos abaixo do campo Adicionar principais, cada um com uma breve descrição das respectivas permissões.

  5. Para atribuir os papéis que você quiser à conta de serviço, clique no botão Adicionar à direita do campo Adicionar principais.

Linha de comando

Agora que você já tem as informações da conta de serviço e do projeto, é necessário atualizar as permissões de acesso do bucket do Cloud Storage. Estas etapas usam os mesmos nomes de variáveis da seção anterior.

  1. Defina o nome do bucket em uma variável de ambiente chamada BUCKET_NAME:

    BUCKET_NAME="your_bucket_name"
    
  2. Conceda à conta de serviço acesso de leitura a objetos no bucket do Cloud Storage:

    gcloud storage buckets add-iam-policy-binding gs://$BUCKET_NAME --member=user:$SVC_ACCOUNT --role=roles/storage.legacyObjectReader
    
  3. Conceda acesso de gravação:

    gcloud storage buckets add-iam-policy-binding gs://$BUCKET_NAME --member=user:$SVC_ACCOUNT --role=roles/storage.legacyObjectWriter
    

Para escolher um papel que será concedido à conta de serviço do AI Platform Training, consulte os papéis de IAM do Cloud Storage. Para mais informações gerais sobre como atualizar os papéis do IAM no Cloud Storage, consulte Como conceder acesso a uma conta de serviço em um recurso.

A seguir