O AI Platform Prediction lê dados nos locais do Cloud Storage a que seu projeto do AI Platform Prediction tem acesso. Nesta página, você verá um guia rápido sobre como usar o Cloud Storage com o AI Platform Prediction.
Visão geral
O uso do Cloud Storage é obrigatório ou recomendado para os seguintes aspectos dos serviços do AI Platform Prediction:
Previsão on-line
- Armazenamento do modelo salvo para transformá-lo em uma versão de modelo.
- Armazenamento do código personalizado para processar solicitações de previsão se você usar uma rotina de previsão personalizada ou um pipeline do scikit-learn com código personalizado (ambos em versão Beta).
- Armazenamento de dados extras acessados pelo código personalizado ao processar as previsões.
Predição em lote
- Armazenamento dos arquivos de entrada da previsão em lote.
- Armazenamento da saída da previsão em lote.
- Armazenamento do modelo, se você usar a predição em lote sem, primeiro, implantar o modelo no AI Platform Prediction.
Considerações sobre regiões
Ao criar um bucket do Cloud Storage para usar com o AI Platform Prediction, 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.
Saiba mais sobre as regiões disponíveis do AI Platform Prediction.
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ê usa para executar o AI Platform Prediction, é necessário conceder acesso explícito às contas de serviço do AI Platform Prediction.
-
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
-
Verifique o nome do bucket que você criou.
echo $BUCKET_NAME
-
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 Prediction. Consulte as regiões disponíveis para os serviços do AI Platform Prediction.
Por exemplo, o código a seguir cria
REGION
e a define comous-central1
:REGION=us-central1
-
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 a previsão
Se você implantar uma rotina de previsão personalizada ou um pipeline do scikit-learn com código personalizado (ambos em Beta), a versão do modelo poderá fazer leituras em qualquer bucket do Cloud Storage que esteja no mesmo projeto durante o processamento das previsões.
Use um módulo do Python que possa ler o Cloud Storage no código de previsão
personalizado, 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 Prediction cuida da autenticação.
Também é possível especificar uma conta de serviço ao implantar uma rotina de previsão personalizada para escolher quais recursos do Cloud Storage poderão ser acessados por sua implantação.
Como usar um bucket do Cloud Storage de um projeto diferente
Nesta seção, você aprenderá como configurar buckets do Cloud Storage de fora do seu projeto para que o AI Platform Prediction possa acessá-los.
Se você configurar seu bucket do Cloud Storage no mesmo projeto em que o AI Platform Prediction é utilizado, suas contas de serviço do AI Platform Prediction 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 a partir do projeto, como quando um grande conjunto de dados é compartilhado por vários projetos.
- Se você usar vários buckets com o AI Platform Prediction, conceda individualmente às contas de serviço do AI Platform Prediction acesso a cada bucket.
Etapa 1: receber informações necessárias do projeto na nuvem
Console
Abra a página "IAM" no console do Google Cloud.
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 Prediction 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. Use-as para mudar o controle de acesso da conta de serviço do AI Platform Prediction do projeto. É preciso armazenar os valores para uso posterior em variáveis de ambiente.
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)")
Use a
gcloud
para receber o token de acesso do projeto:AUTH_TOKEN=$(gcloud auth print-access-token)
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
Abra a página "Storage" no console do Google Cloud.
Para selecionar o bucket do Cloud Storage que você usará para implantar os modelos, marque a caixa à esquerda do nome do bucket.
Clique no botão Mostrar o painel de informações no canto superior direito para exibir a guia Permissões.
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.
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.
Defina o nome do bucket em uma variável de ambiente chamada
BUCKET_NAME
:BUCKET_NAME="your_bucket_name"
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
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 Prediction, 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
- Veja o AI Platform Prediction em ação com o guia de primeiros passos.
- Saiba mais sobre como o AI Platform funciona.
- Saiba mais sobre como o AI Platform Prediction funciona.