Personalizar o modelo de NMT

A API Cloud Translation – Advanced permite-lhe personalizar o modelo de tradução automática neural (NMT) da Google sem escrever código. Isto significa que pode personalizar um modelo personalizado para o seu conteúdo específico do domínio e produzir traduções mais precisas do que o modelo de NMT da Google predefinido.

O modelo de NMT abrange um grande número de pares de idiomas e funciona bem com texto de uso geral. Onde um modelo personalizado se destaca é no processamento de vocabulários específicos e de nicho. A personalização do modelo de NMT permite-lhe obter a tradução correta da terminologia específica do domínio que lhe interessa.

Se gere um serviço de relatórios especializado que tem a oportunidade de se expandir para novos países. Esses mercados exigem que o seu conteúdo sensível ao tempo seja traduzido corretamente em tempo real, incluindo terminologia especializada. Em vez de ter de contratar funcionários bilingues ou contratar tradutores especializados, que têm um custo elevado, pode criar e refinar um modelo personalizado para fazer o trabalho em tempo real a um custo muito inferior.

Preparação de dados

Para formar um modelo personalizado, fornece pares correspondentes de segmentos nos idiomas de origem e de destino. São pares de palavras ou expressões que significam o mesmo no idioma de origem e no idioma de destino. Quanto mais próximos forem os pares de segmentos em termos de significado, melhor será o desempenho do modelo.

Ao criar o conjunto de dados de pares de segmentos correspondentes, comece pelo exemplo de utilização:

  • Que resultado está a tentar alcançar?

  • Que tipos de segmentos são importantes para traduzir corretamente de modo a alcançar esse resultado? O modelo NMT consegue fazer isso de imediato?

  • É possível que os humanos traduzam estes segmentos principais de uma forma que lhe agrade? Se a tarefa de tradução for suficientemente ambígua para que uma pessoa com fluência em ambos os idiomas tenha dificuldade em fazer um trabalho satisfatório, o modelo de NMT pode ter um desempenho tão bom quanto um modelo personalizado.

  • Que tipos de exemplos refletem melhor o tipo e o intervalo de pares de segmentos que o seu sistema vai ter de traduzir?

Faça corresponder os dados ao seu domínio de problemas

Está a formar um modelo de tradução personalizado porque precisa de um modelo adequado a um domínio linguístico específico. Certifique-se de que os pares de segmentos fazem o melhor trabalho possível na cobertura do vocabulário, da utilização e das particularidades gramaticais da sua indústria ou área de foco. Encontre documentos que contenham utilizações típicas que encontraria nas tarefas de tradução que quer concluir e certifique-se de que as expressões paralelas correspondem o mais possível em termos de significado. Claro que, por vezes, os idiomas não correspondem perfeitamente no vocabulário ou na sintaxe, mas tente captar a diversidade semântica completa que espera encontrar em utilização, se isso for possível. Está a criar com base num modelo que já faz um trabalho bastante bom com a tradução de uso geral. Os seus exemplos são o último passo especial que faz com que os modelos personalizados funcionem para o seu exemplo de utilização em particular. Por isso, certifique-se de que são relevantes e representativos da utilização que espera ver.

Capture a diversidade do seu espaço linguístico

É tentador assumir que a forma como as pessoas escrevem sobre um domínio específico é suficientemente uniforme para que um pequeno número de exemplos de texto traduzidos por um pequeno número de tradutores seja suficiente para preparar um modelo que funcione bem para qualquer outra pessoa que escreva sobre esse domínio. Mas somos todos indivíduos e cada um de nós traz a sua própria personalidade às palavras que escrevemos. Um conjunto de dados de preparação com pares de segmentos de uma vasta seleção de autores e tradutores tem maior probabilidade de lhe dar um modelo útil para traduzir textos de uma organização diversificada. Além disso, considere a variedade de comprimentos e estruturas dos segmentos. Um conjunto de dados em que todos os segmentos têm o mesmo tamanho ou partilham uma estrutura gramatical semelhante não produz um bom modelo personalizado que capture todas as possibilidades.

Obtenha os seus dados

Depois de determinar os dados de que precisa, tem de encontrar uma forma de os obter. Pode começar por ter em conta todos os dados que a sua organização recolhe. Pode verificar que já está a recolher os dados de que precisa para preparar um modelo de tradução. Caso não tenha os dados de que precisa, pode obtê-los manualmente ou externalizá-los para um fornecedor externo.

Mantenha os humanos envolvidos

Se for possível, certifique-se de que uma pessoa que compreende bem ambos os idiomas validou se os pares de segmentos correspondem corretamente e representam traduções compreensíveis e precisas. Um erro comum, como o desalinhamento das linhas da folha de cálculo de dados de preparação, pode gerar traduções sem sentido. Os dados de alta qualidade são o mais importante que pode fornecer à API Cloud Translation – Advanced para obter um modelo que seja utilizável para a sua empresa.

Tenha em atenção a equidade no desenvolvimento de pares de segmentos

