Pular para o conteúdo

Design clássico · Pleno

Google Translate

Projeto de entrevista clássico. Pontos centrais: encoder-decoder, BPE/SentencePiece, BLEU e detecção de idioma.

14 min de leitura · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Projeto de entrevista clássico. Pontos centrais: encoder-decoder, BPE/SentencePiece, BLEU e detecção de idioma. A tradução automática baseada em frases (PBMT) quebra a frase de entrada em palavras e trechos que são traduzidos em grande parte de forma independente. A tradução neural (NMT) trata a frase de entrada inteira como uma unidade de tradução.

01 · CONTEXTO

Da tradução por frases à tradução neural

A tradução automática baseada em frases (PBMT) quebra a frase de entrada em palavras e trechos que são traduzidos em grande parte de forma independente. A tradução neural (NMT) trata a frase de entrada inteira como uma unidade de tradução.

O NMT enfrentava obstáculos para produção: segundo o blog de pesquisa do Google, ele não era rápido nem preciso o bastante para um serviço como o Google Translate. O relatório técnico lista três fraquezas inerentes. Uma é o treino e a inferência mais lentos; outra é a baixa robustez com palavras raras; a terceira é, às vezes, não traduzir todas as palavras da frase de origem.

Em produção, os apps web e móvel do Google Translate passaram a usar o GNMT em todas as traduções automáticas do chinês para o inglês, cerca de 18 milhões por dia. Esse par era um entre mais de 10.000 pares de idiomas do serviço. O blog atribui a viabilidade ao TensorFlow e às TPUs, que deram poder de cálculo suficiente dentro dos requisitos rígidos de latência do produto. O relatório técnico afirma ainda que a implementação não exige ajustes específicos por idioma.

Tratar a tradução como um problema de sistema de aprendizado de máquina é olhar juntos o modelo, a avaliação e o serviço que responde rápido.

Fraqueza do NMTResposta do GNMT
Treino e inferência lentosInferência em aritmética de baixa precisão, acelerada por hardware especial
Palavras rarasQuebrar as palavras em wordpieces
Palavras da origem sem traduçãoPenalidade de cobertura na busca em feixe

02 · O MODELO

Codificador, atenção e decodificador

O GNMT tem três componentes: uma rede codificadora, uma decodificadora e uma rede de atenção. O modelo é uma rede LSTM profunda com 8 camadas de codificador e 8 de decodificador, usando conexões residuais e conexões de atenção do decodificador para o codificador. A atenção liga a camada de baixo do decodificador à camada de cima do codificador, para melhorar o paralelismo e reduzir o tempo de treino.

Tradução é um problema de vocabulário aberto, com nomes, números e datas. Para tratar isso, o GNMT quebra cada palavra em wordpieces por meio de um modelo treinado e, na saída, converte a sequência de wordpieces de volta em palavras. Os wordpieces equilibram a flexibilidade de caracteres e a eficiência de palavras, e um vocabulário de 8 mil a 32 mil wordpieces deu boa acurácia em BLEU e decodificação rápida.

Usa-se um único modelo de wordpieces para o idioma de origem e o de destino. Assim, a mesma cadeia é segmentada do mesmo jeito nos dois lados, tornando o aprendizado da cópia mais fácil.

  1. Antes de entrar na rede, o texto de origem é quebrado em wordpieces por um modelo treinado.

    Diagrama da arquitetura: Tradutor neural: caminho dentro do modelo
    CLCliente
    CPSegmentador em wordpiecesquebra em wordpieces
    CPCodificador
    CPMódulo de atenção
    CPDecodificador
    CPBusca em feixe
    CPReagrupador de palavras
  2. O codificador transforma a frase de origem em uma lista de vetores, um por símbolo de entrada.

    Diagrama da arquitetura: Tradutor neural: caminho dentro do modelo
    CLCliente
    CPSegmentador em wordpieces
    CPCodificadorlista de vetores
    CPMódulo de atenção
    CPDecodificador
    CPBusca em feixe
    CPReagrupador de palavras
  3. A atenção liga codificador e decodificador e deixa o decodificador focar em regiões diferentes da origem a cada palavra gerada.

    Diagrama da arquitetura: Tradutor neural: caminho dentro do modelo
    CLCliente
    CPSegmentador em wordpieces
    CPCodificador
    CPMódulo de atençãopesos sobre a origem
    CPDecodificador
    CPBusca em feixe
    CPReagrupador de palavras
  4. O decodificador produz a saída um símbolo por vez, até gerar o símbolo de fim de frase.

    Diagrama da arquitetura: Tradutor neural: caminho dentro do modelo
    CLCliente
    CPSegmentador em wordpieces
    CPCodificador
    CPMódulo de atenção
    CPDecodificadorum símbolo por vez
    CPBusca em feixe
    CPReagrupador de palavras
  5. A busca em feixe procura a sequência de maior pontuação e a penalidade de cobertura favorece traduções que cobrem toda a origem.

    Diagrama da arquitetura: Tradutor neural: caminho dentro do modelo
    CLCliente
    CPSegmentador em wordpieces
    CPCodificador
    CPMódulo de atenção
    CPDecodificador
    CPBusca em feixepontuação
    CPReagrupador de palavras
  6. A sequência de wordpieces gerada é então convertida de volta em palavras.

    Diagrama da arquitetura: Tradutor neural: caminho dentro do modelo
    CLCliente
    CPSegmentador em wordpieces
    CPCodificador
    CPMódulo de atenção
    CPDecodificador
    CPBusca em feixe
    CPReagrupador de palavrasvolta a palavras

