Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma

No mundo digital, fornecer informações em um idioma local não é novidade, mas pode ser uma tarefa tediosa e cara. Os avanços no aprendizado de máquina (ML) e no processamento de linguagem natural (NLP) tornaram essa tarefa muito mais fácil e menos cara.

Vimos uma maior adoção do ML para dados multilíngues e cargas de trabalho de processamento de documentos. Clientes corporativos e governamentais estão migrando suas cargas de trabalho de tradução manual para aproveitar os serviços de tradução de ML automatizados. Amazon Tradutor é um tradução automática neural serviço que oferece tradução de idiomas rápida, de alta qualidade e acessível entre vários milhares de pares de idiomas que podem ser usados ​​para tarefas de tradução síncrona (em tempo real) ou assíncrona. Para obter uma lista completa de pares de tradução disponíveis, consulte Idiomas e códigos de idioma suportados.

Os clientes que estão migrando e modernizando suas cargas de trabalho de tradução precisam da capacidade de personalizar as traduções para seu domínio de negócios. Uma carga de trabalho de tradução também pode precisar da capacidade de se adaptar a dialetos ou usos de idiomas regionais. Por exemplo, a tradução espanhola de “idoso” é anciano(a), mas em Porto Rico a palavra envejeciente é preferida.

Neste post, demonstramos como incorporar o recurso Active Custom Translation (ACT) do Amazon Translate. Propomos uma solução para criar um fluxo de trabalho de tradução de documentos multilíngue com personalizações específicas de domínio e idioma que você pode revisar e aumentar conforme necessário para melhorar continuamente os resultados e encantar os usuários finais.

Visão geral da solução

O ACT produz uma saída traduzida personalizada sem a necessidade de criar e manter um modelo de tradução personalizado. Usando o ACT, o Amazon Translate usará seus exemplos de tradução preferidos como dados paralelos para personalizar o resultado da tradução, eliminando o tempo e o custo necessários para criar e treinar um novo modelo de machine learning.

A solução abordada nesta postagem explica como criar um fluxo de trabalho human-in-the-loop usando IA aumentada da Amazon (Amazon A2I) para melhorar continuamente a tradução personalizada. O Amazon A2I oferece uma maneira simples de integrar a supervisão humana aos seus fluxos de trabalho de ML, sem a necessidade de experiência em ML. O Amazon A2I simplifica a integração do julgamento humano e da IA ​​em qualquer aplicativo de ML, independentemente de ser executado na AWS ou em outra plataforma.

Para obter mais informações, consulte Criando fluxos de trabalho de revisão humana com o Amazon Translate e o Amazon Augmented AI postar.

O diagrama a seguir exibe o fluxo de comando e o fluxo de dados da solução. O fluxo de comando mostra a sequência lógica de eventos no fluxo de trabalho. Um fluxo de dados indica como os dados estão sendo criados ou usados ​​por vários componentes da solução.

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

O diagrama de sequência a seguir mostra dois processos separados na solução: o fluxo de trabalho de tradução (A) e o processo para atualizar dados paralelos (B).

O fluxo de trabalho de tradução é iniciado por um Amazon CloudWatch evento agendado que inicia o Translation Job Invoker AWS Lambda função. Essa função cria um trabalho de tradução assíncrona no Amazon Translate, passando o documento a ser traduzido e o local dos dados paralelos para personalizar a tradução. O trabalho de tradução lê os dados paralelos, executa a tradução e grava o resultado traduzido de volta em um Amazon S3 balde. No momento da redação deste artigo, apenas os trabalhos de tradução assíncrona podem usar dados paralelos.

Quando o trabalho de tradução é concluído, é gerado um evento que aciona a função do Translation Job Completion Handler Lambda. Essa função cria um loop de fluxo de trabalho humano — o principal componente da parte Amazon A2I do fluxo de trabalho.

Revisores humanos avaliam a tradução e aceitam ou modificam a tradução. Quaisquer correções são usadas para atualizar o documento traduzido e também adicionadas a um dicionário de personalização. Quando a revisão é finalizada, outro evento é gerado para acionar a função Workflow Completion Handler. Essa função grava o documento traduzido mais recente no Amazon S3. Os dados de personalização são usados ​​para atualizar um Amazon DynamoDB tabela com os pares de texto fonte e traduzido.

Para fechar o ciclo, devemos incorporar esses dados de personalização armazenados no DynamoDB de volta aos dados paralelos armazenados no Amazon S3. Para fazer isso, usamos um evento agendado do CloudWatch para acionar a função Parallel Data Refresher, que lê os dados da tabela do DynamoDB, reformata-os como dados paralelos e atualiza o bucket do S3, armazenando os dados paralelos.