Um princípio fundamental que sustenta os produtos de AA da Google é a aprendizagem automática centrada no ser humano, uma abordagem que promove práticas de IA responsável, incluindo a equidade. O objetivo da equidade na aprendizagem automática é compreender e evitar o tratamento injusto ou prejudicial de pessoas relacionado com a raça, o rendimento, a orientação sexual, a religião, o género e outras caraterísticas historicamente associadas à discriminação e marginalização, quando e onde se manifestam em sistemas algorítmicos ou na tomada de decisões auxiliada por algoritmos. Pode ler mais no nosso guia e nestas notas justas:

  • Reveja os regulamentos na sua região e nas localizações onde a sua aplicação vai ser publicada, bem como a investigação ou as informações sobre o produto existentes no seu domínio para saber mais sobre as diretrizes legais e possíveis problemas culturais. Leia mais…

  • Considere se o seu exemplo de utilização ou produto pode afetar negativamente as oportunidades económicas ou outras oportunidades importantes na vida dos indivíduos e, em caso afirmativo , saiba mais...

  • Se tiver dados escassos sobre um subgrupo específico, certifique-se de que os dados são distribuídos de forma representativa entre os conjuntos de preparação e de teste, fazendo a divisão de preparação e teste manualmente.

  • Ao testar, pense cuidadosamente no seu domínio problemático e no seu potencial para injustiça e parcialidade. Crie casos que afetem negativamente os seus utilizadores se forem encontrados na produção e teste-os primeiro. Leia mais…

  • Se tiver um exemplo de utilização que justifique considerações de equidade, leia mais sobre como usar o seu modelo de uma forma que mitigue preconceitos ou resultados adversos. Leia mais…

  • Mais diretrizes de dados para a equidade.

Limpe dados desorganizados

Pode cometer erros ao pré-processar dados e alguns erros podem confundir realmente um modelo personalizado. Em particular, procure os seguintes problemas de dados que pode corrigir:

  • Remova segmentos de origem duplicados, especialmente se tiverem traduções de destino diferentes. A API Cloud Translation - Advanced usa apenas o primeiro exemplo visto e elimina todos os outros pares no momento da importação. Ao remover duplicados, garante que a API Cloud Translation - Advanced usa a sua tradução preferida.
  • Alinhe os segmentos de origem com os segmentos de destino corretos.
  • Faça corresponder os segmentos ao idioma especificado; por exemplo, inclua apenas segmentos em chinês num conjunto de dados em chinês.
  • Para segmentos de destino que incluem vários idiomas, verifique se as palavras não traduzidas não foram traduzidas intencionalmente, como nomes de produtos ou organizações. Os segmentos de destino que incluem palavras não traduzidas por engano adicionam ruído aos seus dados de preparação, o que pode resultar num modelo de qualidade inferior.
  • Corrija segmentos com erros tipográficos ou gramaticais para que o modelo não aprenda estes erros.
  • Remova conteúdo não traduzível, como etiquetas de marcadores de posição e etiquetas HTML. O conteúdo não traduzível pode resultar em erros de pontuação.
  • Não inclua pares de segmentos que substituam 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 alterar todas as instâncias de presidente para JFK. Em alternativa, remova estes pares de segmentos ou altere os substantivos específicos para substantivos gerais.
  • Remova segmentos duplicados nos conjuntos de preparação e de teste (consulte a secção Divisão do conjunto de dados sobre a divisão do conjunto de dados em três subconjuntos).
  • Dividir vários segmentos em diferentes pares de segmentos. A preparação num conjunto de dados em que muitos itens têm mais de cerca de 50 tokens (palavras) resulta em modelos de qualidade inferior. Divida os itens em frases individuais sempre que possível.
  • Use letras maiúsculas e minúsculas de forma consistente. O uso de maiúsculas e minúsculas afeta a forma como um modelo aprende, por exemplo, a distinguir um título do corpo do texto.
  • Remova as etiquetas TMX quando importar dados de um ficheiro TSV. Em alguns casos, pode exportar a memória de tradução existente para um ficheiro TSV, que pode incluir etiquetas TMX. No entanto, a API Cloud Translation - Advanced limpa as etiquetas de unidades de tradução apenas quando importa a partir de um ficheiro TMX (não para ficheiros TSV).

Processamento de dados

A API Cloud Translation - Advanced deixa de analisar o seu ficheiro de entrada de dados quando:

  • A formatação é inválida.
  • Existe um par de segmentos excessivamente longo (10 MB).
  • O ficheiro usa uma codificação diferente de UTF-8.

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

  • Um elemento <tu> num ficheiro TMX que não especifica o idioma de origem nem o de destino.
  • Um dos pares de segmentos de entrada está vazio.

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

  • Após o carregamento do conjunto de dados, este remove os pares de segmentos com segmentos de origem idênticos.

  • Divide aleatoriamente os seus dados em três conjuntos com uma proporção de 8:1:1 (preparação:validação:teste) antes da preparação.

Divisão do conjunto de dados

