Personalização do modelo NMT

A API Cloud Translation - Advanced permite personalizar o modelo de tradução automática neural (NMT) do Google sem escrever código. Isso significa que é possível adaptar um modelo personalizado ao conteúdo específico do seu domínio e produzir traduções mais precisas do que o modelo de NMT padrão do Google.

O modelo de NMT abrange um grande número de pares de idiomas e funciona bem com textos de uso geral. O modelo personalizado se destaca na transformação de traduções gerais em textos com vocabulário especializado. Ao personalizar o modelo de NMT, você consegue a tradução certa da terminologia específica do domínio que é importante para você.

Se você administra um serviço de relatórios especializado que tem a oportunidade de se expandir para novos países. Atuar nesses novos mercados exige que conteúdos possivelmente urgentes sejam traduzidos corretamente em tempo real, incluindo terminologia especializada. Em vez de contratar funcionários bilíngues ou tradutores especializados, que são caros, você pode criar e refinar um modelo personalizado para fazer o trabalho em tempo real a um custo muito menor.

Preparação de dados

Para treinar um modelo personalizado, você fornece pares de segmentos correspondentes nos idiomas de origem e idioma-alvo. São pares de palavras ou frases que significam a mesma coisa no idioma de origem e no idioma de destino. Quanto mais próximos os significados dos pares de segmentos, melhor será o funcionamento do modelo.

Ao montar o conjunto de dados de pares de segmentos correspondentes, comece com o caso de uso:

  • Que resultado você está tentando alcançar?

  • Que tipos de frases são importantes para traduzir corretamente para alcançar esse resultado? O modelo NMT pode fazer isso imediatamente?

  • É possível que pessoas traduzam essas frases de uma maneira mais satisfatória? Se a tarefa de tradução for ambígua o suficiente para que uma pessoa fluente em ambos os idiomas tenha dificuldade em realizar uma tarefa satisfatória, o modelo NMT poderá ter um desempenho tão bom quanto um modelo personalizado.

  • Que exemplos refletem com mais precisão o tipo e o intervalo de pares de segmentos que seu sistema precisará traduzir?

Relacionar os dados ao domínio do problema

Você está treinando um modelo de tradução personalizado porque precisa de um modelo adequado a um domínio linguístico específico. Verifique se os pares de frases abrangem, da melhor forma possível, o vocabulário, o uso e as peculiaridades gramaticais do seu setor ou área de foco. Procure documentos com exemplos de usos que seriam encontrados com frequência nos textos que você quer traduzir e confira se os significados das frases paralelas correspondem o máximo possível. É claro que, às vezes, os idiomas não são correlacionados perfeitamente no que se refere ao vocabulário ou à sintaxe, mas procure capturar toda a diversidade de possíveis significados que você espera encontrar. Você está criando com base em um modelo que já faz um bom trabalho com a tradução de uso geral. Seus exemplos são a última etapa especial que faz os modelos personalizados funcionarem para seu caso de uso em particular. Portanto, verifique se são relevantes e representam o uso esperado.

Capturar a diversidade do seu espaço linguístico

É tentador presumir que a maneira como as pessoas escrevem sobre um domínio específico é uniforme o suficiente para que um pequeno número de amostras de texto traduzidas por um pequeno número de tradutores seja suficiente para treinar um modelo que funcione bem para qualquer outra pessoa que escreva sobre esse domínio. No entanto, somos indivíduos únicos, e as palavras que escrevemos carregam em si nossa personalidade. Um conjunto de dados de treinamento, com pares de frases de uma ampla seleção de autores e tradutores, tem mais chances de oferecer um modelo útil para traduzir textos vindos de outra organização. Além disso, pense na variedade de tamanhos e estruturas das frases. Um conjunto de dados em que todas as frases tenham o mesmo tamanho ou uma estrutura gramatical semelhante não produzirá um bom modelo personalizado capaz de capturar todas as possibilidades.

Fonte dos dados

Depois de estabelecer os dados necessários, encontre uma maneira de extraí-los. Para começar, considere todos os dados que sua organização coleta. Pode ser que ela já esteja coletando os dados necessários para o treinamento de um modelo de tradução. Se você não tiver os dados de que precisa, é possível reuni-los manualmente ou terceirizar essa tarefa.

Mantenha a análise human in the loop

Se possível, peça para uma pessoa que entenda bem ambos os idiomas revisar os pares de frases e confirmar que as traduções são precisas e compreensíveis. Erros comuns, como desalinhar as linhas da planilha de dados de treinamento, podem resultar em traduções ruins. O mais importante a ser fornecido à API Cloud Translation - Advanced são dados de alta qualidade. Com eles, é possível criar um modelo que seja útil para sua empresa.

Lembre-se da imparcialidade ao desenvolver pares de segmentos