Implante a solução com o AWS CloudFormation

Inicie o fornecido Formação da Nuvem AWS modelo para implantar a solução em sua conta. Essa pilha funciona apenas na região us-east-1. Se você deseja implantar esta solução em outras regiões, consulte o seguinte GitHub repo.

  1. Escolha Pilha de Lançamento:
    Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  2. Siga as instruções para preencher os parâmetros necessários. Se você estiver executando esta pilha pela primeira vez, E-mail SNS é o único parâmetro obrigatório.
  3. No Avaliações página, no Empresa seção, marque a caixa de seleção e escolha Criar pilha.

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

A pilha cria os seguintes componentes principais:

  • Dados de personalização – Uma tabela do DynamoDB (translate_parallel_data) para manter os dados de personalização. Você migra os dados de customização existentes para esta tabela. Essa tabela é usada para adicionar e atualizar continuamente personalizações.
  • Atualização de dados paralelos – A função do Lambda para converter os dados de personalização na tabela do DynamoDB em um formato de dados paralelo — CSV, TSV ou TMX — e armazená-los no Amazon S3. Ele cria e atualiza dados paralelos com o novo arquivo de dados paralelos no Amazon S3.
  • Invocador do trabalho de tradução – A função do Lambda para iniciar o trabalho em lote do Amazon Translate com dados paralelos.
  • Manipulador de conclusão do trabalho de tradução – Essa função do Lambda é acionada quando o trabalho em lote do Amazon Translate é concluído. A função cria um loop humano por documento (refinaremos isso no futuro para criar um loop humano apenas para uma porcentagem selecionada de documentos processados). Ele usa os documentos originais e traduzidos para criar o loop humano.
  • Modelo personalizado Amazon A2I – Este modelo é usado para renderizar o par de tradução para revisão humana. O modelo tem o Adicionar opção para cada segmento de tradução. Os usuários podem selecionar esta opção para adicionar as correções aos dados de personalização. Os novos dados de personalização são usados ​​no próximo trabalho de tradução em lote.
  • Manipulador de conclusão de fluxo de trabalho – Essa função do Lambda é acionada quando o fluxo de trabalho humano é concluído. A função atualiza o documento traduzido com correções e verifica atualizações de dados paralelas. Novos dados paralelos são adicionados à tabela do DynamoDB.
  • Equipe privada Amazon A2I – Uma equipe privada Amazon A2I é criada com um trabalhador humano usando o e-mail fornecido. As credenciais iniciais são enviadas por e-mail após a criação bem-sucedida da equipe privada. Você usa esse e-mail e credencial para fazer login no portal do trabalhador Amazon A2I.

Teste a solução

A sample_text.txt arquivo teria sido criado sob o prefixo de entrada do bucket do S3 criado pela pilha. Usamos esse arquivo para nossos testes. Ele contém o seguinte conteúdo:

Life insurance companies have the freedom to charge different premiums based on risk
factors that predict mortality. Purchasing a life insurance policy often entails a health 
status check or medical exam, and asking for vaccination status is not banned.

Health insurers are a different story. A slew of state and federal regulations in the 
last three decades have heavily restricted their ability to use health factors in issuing 
or pricing polices. The use of health status in any group health insurance policy is 
prohibited by law. The Affordable Care Act, passed in 2014, prevents insurers from pricing 
plans according to health – with one exception: smoking status.

Para testar a solução, conclua as seguintes etapas:

  1. Invoque a função Translation Job Invoker manualmente ou espere que ela seja acionada pelo CloudWatch com base na programação cron especificada.
    Essa função aciona o trabalho em lote do Amazon Translate. Você pode observar o andamento do trabalho no console do Amazon Translate.
    Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Esse trabalho em lote leva aproximadamente 30 minutos para ser concluído. Quando estiver completo, o TextTranslationJob O evento de mudança de estado aciona a função do Processador de Conclusão do Trabalho de Tradução. Esta função cria um loop humano por documento traduzido.
  2. Navegue até a Forças de trabalho da Amazon A2I Disputas de Comerciais.
  3. Escolha o Privado aba.
    Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  4. Faça login no portal do trabalhador Amazon A2I escolhendo o link para Rotulando a URL de entrada do portal.
  5. Selecione a tarefa Human review task na lista de empregos.
  6. Escolha Comece a trabalhar.
    Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
    Você pode ver a seguinte página exibida.
    Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  7. Siga as instruções para fazer correções específicas de domínio e idioma.
    Na captura de tela anterior, a frase “O uso do estado de saúde em qualquer apólice de seguro de saúde em grupo é proibido por lei” foi traduzida para “La ley prohíbe el uso del estado de salud en cualquier póliza de seguro médico de grupo”. Embora a tradução seja precisa, as frases foram reorganizadas.
  8. Vamos modificar isso para “El uso del estado de salud en cualquier póliza de seguro de salud grupal está proibido por ley” para fazer uma tradução mais direta, refletindo a fraseologia original.
  9. Selecionar Adicionar para adicionar isso ao dicionário.
  10. Quando terminar, escolha Submeter.
    Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Isso aciona a função Workflow Completion Handler e os dados de personalização são atualizados na tabela do DynamoDB. A função também armazena a tradução corrigida sob o prefixo pós-edição.

