Neste tutorial, você verá como treinar as representações de codificador bidirecional do modelo Transformers (BERT) no AI Platform Training.
O BERT é um método de representação de linguagem pré-treinamento. Pré-treinamento refere-se a como o BERT é primeiro treinado com base em uma grande fonte de texto, como a Wikipedia. Os resultados do treinamento podem ser aplicados a outras tarefas de processamento de linguagem natural (PLN), como sistema de perguntas e respostas e análise de sentimento. Com o BERT e o AI Platform Training, é possível treinar vários modelos de PLN em cerca de 30 minutos.
Para mais informações sobre o BERT, consulte os seguintes recursos:
- Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing (em inglês)
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (em inglês)
Objetivos
- Crie um bucket do Cloud Storage para armazenar a saída do modelo.
- Executar o job de treinamento.
- Verificar os resultados da saída.
Antes de começar o tutorial, verifique se o projeto do Google Cloud foi configurado corretamente.
Conclua as etapas a seguir para configurar uma conta do GCP, ativar as APIs necessárias e instalar e ativar a Google Cloud CLI:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Prepare os dados
Este tutorial não requer nenhum pré-processamento ou download de dados. Todos os pontos de verificação de dados e modelos necessários estão disponíveis em buckets de armazenamento público. Caso tenha interesse nesse processo, confira o tutorial do Cloud TPU, que aborda a criação do conjunto de dados a partir da linha de comando.
Enviar um job de treinamento
Para enviar um job, especifique alguns argumentos básicos de treinamento e outros relacionados ao algoritmo BERT.
Argumentos gerais do job de treinamento:
Argumentos do job de treinamento | |
---|---|
Argumento | Descrição |
job-id |
Código exclusivo do job de treinamento. Use-o para encontrar registros de status do job de treinamento depois de enviá-lo. |
job-dir |
Caminho do Cloud Storage em que o AI Platform Training salva arquivos de treinamento após a conclusão de um job de treinamento. |
scale-tier |
Especifica os tipos de máquina para treinamento. Use BASIC para selecionar uma configuração de apenas uma máquina.
|
master-image-uri |
URI do Container Registry usado para especificar qual contêiner do Docker usar
no job de treinamento. Use o contêiner no algoritmo integrado
BERT definido anteriormente como IMAGE_URI .
|
region |
Especifique a região disponível onde será executado o job de treinamento. Neste
tutorial, use a região us-central1 .
|
Argumentos específicos para o treinamento do algoritmo BERT integrado com o conjunto de dados fornecido:
Argumentos do algoritmo | ||
---|---|---|
Argumento | Valor | Descrição |
mode |
train_and_eval | Indique se fará ou não o treinamento ou a exportação do modelo. |
train_dataset_path |
gs://cloud-tpu-checkpoints/bert/classification/mnli_train.tf_record | Caminho do Cloud Storage em que os dados de treinamento estão armazenados. |
eval_dataset_path |
gs://cloud-tpu-checkpoints/bert/classification/mnli_eval.tf_record | Caminho do Cloud Storage em que os dados de avaliação são armazenados. |
input_meta_data_path |
gs://cloud-tpu-checkpoints/bert/classification/mnli_meta_data | Caminho do Cloud Storage em que o esquema de entrada está armazenado. |
bert_config_file |
gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16/bert_config.json | Caminho do Cloud Storage em que o arquivo de configuração BERT é armazenado. |
init_checkpoint |
gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16/bert_model.ckpt | Iniciando o checkpoint para ajustar (geralmente um modelo do BERT pré-treinado). |
train_batch_size |
32 | Tamanho do lote para treinamento. |
eval_batch_size |
32 | Tamanho do lote para avaliação. |
learning_rate |
2e-5 | Taxa de aprendizado usada pelo otimizador Adam. |
num_train_epochs |
1 | Número de períodos de treinamento a serem executados (disponível apenas no modo train_and_eval ).
|
steps_per_loop |
1000 | O número de etapas por loop no modo de gráfico. |
Para ver uma lista detalhada de todas as outras sinalizações do algoritmo BERT, consulte a referência integrada.
Executar o job de treinamento
- Acesse a página AI Platform > Jobs:
Página AI Platform > Jobs
Na parte superior da página, clique no botão "Novo job de treinamento" e selecione "Treinamento de algoritmo integrado"
Selecione o BERT como seu algoritmo de treinamento
Use o botão de navegação para marcar os conjuntos de dados de treinamento e avaliação no bucket do Cloud Storage e escolha o diretório de saída.
Na próxima página, use os valores de argumento acima para configurar o job de treinamento.
Dê um nome ao job de treinamento e use o tipo de máquina
BASIC_TPU
.Clique em "Enviar" para iniciar seu job.
Compreender o diretório do job
Depois que o job de treinamento é concluído com êxito, o AI Platform Training
cria um modelo treinado no seu intervalo do Cloud Storage com alguns outros
artefatos. Você verá a estrutura de diretório a seguir no seu JOB_DIR
:
- model/ (um diretório SavedModel do TensorFlow)
- saved_model.pb
- assets/
- variables/
- summaries/ (geração de registros com treinamento e avaliação)
- eval/
- train/
- vários arquivos de checkpoints (criados e usados durante o treinamento)
- checkpoint
- ctl_checkpoint-1.data-00000-of-00002
- ...
- ctl_checkpoint-1.index
Confirme se a estrutura de diretórios no JOB_DIR
corresponde à estrutura
descrita na lista anterior:
gcloud storage ls -a $JOB_DIR/*
Implantar o modelo treinado
O AI Platform Prediction organiza seus modelos treinados usando recursos de modelo e versão. Um modelo do AI Platform Prediction é um contêiner para as versões do seu modelo de machine learning.
Para implantar um modelo, crie um recurso no AI Platform Prediction, crie uma versão desse modelo e use o modelo e a versão para solicitar previsões on-line.
Saiba mais sobre como implantar modelos no AI Platform Prediction.
Console
Na página Jobs, você encontra uma lista de todos os jobs de treinamento. Clique no nome do job de treinamento que você acabou de enviar.
Na página Detalhes do job, visualize o progresso geral do job ou clique em Visualizar registros para uma visualização mais detalhada do progresso.
Quando o job é bem-sucedido, o botão Implantar modelo é exibido na parte superior. Clique em Implantar modelo.
Selecione "Implantar como novo modelo" e digite um nome. Em seguida, clique em Confirmar.
Na página Criar versão, insira o nome de uma versão, como
v1
, e mantenha as configurações padrão de todos os outros campos. Clique em Salvar.Na página Detalhes do modelo, o nome da versão é exibido. A criação da versão leva alguns minutos. Quando a versão estiver pronta, um ícone de marca de seleção aparecerá ao lado do nome da versão.
Clique no nome da versão (
v1
) para navegar até a página Detalhes da versão. Na próxima etapa deste tutorial, você enviará uma solicitação de previsão
Receber predições on-line
Ao solicitar previsões, é necessário formatar os dados de entrada como JSON de maneira que o modelo espera. Os modelos BERT atuais não pré-processam automaticamente entradas.
Console
Na página Detalhes da versão de
v1
, que é a versão que você acabou de criar, é possível enviar uma solicitação de previsão de amostra.Selecione a guia Testar e usar.
Copie a seguinte amostra para o campo de entrada:
{ "instances": [ { "input_mask": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "input_type_ids":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "input_word_ids": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] } ] }
Clique em Teste.
Aguarde um momento, e um vetor de previsão será retornado.
A seguir
Neste tutorial, você treinou o modelo BERT usando um conjunto de dados de amostra. Na maioria dos casos, os resultados deste treinamento não podem ser usados para inferência. Para usar um modelo para inferência, é possível treinar os dados em um conjunto de dados disponível publicamente ou no seu próprio conjunto de dados. Os modelos treinados nas Cloud TPUs exigem que os conjuntos de dados estejam no formato TFRecord.
Use a amostra da ferramenta de conversão de conjunto de dados para converter um conjunto de dados de classificação de imagem no formato TFRecord. Se você não estiver usando um modelo de classificação de imagem, converta manualmente o conjunto de dados para o TFRecord. Para mais informações, consulte TFRecord e tf.Example
- Saiba mais sobre como usar o algoritmo BERT integrado.