O seu conjunto de dados de pares de segmentos está dividido em três subconjuntos para preparação, validação e testes:

  • Conjunto de preparação
    A maioria dos seus dados deve estar no conjunto de preparação. Estes são os dados que o seu modelo "vê" durante a preparação: são usados para aprender os parâmetros do modelo e calcular os pesos das ligações entre os nós da rede neural.

  • Conjunto de validação
    O conjunto de validação, por vezes denominado conjunto dev, também é usado durante o processo de preparação. Durante a aprendizagem do modelo, a estrutura usa o conjunto de preparação para preparar um conjunto de modelos candidatos e, em seguida, usa o desempenho do modelo no conjunto de validação para escolher o melhor modelo gerado. Usa o desempenho do modelo no conjunto de validação para ajustar os hiperparâmetros do modelo, que são variáveis que especificam a estrutura do modelo. Se usou o conjunto de preparação para ajustar os hiperparâmetros, o modelo acabaria por estar demasiado focado nos seus dados de preparação. A utilização de um conjunto de dados algo novo para ajustar a estrutura do modelo significa que o modelo vai generalizar melhor.

  • Conjunto de testes
    O conjunto de testes não está envolvido no processo de preparação. Depois de o modelo concluir totalmente a preparação, o conjunto de testes é usado como um desafio totalmente novo para o modelo. O desempenho do seu modelo no conjunto de testes destina-se a dar-lhe uma ideia bastante precisa de como o seu modelo vai funcionar com dados reais.

Se não especificar manualmente como o seu conjunto de dados é dividido entre estas funções, conforme descrito no artigo Preparar os dados de treino, e se o seu conjunto de dados contiver menos de 100 000 pares de segmentos, a API Cloud Translation – Advanced usa automaticamente 80% dos seus documentos de conteúdo para treino, 10% para validação e 10% para testes. Se os seus dados forem superiores a esse valor, tem de especificar explicitamente como são divididos. A divisão manual dá-lhe mais controlo sobre o processo, permitindo-lhe não só determinar as percentagens de divisão, mas também especificar conjuntos particulares nos quais incluir pares de segmentos específicos.

Importar dados

Depois de decidir se uma divisão manual ou automática dos seus dados é adequada para si, existem duas formas de adicionar dados:

  • Pode importar dados como um ficheiro de valores separados por tabulação (TSV) que contenha segmentos de origem e de destino, um par de segmentos por linha.

  • Pode importar dados como um ficheiro TMX, um formato padrão para fornecer pares de segmentos a ferramentas de modelos de tradução automática (consulte o artigo Prepare os dados de preparação para saber mais sobre o formato TMX). Se um ficheiro TMX contiver etiquetas XML inválidas, a API Cloud Translation – Advanced ignora-as. Se o ficheiro TMX contiver erros de XML ou TMX, como se faltar uma etiqueta final ou um elemento <tmx>, a API Cloud Translation - Advanced termina o processamento e devolve um erro se ignorar mais de 1024 elementos `' inválidos.

Avaliação preliminar do seu modelo personalizado

Depois de o modelo ser preparado, recebe um resumo do respetivo desempenho. Clique no separador Formar para ver uma análise detalhada. A pontuação BLEU do seu modelo personalizado e do modelo NMT padrão da Google é apresentada no separador Preparar, juntamente com o aumento do desempenho da pontuação BLEU resultante da utilização do modo personalizado.

Quanto mais elevada for a pontuação BLEU, melhores traduções o modelo pode oferecer-lhe para segmentos semelhantes aos seus dados de preparação. As 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 são frequentemente mais fiáveis do que a pontuação BLEU. Para informações sobre essas opções de avaliação, consulte o artigo Avalie modelos de tradução.

Depuração

A depuração de um modelo personalizado está mais relacionada com a depuração dos dados do que do próprio modelo. Se o seu modelo não estiver a traduzir da forma pretendida, verifique os seus dados para ver onde podem ser melhorados.

Testes

Mesmo que a sua pontuação BLEU pareça aceitável, é recomendável verificar o modelo para se certificar de que o respetivo desempenho corresponde às suas expetativas. Se os dados de teste e de preparação forem extraídos do mesmo conjunto incorreto de exemplos, as classificações podem ser excelentes, mesmo que a tradução não faça sentido. Adicione alguns exemplos como entrada no separador Prever e compare os resultados do modelo personalizado com o modelo base da NMT da Google. Pode reparar que o seu modelo apresenta as mesmas previsões que o modelo base, especialmente em segmentos curtos ou se tiver um conjunto de preparação mais pequeno, uma vez que o modelo base já é bastante bom para uma grande variedade de exemplos de utilização. Nesse caso, experimente segmentos mais longos ou mais complexos. No entanto, se todos os segmentos forem idênticos às previsões do modelo base, pode indicar um problema de dados.

Se existir um erro que lhe preocupe particularmente que o seu modelo cometa (como um erro de tradução que possa ser dispendioso em termos de dinheiro ou reputação), certifique-se de que o conjunto de testes ou o procedimento abrange esse caso adequadamente para que se sinta seguro a usar o seu modelo nas tarefas diárias.

O que se segue?