Um princípio fundamental que sustenta os produtos de ML do Google é o machine learning centrado na pessoa, uma abordagem que promove práticas de IA responsável, incluindo a imparcialidade. O objetivo da imparcialidade no ML é entender e evitar o tratamento injusto ou prejudicial de pessoas relacionadas a raça, renda, orientação sexual, religião, gênero e outras características historicamente associadas à discriminação e à marginalização, quando e onde elas se manifestam em sistemas algorítmicos ou na tomada de decisões com a ajuda de algoritmos. Para mais informações, acesse nosso guia e leia as observações sobre imparcialidade:

  • Analise a legislação na região e nos locais onde seu aplicativo será disponibilizado. Além disso, leia as pesquisas ou as informações do produto no seu domínio para saber mais sobre diretrizes jurídicas e possíveis problemas culturais. Leia mais…

  • Considere se o caso de uso ou produto pode afetar negativamente as oportunidades econômicas ou outras oportunidades importantes na vida das pessoas. Se sim, leia mais…

  • Se você tiver poucos dados sobre determinado subgrupo, faça a divisão por conta própria para garantir que esses dados sejam bem distribuídos entre os conjuntos de treinamento e de teste.

  • Ao testar, pense com cuidado no domínio do problema e no potencial de injustiça e viés. Imagine casos que poderiam afetar negativamente os usuários se ocorressem no estágio de produção e teste-os primeiro. Leia mais…

  • Se você tiver um caso de uso que justifique preocupações sobre imparcialidade, aprenda a usar um modelo para atenuar vieses ou resultados adversos. Leia mais…

  • Mais diretrizes de dados para imparcialidade.

Limpar dados confusos

É possível cometer erros ao pré-processar os dados, e alguns deles podem confundir um modelo personalizado. Procure especificamente os seguintes problemas de dados que podem ser corrigidos:

  • Remova frases de origem duplicadas, especialmente se elas tiverem traduções de destino diferentes. A API Cloud Translation - Advanced usa apenas o primeiro exemplo visto e descarta todos os outros pares no momento da importação. Ao remover as cópias, você garante que a API Cloud Translation - Advanced use sua tradução preferida.
  • Alinhe os segmentos de origem aos segmentos de destino corretos.
  • Faça a correspondência de segmentos com o idioma especificado, por exemplo, inclua apenas segmentos chineses em um conjunto de dados chinês.
  • Para frases de destino que incluem idiomas mistos, verifique se as palavras não traduzidas são intencionalmente não traduzidas, como nomes de produtos ou organizações. As frases de destino que incluem palavras não traduzidas por engano adicionam ruído aos seus dados de treinamento, o que pode resultar em um modelo de qualidade inferior.
  • Corrija frases com erros ortográficos ou gramaticais para que o modelo não aprenda esses erros.
  • Remova conteúdo não traduzível, como tags de marcador de posição e tags HTML. O conteúdo não traduzível pode resultar em erros de pontuação.
  • Não inclua pares de segmentos que substituem entidades gerais por substantivos específicos. Por exemplo, evite um exemplo que traduza um termo geral como presidente para o nome de um presidente específico, como JFK. Isso pode ensinar o modelo a mudar todas as instâncias de presidente para JFK. Em vez disso, remova esses pares de segmentos ou mude os substantivos específicos para gerais.
  • Remova segmentos duplicados nos conjuntos de treinamento e teste (consulte Divisão do conjunto de dados sobre como dividir seu conjunto de dados em três subconjuntos).
  • Divida vários segmentos em diferentes pares de segmentos. Treinar com um conjunto de dados em que muitos itens têm mais de 50 tokens (palavras) resulta em modelos de menor qualidade. Divida os itens em frases individuais, sempre que possível.
  • Use maiúsculas e minúsculas de maneira consistente. A capitalização afeta o modo como um modelo aprende, por exemplo, a distinguir um título e o corpo do texto.
  • Remova as tags TMX ao importar dados de um arquivo TSV. Em alguns casos, você pode exportar a memória de tradução atual para um arquivo TSV, que pode incluir tags TMX. No entanto, a API Cloud Translation - Advanced limpa as tags da unidade de tradução somente quando você importa o arquivo TMX (não para arquivos TSV).

Processamento de dados

A API Cloud Translation - Advanced para de analisar o arquivo de entrada de dados quando:

  • houver formatação inválida;
  • Existir um par de frases excessivamente longo (10 MB).
  • O arquivo usar uma codificação diferente de UTF-8.

A API Cloud Translation - Advanced ignora os erros de problemas que não é capaz de detectar, por exemplo:

  • Um elemento <tu> em um arquivo TMX que não especifica o idioma de origem ou de destino.
  • Um dos pares de frases de entrada está vazio.

Para a divisão automática de dados, a API Cloud Translation - Advanced realiza um processamento extra (consulte Divisão do conjunto de dados):

  • Depois do upload do conjunto de dados, ele remove pares de segmentos com segmentos de origem idênticos.

  • Ele divide aleatoriamente os dados em três conjuntos com uma proporção de 8:1:1 (train:validation:test) antes do treinamento.

Divisão do conjunto de dados

O conjunto de dados de pares de segmentos é dividido em três subconjuntos para treinamento, validação e teste:

  • Conjunto de treinamento
    A maior parte dos dados precisa estar no conjunto de treinamento. São esses os dados que o modelo "vê" durante o treinamento. Eles são usados para aprender os parâmetros do modelo e calcular os pesos das conexões entre os nós da rede neural.

  • Conjunto de validação
    O conjunto de validação, às vezes chamado de conjunto dev, também é usado durante o processo de treinamento. Durante o aprendizado do modelo, o framework usa o conjunto de treinamento para treinar um pacote de modelos candidatos. Depois, usa o desempenho deles no conjunto de validação para escolher o melhor modelo gerado. O desempenho do modelo é usado no conjunto de validação para ajustar os hiperparâmetros, que são as variáveis que especificam a estrutura do modelo. Se você usar o conjunto de treinamento para ajustar os hiperparâmetros, os dados de treinamento serão excessivamente enfatizados no modelo. O modelo vai ter melhor capacidade de generalização se você usar um conjunto de dados relativamente novo para ajustar a estrutura.

  • Conjunto de teste
    O conjunto de teste não faz parte do processo de treinamento. Depois que o treinamento do modelo for totalmente concluído, o conjunto de teste será usado como um novo desafio. O desempenho do modelo no conjunto de teste serve para que você tenha uma boa ideia de como ele vai lidar com dados reais.

Se você não especificar manualmente como o conjunto de dados é dividido entre essas funções, conforme descrito em Como preparar seus dados de treinamento, e se o conjunto de dados tiver menos de 100.000 pares de segmentos, a API Cloud Translation - Advanced usará automaticamente 80% dos documentos de conteúdo para treinamento, 10% para validação e 10% para teste. Se os dados forem maiores do que isso, você precisará especificar explicitamente como eles serão divididos. A divisão manual oferece mais controle sobre o processo, permitindo que você determine as porcentagens de divisão e especifique conjuntos específicos para incluir determinados pares de segmentos.

Importando dados

Depois de decidir se uma divisão manual ou automática dos dados é adequada para você, existem duas maneiras de adicionar dados:

  • É possível importar dados como um arquivo de valores separados por tabulação (TSV, na sigla em inglês) que contém frases de origem e de destino com um par de frases por linha.

  • É possível importar dados como um arquivo TMX, um formato padrão para fornecer pares de frases a ferramentas de modelo de tradução automática (consulte Preparar dados de treinamento) para saber mais sobre o formato TMX). Se um arquivo TMX contiver tags XML inválidas, a API Cloud Translation - Advanced vai ignorá-las. Se o arquivo TMX tiver erros de XML ou TMX, como a falta de uma tag de fechamento ou de um elemento <tmx>, a API Cloud Translation - Advanced vai encerrar o processamento e retornar um erro se ignorar mais de 1.024 elementos inválidos.

Avaliação preliminar do modelo personalizado

Após treinar o modelo, você receberá um resumo do desempenho. Clique na guia Treinar para receber uma análise detalhada. A pontuação BLEU do seu modelo personalizado e do modelo NMT padrão do Google são mostradas na guia Treinar, junto com o ganho de desempenho da pontuação BLEU ao usar o modo personalizado.

Quanto maior a pontuação BLEU, melhores as traduções fornecidas pelo seu modelo para frases semelhantes aos dados de treinamento. As pontuações no intervalo de 30 a 40 são consideradas boas. Para uma explicação detalhada das pontuações BLEU, consulte A métrica de qualidade de tradução BLEU.

Há outras métricas de avaliação que costumam ser mais confiáveis do que a pontuação BLEU. Para mais informações sobre essas opções de avaliação, consulte Avaliar modelos de tradução.

Depuração

A depuração de um modelo personalizado se refere mais aos dados do que ao modelo em si. Se o modelo não estiver traduzindo da maneira pretendida, verifique os dados para ver onde ele pode ser melhorado.

Teste

Mesmo que a pontuação BLEU pareça boa, é recomendável verificar por conta própria se o desempenho do modelo corresponde às suas expectativas. Se os dados de treinamento e teste forem retirados do mesmo conjunto incorreto de amostras, as pontuações poderão ser excelentes mesmo que a tradução não faça sentido. Adicione alguns exemplos como entrada na guia Prever e compare os resultados do modelo personalizado com o modelo base do Google NMT. Talvez seu modelo apresente as mesmas previsões do modelo base, especialmente em frases curtas ou se você tiver um conjunto de treinamento menor, já que o modelo base já é muito bom para uma ampla variedade de casos de uso. Nesse caso, tente usar frases mais longas ou mais complexas. No entanto, se todas as frases forem idênticas às previsões do modelo base, isso poderá indicar um problema com os dados.

Se houver um erro que você esteja particularmente preocupado que seu modelo cometa (como um erro de tradução que pode ser caro em dinheiro ou reputação), verifique se o conjunto ou procedimento de teste abrange esse caso adequadamente para que você se sinta seguro ao usar seu modelo em tarefas diárias.

A seguir