Neste tutorial, você verá como criar um modelo personalizado de tradução usando o AutoML Translation. O aplicativo treina um modelo personalizado usando um conjunto de dados de pares de frases orientadas por tecnologia de localização de software do inglês para o espanhol.
No tutorial, explicamos o modelo personalizado, avaliando o desempenho dele e traduzindo um novo conteúdo.
Pré-requisitos
Configurar o ambiente do projeto
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
-
Ative as APIs AutoML Translation.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
-
Ative as APIs AutoML Translation.
- Instale a CLI do Google Cloud.
- Siga as instruções para criar uma conta de serviço e fazer o download de um arquivo de chave.
- Defina a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALS
para o caminho até o arquivo de chave da conta de serviço que você salvou quando criou essa conta. Por exemplo:export GOOGLE_APPLICATION_CREDENTIALS=key-file
- Adicione a nova conta de serviço ao papel do IAM Editor do AutoML com os comandos a seguir. Substitua project-id pelo nome do seu
projeto do Google Cloud e service-account-name pelo nome da
nova conta de serviço, por exemplo,
service-account1@myproject.iam.gserviceaccount.com
.gcloud auth login gcloud config set project project-id gcloud projects add-iam-policy-binding project-id \ --member=serviceAccount:service-account-name \ --role='roles/automl.editor'
- Permita que as contas de serviço do AutoML Translation acessem os recursos do seu projeto do Google Cloud:
gcloud projects add-iam-policy-binding project-id \ --member="serviceAccount:service-project-number@gcp-sa-automl.iam.gserviceaccount.com" \ --role="roles/automl.serviceAgent"
- Instale a biblioteca de cliente.
- Defina as variáveis de ambiente PROJECT_ID e REGION_NAME.
Substitua project-id pelo ID do projeto do Google Cloud. No momento, o AutoML Translation exige o localus-central1
.export PROJECT_ID="project-id" export REGION_NAME="us-central1"
- Crie um bucket do Google Cloud Storage para armazenar os documentos que serão usados para treinar o modelo personalizado.
O nome do bucket precisa estar no formato:$PROJECT_ID-vcm
. O comando a seguir cria um intervalo de armazenamento na regiãous-central1
denominada$PROJECT_ID-vcm
.gsutil mb -p $PROJECT_ID -c regional -l $REGION_NAME gs://$PROJECT_ID-vcm/
-
Faça o download do arquivo que contém os dados de amostra para o treinamento do modelo, extraia o conteúdo dele e faça upload dos arquivos para o bucket do Google Cloud Storage.
Consulte Como preparar os dados de treinamento para mais detalhes sobre os formatos.O código de amostra neste tutorial usa o conjunto de dados do inglês para o espanhol. Há conjuntos de dados com os idiomas de chegada alemão, francês, russo e chinês disponíveis. Se você usar um desses conjuntos de dados alternativos, substitua o código de idioma
es
nas amostras pelo código apropriado. - No arquivo
en-es.csv
da etapa anterior, substitua{project_id}
pelo ID do projeto.
Locais dos arquivos de código-fonte
Faça o download do código-fonte no local fornecido abaixo. Depois, copie o código-fonte para a pasta do projeto do Google Cloud.
Python
O tutorial consiste nestes arquivos do Python:
translate_create_dataset.py
: inclui a funcionalidade para criar um conjunto de dados.import_dataset.py
: inclui a funcionalidade para importar um conjunto de dados.translate_create_model.py
: inclui a funcionalidade para criar um modelo.list_model_evaluations.py
: inclui a funcionalidade para listar avaliações de modelos.translate_predict.py
: inclui a funcionalidade relacionada à previsão.delete_model.py
: inclui a funcionalidade para excluir um modelo.
Java
O tutorial consiste nestes arquivos do Java:
TranslateCreateDataset.java
: inclui a funcionalidade para criar um conjunto de dados.ImportDataset.java
: inclui a funcionalidade para importar um conjunto de dados.TranslateCreateModel.java
: inclui a funcionalidade para criar um modelo.ListModelEvaluations.java
: inclui a funcionalidade para listar avaliações de modelos.TranslatePredict.java
: inclui a funcionalidade relacionada à previsão.DeleteModel.java
: inclui a funcionalidade para excluir um modelo.
Node.js
O tutorial consiste nestes programas do Node.js:
translate_create_dataset.js
: inclui a funcionalidade para criar um conjunto de dados.import_dataset.js
: inclui a funcionalidade para importar um conjunto de dados.translate_create_model.js
: inclui a funcionalidade para criar um modelo.list_model_evaluations.js
: inclui a funcionalidade para listar avaliações de modelos.translate_predict.js
: inclui a funcionalidade relacionada à previsão.delete_model.js
: inclui a funcionalidade para excluir um modelo.
Como executar o aplicativo
Etapa 1: criar um conjunto de dados
A primeira etapa na criação de um modelo personalizado é criar um conjunto de dados vazio que vai armazenar os dados de treinamento do modelo. Ao criar um conjunto de dados, você especifica os idiomas de origem e de chegada da tradução.
Copiar o código
Python
Java
Node.js
Solicitação
Execute a função create_dataset
para criar um conjunto de dados vazio. Você precisa modificar
as linhas de código a seguir:
- Defina o
project_id
como o PROJECT_ID. - Defina o
display_name
do conjunto de dados (en_es_dataset
). Modifique o campo
target_language_code
deja
paraes
.
Python
python translate_create_dataset.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranslateCreateDataset"
Node.js
node translate_create_dataset.js
Resposta
A resposta inclui os detalhes do conjunto de dados recém-criado, como o ID do conjunto de dados que você usará para se referir a ele em solicitações futuras. Recomendamos definir uma variável de ambiente DATASET_ID
como o valor do código do conjunto de dados.
Dataset name: projects/216065747626/locations/us-central1/datasets/TRL7372141011130533778 Dataset id: TRL7372141011130533778 Dataset display name: en_es_dataset Translation dataset Metadata: source_language_code: en target_language_code: es Dataset example count: 0 Dataset create time: seconds: 1530251987 nanos: 216586000
Etapa 2: importar pares de frases de treinamento para o conjunto de dados
A próxima etapa é preencher o conjunto de dados com uma lista de pares de frases de treinamento.
A interface da função import_dataset
usa como entrada um arquivo .csv que lista os locais de todos os documentos de treinamento e o rótulo adequado a cada documento.
Consulte Preparar os dados para detalhes sobre o formato necessário. Neste tutorial, en-es.csv
será usado. Você fez upload dele para o Google Cloud Storage nas etapas anteriores.
Copiar o código
Python
Java
Node.js
Solicitação
Execute a função import_data
para importar o conteúdo de treinamento. Você precisa modificar as linhas de código a seguir:
- Defina o
project_id
como o PROJECT_ID. - Defina o
dataset_id
do conjunto de dados usando a saída da etapa anterior. Defina o
path
, que é o URI degs://YOUR_PROJECT_ID-vcm/en-es.csv
.
Python
python import_dataset.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.ImportDataset"
Node.js
node import_dataset.js
Resposta
Processing import... Dataset imported.
Etapa 3: criar (treinar) o modelo
Agora que você tem um conjunto de dados de documentos de treinamento rotulados, é possível treinar um novo modelo.
Copiar o código
Python
Java
Node.js
Solicitação
Para executar create_model
, você precisa modificar as linhas de código a seguir:
- Defina o
project_id
como o PROJECT_ID. - Defina o
dataset_id
do conjunto de dados usando a saída da etapa anterior. Defina o
display_name
do novo modelo (en_es_test_model).
Python
python translate_create_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranlateCreateModel"
Node.js
node translate_create_model.js
Resposta
A função create_model
inicia uma operação de treinamento e imprime o nome da operação. O treinamento é realizado de modo assíncrono e pode levar um tempo para ser concluído. Portanto, é possível usar o ID da operação para verificar o status do treinamento.
Quando o treinamento for concluído, create_model
retornará o ID do modelo. Assim como você fez com o ID do conjunto de dados, defina uma variável de ambiente MODEL_ID
como o valor do ID do modelo retornado.
Training operation name: projects/216065747626/locations/us-central1/operations/TRL3007727620979824033 Training started... Model name: projects/216065747626/locations/us-central1/models/TRL3007727620979824033 Model id: TRL3007727620979824033 Model display name: en_es_test_model Model create time: seconds: 1529649600 nanos: 966000000 Model deployment state: deployed
Etapa 4: avaliar o modelo
Após o treinamento, avalie se o modelo está pronto. Basta analisar a pontuação BLEU.
A função list_model_evaluations
considera o ID do modelo como um parâmetro.
Copiar o código
Python
Java
Node.js
Solicitação
Faça a solicitação a seguir para exibir o desempenho geral da avaliação do modelo. Você precisa modificar as linhas de código a seguir:
- Defina o
project_id
como o PROJECT_ID. Defina o
model_id
como o ID do modelo.
Python
python list_model_evaluations.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.ListModelEvaluations"
Node.js
node list_model_evaluations.js
Resposta
Se a pontuação BLEU for muito baixa, você poderá fortalecer o conjunto de dados de treinamento e treinar novamente o modelo. Para mais informações, consulte Como avaliar modelos.
List of model evaluations: name: "projects/216065747626/locations/us-central1/models/5419131644870929143/modelEvaluations/TRL7683346839371803263" create_time { seconds: 1530196488 nanos: 509247000 } evaluated_example_count: 3 translation_evaluation_metrics { bleu_score: 19.23076957464218 base_bleu_score: 11.428571492433548 }
Etapa 5: usar um modelo para fazer uma predição
Quando o modelo personalizado atende aos padrões de qualidade, é possível usá-lo para traduzir um novo conteúdo.
Copiar o código
Python
Java
Node.js
Solicitação
Na função predict
, você precisa modificar as linhas de código a seguir:
- Defina o
project_id
como o PROJECT_ID. - Defina o
model_id
como o ID do modelo. Defina o
file_path
como o arquivo transferido por download ("resources/input.txt").
Python
python tranlsate_predict.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranslatePredict"
Node.js
node translate_predict.js predict
Resposta
A função retorna o conteúdo traduzido.
Translated content: Ver y administrar tus cuentas de Google Tag Manager.
A frase acima é a tradução para espanhol da frase em inglês: "View and manage your Google Tag Manager accounts". Compare essa tradução personalizada com a tradução do modelo base do Google:
Ver y administrar sus cuentas de Administrador de etiquetas de Google
Etapa 6: excluir um modelo
Quando terminar de usar este modelo de amostra, você poderá excluí-lo permanentemente. Não será mais possível usá-lo para previsão.
Copiar o código
Python
Java
Node.js
Solicitação
Faça uma solicitação com o tipo de operação delete_model
para excluir um modelo criado. Você precisa modificar as linhas de código a seguir:
- Defina o
project_id
como o PROJECT_ID. Defina o
model_id
como o ID do modelo.
Python
python delete_model.py
Java
mvn compile exec:java -Dexec.mainClass="com.example.automl.DeleteModel"
Node.js
node delete_model.js
Resposta
Model deleted.