Você pode observar as personalizações sendo adicionadas ao translate_parallel_data tabela no console do DynamoDB.

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Fluxo de comando

A função Parallel Data Refresher é acionada a cada hora por um evento agendado do CloudWatch. Esta função verifica se há novas atualizações no translate_parallel_data table, cria um novo arquivo TMX de dados paralelos no Amazon S3 no parallel_data prefixo e atualiza o componente de dados paralelos do Amazon Translate. Você pode acionar essa função manualmente se não quiser esperar pelo acionamento do evento agendado.

Você pode observar os dados paralelos sendo atualizados no console do Amazon Translate.

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Quando estiver concluído, o status do trabalho deve ser Ativo e o valor para Registros atualizados deve refletir o número de personalizações que você adicionou (neste caso 1).

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Agora podemos executar o trabalho de tradução novamente com os dados atualizados. Acione a função Translation Job Invoker novamente para observar a personalização sendo adicionada à tradução na segunda iteração. O Amazon Translate agora usa os dados paralelos fornecidos para personalizar a tradução.

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Você pode observar a mudança na saída da tradução no portal de rotulagem. Em vez da tradução padrão, vemos a tradução personalizada sendo aplicada.

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Esse fluxo de trabalho ajuda a criar um ciclo virtuoso para melhorar continuamente a saída de tradução usando os recursos de personalização do Amazon A2I e do Amazon Translate.

Custo

Com o Amazon Translate e o Amazon A2I, você paga conforme o uso com base no número de caracteres de texto processados ​​e para cada objeto revisado por humanos. Usamos o modo sob demanda do DynamoDB para este exemplo. O DynamoDB cobra pelas leituras e gravações realizadas em suas tabelas. Consulte as páginas de preços para Amazon Tradutor, Amazônia A2I e Amazon DynamoDB para custos reais.

limpar

Ao terminar de experimentar esta solução, limpe seus recursos usando o console do AWS CloudFormation para excluir todos os recursos implantados neste exemplo. Isso ajuda a evitar custos contínuos em sua conta.

Conclusão

Você pode usar a solução apresentada nesta postagem para criar um fluxo de trabalho de tradução multilíngue que usa e aumenta a personalização específica do domínio de forma incremental para melhorar continuamente os resultados da tradução. Fornecemos um mecanismo simples para integrar seus ativos de personalização existentes com serviços de IA gerenciados, como Amazon Translate e Amazon A2I, para criar um serviço de tradução robusto para seu aplicativo. O Amazon Translate pode ajudá-lo a dimensionar esta solução para oferecer suporte a mais de 5,550 pares de tradução prontos para uso. O Amazon A2I pode ajudá-lo a se integrar facilmente com seu especialista linguístico interno ou aproveitar uma força de trabalho externa para dimensionar a solução.

Para obter mais informações sobre o Amazon Translate, visite Recursos do Amazon Translate para encontrar recursos de vídeo e postagens de blog e consulte Perguntas frequentes sobre o AWS Translate. Por favor, compartilhe seus pensamentos conosco na seção de comentários, ou na seção de questões do projeto Repositório Github.


Sobre os autores

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Sathya Balakrishnan é um arquiteto de entrega de clientes sênior na equipe de serviços profissionais da AWS, especializado em soluções de dados/ML. Ele trabalha com clientes financeiros federais dos EUA. Ele é apaixonado por construir soluções pragmáticas para resolver os problemas de negócios dos clientes. Nas horas vagas, gosta de assistir filmes e fazer caminhadas com a família.

Crie um fluxo de trabalho de tradução de documentos multilíngue com personalização específica do domínio e do idioma PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Paul W. Joireman é um arquiteto de entrega ao cliente sênior em serviços profissionais na AWS, especializado em migração de aplicativos e trabalhando com clientes financeiros federais dos EUA. Paul gosta de criar soluções tecnológicas, viajar com a família e fazer caminhadas no Shenandoah National Park, desde que a caminhada termine em uma cervejaria artesanal local.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS