Personalizar o modelo NMT

Com a API Cloud Translation – Advanced, é possível personalizar o modelo de tradução automática neural (NMT) do Google sem escrever código. Isso significa que você pode adaptar um modelo personalizado ao seu conteúdo específico do domínio e produzir traduções mais precisas do que o modelo 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. Quando um modelo personalizado se destaca é ao lidar com vocabulários específicos de nicho. 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 especializado de relatórios que tem a oportunidade de se expandir para novos países. Atuar nesses novos mercados exige que seu conteúdo urgente seja traduzido corretamente em tempo real, incluindo terminologia especializada. Em vez de contratar funcionários bilíngues ou tradutores especializados, ambos com preços altos, 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 de destino. São pares de palavras ou frases que têm o mesmo significado nos dois idiomas. Quanto mais próximo de seus pares de segmentos estiverem, melhor será o funcionamento do modelo.

Ao reunir o conjunto de dados de pares de segmentos correspondentes, comece pelo caso de uso:

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

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

  • É possível que pessoas traduzam esses segmentos principais de uma maneira mais satisfatória? Se a tarefa de tradução for ambígua a ponto de uma pessoa fluente em ambos os idiomas ter dificuldade em realizar uma tarefa satisfatória, o modelo NMT poderá ter o mesmo desempenho de 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 supor que a maneira como as pessoas escrevem sobre um campo de conhecimento específico seja uniforme o bastante para que uma pequena quantidade de amostras de texto, traduzidas por poucas pessoas, seja suficiente para treinar um modelo que funcione bem para qualquer um que escreva sobre esse campo. 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 dos segmentos. Um conjunto de dados em que todos os segmentos tenham o mesmo tamanho ou uma estrutura gramatical semelhante não vai gerar um bom modelo personalizado que capture 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.

Manter as pessoas informadas

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 simples, 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.

Considere a justiça 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áveis, incluindo a imparcialidade. O objetivo da justiça na ML é entender e evitar o tratamento injusto ou preconceituoso 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. Leia mais no nosso guia e nestas 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 e, se for o caso, 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, reflita cuidadosamente sobre o domínio do problema e o 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

É fácil 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 frases duplicadas nos conjuntos de treinamento e teste. Consulte Divisão do conjunto de dados para saber como dividir o 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 usa uma codificação diferente de UTF-8.

A API Cloud Translation Advanced ignora erros de problemas que não consegue detectar, como:

  • 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 processamento extra (consulte Divisão de conjuntos 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 (treino:validação:teste) antes do treinamento.

Divisão do conjunto de dados

Seu 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 modelo concluir o treinamento, o conjunto de teste será usado como um desafio totalmente novo para o modelo. 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 determinar as porcentagens de divisão e especificar conjuntos particulares em que incluir pares de segmentos específicos.

Importando dados

Depois de decidir se uma divisão manual ou automática dos dados é adequada para você, há 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 segmentos a ferramentas de modelo de tradução automática. Consulte Preparar dados de treinamento para mais informações sobre o formato TMX. Se um arquivo TMX contiver tags XML inválidas, a API Cloud Translation Advanced as ignorará. Se o arquivo TMX contiver erros de XML ou TMX, como se estiver faltando uma tag de fechamento ou 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 seu 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 é mostrada 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. Pontuações entre 30 e 40 são consideradas boas. Para uma explicação detalhada das pontuações BLEU, consulte A métrica de qualidade de tradução BLEU.

Existem outras métricas de avaliação que costumam ser mais confiáveis do que a pontuação BLEU. Para 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 concentra mais nos dados do que no modelo em si. Se o modelo não estiver traduzindo da maneira que você quer, verifique os dados para ver como eles podem ser melhorados.

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 todos os segmentos forem idênticos às previsões do modelo de base, isso poderá indicar um problema com os dados.

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

A seguir