03 · DECODIFICAÇÃO

Escolher a melhor saída

A busca em feixe procura a sequência que maximiza uma função de pontuação. Sem normalização de comprimento, ela tende a favorecer resultados mais curtos em média. A penalidade de cobertura favorece traduções que cobrem toda a frase de origem, segundo o módulo de atenção.

Para melhorar a vazão, dá para agrupar muitas frases de comprimento parecido num mesmo lote e decodificá-las em paralelo, aproveitando hardware otimizado para paralelismo.

04 · PRODUÇÃO

Treinar e servir dentro do orçamento de latência

No treino, o sistema segue o paradigma clássico de paralelismo de dados, com 12 réplicas rodando em paralelo em máquinas separadas. Cada réplica do modelo é particionada em 8 partes, colocadas em 8 GPUs que costumam ficar numa mesma máquina.

Na inferência, usar aritmética de precisão reduzida pode diminuir bastante o custo, e no GNMT as multiplicações de matrizes rodam em inteiros de 8 bits. Nas medições do artigo, decodificar na TPU teve perda mínima em log-perplexidade e nenhuma em BLEU, e foi 3,4 vezes mais rápido que na CPU.

A CPU, por sua vez, foi 2,3 vezes mais rápida que a GPU. Os autores citam, entre os motivos, que a busca em feixe força uma transferência de dados não trivial entre o host e a GPU a cada passo de decodificação.

  1. O diagrama começa pelo aplicativo ou site e pelo balanceador de carga na entrada do serviço.

    Diagrama da arquitetura: Tradutor neural: serviço em produção
    CLAplicativo ou site
    NWBalanceador de carga
    CPServiço de tradução
    CPHost de decodificação
    CPAcelerador TPU
  2. Atrás do balanceador aparecem o serviço de tradução, o host de decodificação e o acelerador TPU.

    Diagrama da arquitetura: Tradutor neural: serviço em produção
    CLAplicativo ou site
    NWBalanceador de carga
    CPServiço de tradução
    CPHost de decodificação
    CPAcelerador TPU
  3. Na decodificação em TPU, a consulta de embeddings e o módulo de atenção ficam na CPU, e as demais operações quantizadas são enviadas à TPU.

    Diagrama da arquitetura: Tradutor neural: serviço em produção
    CLAplicativo ou site
    NWBalanceador de carga
    CPServiço de tradução
    CPHost de decodificaçãoembeddings e atenção
    CPAcelerador TPUoperações quantizadas
  4. As multiplicações de matrizes, que são as operações caras, rodam em inteiros de 8 bits.

    Diagrama da arquitetura: Tradutor neural: serviço em produção
    CLAplicativo ou site
    NWBalanceador de carga
    CPServiço de tradução
    CPHost de decodificação
    CPAcelerador TPUaritmética reduzida
  5. Nas medições do artigo, a TPU decodificou 3,4 vezes mais rápido que a CPU, com perda mínima de qualidade.

    Diagrama da arquitetura: Tradutor neural: serviço em produção
    CLAplicativo ou site
    NWBalanceador de carga
    CPServiço de tradução
    CPHost de decodificação
    CPAcelerador TPUmais rápida que a CPU
  6. Os autores usam TPUs para servir o tráfego de produção e CPUs para avaliar o modelo durante o treino.

    Diagrama da arquitetura: Tradutor neural: serviço em produção
    CLAplicativo ou site
    NWBalanceador de carga
    CPServiço de tradução
    CPHost de decodificação
    CPAcelerador TPUtráfego de produção

05 · QUALIDADE E LIMITES

Medir tradução e reconhecer o que falha

O BLEU não captura toda a qualidade de uma tradução, e por isso os autores também usam avaliação lado a lado com pessoas. Avaliadores fluentes nos dois idiomas costumam captar a qualidade melhor que o BLEU. No blog, as notas lado a lado vão de 0 a 6.

Forma de avaliarO que dizem as fontes
BLEUNão captura toda a qualidade de uma tradução
Comparação lado a ladoAvaliadores fluentes nos dois idiomas costumam captar melhor a qualidade

O refinamento por aprendizado por reforço melhorou o BLEU, mas quase não melhorou a impressão humana de qualidade.

O blog relata redução de erros de tradução de mais de 55% a 85% em vários pares de idiomas importantes, medida em frases amostradas da Wikipedia e de sites de notícias com avaliadores humanos bilíngues. Mesmo assim, o GNMT ainda comete erros que um tradutor humano não cometeria, como omitir palavras e errar nomes próprios ou termos raros, e traduz frases isoladas sem considerar o contexto do parágrafo ou da página.

Perguntas frequentes

O que é Google Translate?

Projeto de entrevista clássico. Pontos centrais: encoder-decoder, BPE/SentencePiece, BLEU e detecção de idioma.

O que o design de Google Translate cobre?

Ele está organizado nestas seções: Da tradução por frases à tradução neural, Codificador, atenção e decodificador, Escolher a melhor saída, Treinar e servir dentro do orçamento de latência e Medir tradução e reconhecer o que falha.

Quanto tempo leva Google Translate e qual é o nível?

Leva cerca de 14 minutos para ler e tem nível Pleno.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.