A localização em produção traduz parágrafos e strings isolados. Um pipeline de CI/CD faz diff em relação à versão anterior e retraduz o que mudou — uma string de UI, uma tooltip, um parágrafo alterado. Cada solicitação chega ao LLM de forma isolada — sem a página ao redor, sem o contexto completo do documento, sem nenhum sinal de que aquele texto é prosa jurídica da UE ou copy de marketing. Sem contexto de domínio injetado no momento da inferência, cada solicitação isolada vira uma nova oportunidade para desvio terminológico.
Localização aumentada por recuperação (RAL) elimina essa lacuna ao enriquecer cada solicitação de tradução com termos de glossário, regras de voz da marca e instruções específicas do idioma no momento da inferência — o mesmo padrão de recuperar e injetar por trás de Retrieval Augmented Generation (RAG). Em uma avaliação controlada com cinco provedores de LLM e cinco idiomas europeus, a RAL reduziu os erros terminológicos em 16,6-44,6%.
Principais conclusões:
- A RAL reduziu os erros terminológicos em 16,6-44,6% nos cinco provedores de LLM testados
- As pontuações holísticas de qualidade (GEMBA-DA) não conseguiram detectar essas diferenças. Deltas de 0,0007-0,0178, enquanto o MQM contabilizou milhares de erros a menos
- Os modelos com pontuações terminológicas iniciais mais baixas foram os que mais ganharam: Mistral (-44,6%) e Deepseek (-42,1%) vs. Anthropic (-24,4%) e Google (-16,6%)
- O português apresentou a maior melhora por idioma; o francês, a menor — quanto mais a terminologia de domínio diverge dos dados de treinamento, mais a RAL ajuda
O problema do isolamento#
A unidade da localização em produção é pequena: um parágrafo, uma string, um diff. Raramente passa de 200 palavras. Muitas vezes fica abaixo de 50. Um arquivo JSON de idioma contém chaves individuais, cada uma com uma frase ou sentença. Uma página de CMS é composta de blocos, cada um traduzido de forma independente.
Quando o modelo encontra "provider" em um parágrafo isolado em inglês, ele precisa decidir: em português, isso é "fornecedor" (a palavra mais comum) ou "prestador" (o termo jurídico oficial da UE)? Sem contexto de domínio, ele escolhe a opção mais comum. Multiplique isso por cada termo específico de domínio em cada idioma, e o desvio terminológico passa a ser o padrão.
Nos propusemos a medir exatamente o tamanho dessa lacuna — e se injetar contexto de glossário no momento da inferência é suficiente para fechá-la.
A primeira tentativa não mostrou nada#
Nosso experimento inicial usou 37 termos de glossário por par de idiomas e avaliou as traduções no nível do artigo — cada artigo (200-700 palavras) foi avaliado como uma única unidade. Os resultados: GEMBA-DA — o prompt holístico de qualidade vencedor do WMT23 — reportou 0,952 para raw e 0,952 para configurado. A anotação de erros MQM produziu pontuações de 0,985-0,999 para todas as traduções. Nenhum sinal. Nenhuma diferença. Em todas as métricas, a saída raw e a saída aumentada com glossário eram idênticas.
Quase publicamos um resultado nulo. Então fomos entender o porquê.
Dois problemas. Primeiro, 37 termos de glossário eram poucos demais — muitos parágrafos de teste não continham nenhuma ocorrência do glossário, então o engine configurado não tinha vantagem. Segundo, a pontuação no nível do artigo comprime matematicamente as diferenças de qualidade em ruído. As pontuações de MQM são calculadas como 1 - penalty / wordCount. Um único erro terminológico grave em um artigo de 500 palavras: 1 - 5/500 = 0.99. O mesmo erro em um parágrafo de 50 palavras: 1 - 5/50 = 0.90. O erro é idêntico. A pontuação, não. No nível do artigo, toda diferença real de qualidade desaparece acima de 0,98.
Isso não é só um problema de medição do nosso estudo. Vale para qualquer benchmark de tradução que avalie no nível da página ou do artigo. Os erros estão lá. A métrica é que não consegue enxergá-los.
Mudamos a lente#
Na segunda iteração, fizemos quatro mudanças.
Primeiro, expandimos o glossário de 37 para 72 termos por par de idiomas — extraídos de um conjunto de treinamento de artigos, separado do conjunto de teste usado na avaliação. Segundo, passamos a pontuar no nível do parágrafo (50-200 palavras), alinhando a avaliação à unidade real da tradução em produção. Terceiro, adicionamos traduções de referência humanas ao prompt de pontuação MQM para que os avaliadores pudessem comparar a terminologia diretamente. Quarto, reduzimos o número de avaliadores de seis para quatro. Deepseek e QWEN sinalizaram apenas 1-3 erros por parágrafo, contra 5-15 dos avaliadores mais rigorosos — permissivos demais para acrescentar sinal.
O sinal apareceu imediatamente.
Desenho do estudo#
Conjunto de dados. Queríamos o tipo de texto com maior densidade terminológica disponível para colocar a injeção de glossário à prova em condições exigentes. A Lei de IA da UE (Regulamento 2024/1689) era ideal: texto regulatório formal em que cada parágrafo traz termos com traduções específicas oficialmente definidas. O EUR-Lex publica traduções humanas oficiais em todos os cinco idiomas-alvo, permitindo pontuação parágrafo por parágrafo em relação ao ground truth. Foram 15 artigos, do inglês para alemão, francês, espanhol, português e italiano.
Engines. Cada provedor foi testado em duas configurações de engine de localização: um engine raw (o LLM sozinho — sem glossário, sem recuperação, traduzindo apenas com base no conhecimento de treinamento) e um engine aumentado com RAL (o mesmo modelo, com glossário de domínio, perfil de voz da marca e instruções específicas do idioma aplicados no momento da inferência). Dez engines no total, compartilhando a mesma configuração em todos os engines aumentados com RAL.
| Provedor | Modelo | Engine raw | Engine RAL |
|---|---|---|---|
| Anthropic | claude-opus-4.6 | apenas o modelo | glossário + voz da marca + instruções |
| OpenAI | gpt-5.4 | apenas o modelo | glossário + voz da marca + instruções |
| gemini-3.1-pro-preview | apenas o modelo | glossário + voz da marca + instruções | |
| Mistral | mistral-large-2512 | apenas o modelo | glossário + voz da marca + instruções |
| Deepseek | deepseek-v3.2 | apenas o modelo | glossário + voz da marca + instruções |
O QWEN foi incluído inicialmente, mas removido do conjunto final — as traduções eram lentas e pouco confiáveis, o mesmo problema que o desqualificou como avaliador.
Configuração de RAL. Cada engine aumentado continha 72 termos de glossário por par de idiomas (70 traduções personalizadas mais 2 não traduzíveis), um perfil de voz da marca (registro regulatório formal da UE) e 13 instruções específicas do idioma. Os termos do glossário foram extraídos de um conjunto de treinamento de artigos separado do conjunto de teste usado na avaliação. Exemplos de entradas: EN "provider" → PT "prestador" (não "fornecedor"); EN "high-risk AI system" → PT "sistema de IA de risco elevado" (não "sistema de IA de alto risco"). No momento da inferência, apenas os termos que correspondem ao parágrafo atual são recuperados e passados ao modelo — o tamanho do glossário não infla a janela de contexto. Os engines foram configurados no Lingo.dev como engines de localização com estado — contexto persistente aplicado a cada solicitação.
Pontuação. Cada parágrafo traduzido foi pontuado por quatro avaliadores LLM, com a média usada para suavizar o viés individual de cada avaliador. Cada avaliador pontua as saídas de todos os provedores, não apenas as suas:
| Avaliador | Modelo |
|---|---|
| Anthropic | claude-sonnet-4.6 |
| OpenAI | gpt-4.1 |
| gemini-2.5-flash | |
| Mistral | mistral-large-2512 |
GEMBA-MQM. MQM (Multidimensional Quality Metrics) é um framework padrão para avaliação da qualidade de tradução — normalmente realizada por anotadores humanos treinados. GEMBA-MQM, o método de avaliação vencedor do WMT23, substitui anotadores humanos por um LLM, seguindo o mesmo protocolo MQM: o avaliador lê a tradução e sinaliza cada erro, atribuindo a cada um uma categoria e um nível de severidade.
Categorias de erro: precisão, fluência, estilo, terminologia. Os pesos de severidade seguem o padrão oficial do MQM: menor = 1, grave = 5, crítico = 25.
Pontuação de MQM por parágrafo: max(0, 1 - weighted penalty / word count). Um parágrafo de 50 palavras com um erro terminológico grave recebe pontuação 1 - 5/50 = 0.90. Um parágrafo perfeito recebe 1,0. As contagens de erros nas tabelas de resultados são somadas entre os quatro avaliadores e todos os parágrafos de um determinado provedor e idioma.
Uma mudança em relação ao prompt padrão do GEMBA-MQM: adicionamos a tradução de referência humana. O GEMBA-MQM é, por design, livre de referência — o avaliador avalia a qualidade sem ver a resposta "correta". Adicionamos referências porque o EUR-Lex publica traduções oficiais da Lei de IA da UE em todos os cinco idiomas-alvo, dando aos avaliadores um ground truth com o qual comparar a terminologia.
GEMBA-DA. Uma pontuação holística de qualidade de 0 a 1 usando o prompt GEMBA-DA (também vencedor do WMT23). Ao contrário do MQM, ele produz uma única pontuação sem anotações de erros. Nós o incluímos como uma verificação de sanidade — e, como os resultados mostram, ele não consegue detectar diferenças no nível da terminologia.
O Deepseek foi excluído do painel de avaliadores devido a pontuações excessivamente permissivas (1-3 erros por parágrafo vs. 5-15 dos avaliadores mais rigorosos). A média entre quatro avaliadores suaviza o viés individual, e a melhora relativa entre raw e RAL é consistente em cada avaliador.
Tamanho da amostra. 535 observações pareadas de parágrafos por provedor (107 parágrafos × 5 idiomas). Mais de 42.000 julgamentos individuais de qualidade no total (535 parágrafos × 5 provedores × 2 configurações × 8 pontuações cada).
Erros terminológicos caem 16,6-44,6%#
| Provedor | Erros raw | Erros RAL | Redução |
|---|---|---|---|
| Mistral | 3,336 | 1,847 | -44.6% |
| Deepseek | 3,672 | 2,127 | -42.1% |
| OpenAI | 2,276 | 1,508 | -33.7% |
| Anthropic | 1,559 | 1,179 | -24.4% |
| 1,901 | 1,586 | -16.6% |
Contagens de erros terminológicos de MQM em 15 artigos, 5 idiomas e 4 avaliadores.
A melhora acompanhou de forma inversa a pontuação inicial. Mistral e Deepseek — com as maiores contagens de erros raw — registraram reduções de 42,1-44,6%. Anthropic e Google — que já refletiam mais terminologia jurídica da UE no treinamento — tiveram ganhos menores. O padrão é claro: a RAL compensa o que o modelo ainda não sabe.
Enquanto isso, o GEMBA-DA — a pontuação holística — reportou um delta de 0,0007-0,0178 entre raw e RAL em todos os provedores. As mesmas traduções que o MQM sinalizou por terem 16,6-44,6% mais erros terminológicos receberam pontuações holísticas quase idênticas. Essa é a lacuna de medição: a avaliação holística, em qualquer granularidade, não consegue detectar diferenças de qualidade no nível da terminologia.
O total de erros (todas as categorias do MQM) mostrou uma redução menor, mas consistente, nos cinco provedores:
| Provedor | Total bruto | Total com RAL | Variação |
|---|---|---|---|
| Deepseek | 10,423 | 9,014 | -13.5% |
| Mistral | 8,846 | 7,812 | -11.7% |
| OpenAI | 7,563 | 7,155 | -5.4% |
| 7,793 | 7,545 | -3.2% | |
| Anthropic | 6,232 | 6,039 | -3.1% |
A diferença entre a redução de erros de terminologia (16.6-44.6%) e a redução total (3.1-13.5%) se explica, em grande parte, pelo estilo. Juízes baseados em LLM tendem a marcar um texto como "estranho" quando ele foge das preferências aprendidas nos dados de treinamento, mesmo quando esse desvio o aproxima da referência oficial — uma limitação conhecida como viés de autopreferência. Terminologia e precisão são ancoradas na referência; já o estilo não tem outra âncora além da própria percepção do juiz sobre o que soa natural.
Significância estatística#
A redução de erros de terminologia foi testada por provedor com um teste de postos sinalizados de Wilcoxon pareado (unilateral, com correção de Holm-Bonferroni aplicada aos cinco provedores). As contagens de erros de terminologia por parágrafo foram somadas entre quatro juízes e, em seguida, pareadas por parágrafo (mesma origem, mesmos juízes, bruto vs. RAL).
| Provedor | Parágrafos pareados | Redução média por parágrafo | IC de 95% | d de Cohen | p (ajustado) |
|---|---|---|---|---|---|
| Mistral | 532 | 2.80 | [2.42, 3.21] | 0.60 | < 0.001 |
| Deepseek | 526 | 2.94 | [2.45, 3.44] | 0.50 | < 0.001 |
| OpenAI | 535 | 1.44 | [1.12, 1.77] | 0.37 | < 0.001 |
| Anthropic | 533 | 0.71 | [0.50, 0.93] | 0.28 | < 0.001 |
| 533 | 0.59 | [0.34, 0.85] | 0.20 | < 0.001 |
Os cinco provedores mostram reduções estatisticamente significativas nos erros de terminologia (p < 0.001 após a correção de Holm-Bonferroni para comparações múltiplas), com intervalos de confiança de 95% que excluem zero. Os tamanhos de efeito vão de médio a grande (Mistral, d = 0.60) a pequeno (Google, d = 0.20) — em linha com o padrão de que modelos com menor cobertura terminológica de base se beneficiam mais do RAL.
Onde o RAL faz mais diferença#
O português apresentou os maiores ganhos em terminologia em todos os provedores. A terminologia jurídica em português diverge bastante do português do dia a dia, e os termos jurídicos da UE em português estão sub-representados nos dados de treinamento das LLMs. Já o francês apresentou os menores ganhos — os termos jurídicos em francês estão bem representados nos corpora de treinamento.
Estudo de caso: OpenAI em português
A saída bruta da OpenAI traduziu o AI Act da UE para o português usando "alto risco" 71 vezes (o coloquial "high risk"), "fornecedores" 39 vezes e "fornecedor" 36 vezes. As traduções oficiais do EUR-Lex usam "risco elevado" e "prestadores". Com RAL, os erros de terminologia no português da OpenAI caíram de 648 para 266 — uma redução de 59%.
O padrão se repete: idiomas cuja terminologia de domínio está mais distante da distribuição de treinamento da LLM se beneficiam mais do RAL.
O mecanismo#
O mecanismo por trás disso é simples. No momento da inferência, a engine decompõe o texto de entrada em frases n-gram e gera embeddings para elas. Em seguida, faz uma busca por similaridade de cosseno no índice vetorial do glossário para encontrar os termos correspondentes. Esses termos são injetados na janela de contexto da LLM junto com o texto-fonte. O modelo não "adivinha" "fornecedor" ou "prestador" — ele vê o mapeamento correto no contexto e o usa. Estruturalmente, é idêntico a RAG: embed, retrieve, inject, generate.
Ranking dos provedores por qualidade bruta#
Sem RAL — apenas a saída bruta do modelo:
| Posição | Provedor | MQM médio |
|---|---|---|
| 1 | Anthropic | 0.955 |
| 2 | OpenAI | 0.942 |
| 3 | 0.938 | |
| 4 | Mistral | 0.915 |
| 5 | Deepseek | 0.883 |
A diferença de 0.072 entre Anthropic e Deepseek representa cerca de 3-4 erros adicionais por parágrafo de 100 palavras. O RAL reduziu essa distância: o Mistral com RAL (média de 0.940) se aproximou da qualidade bruta do Google (0.938). Um modelo com uma fração do custo por token, reforçado com um glossário de 72 termos, igualou a precisão terminológica de um modelo mais caro sem esse apoio.
O que isso significa em produção#
A diferença de qualidade entre a saída bruta de uma LLM e uma localização pronta para produção é um problema de contexto — e ele se acumula. Depois de dez releases sem RAL, três traduções erradas diferentes de "provider" passam a coexistir no produto.
O RAL rompe esse padrão. O glossário é persistente — ele se aplica a toda solicitação, independentemente do que mudou. O glossário de 72 termos que reduziu os erros em 16.6-44.6% no nosso estudo não é uma melhoria pontual. É uma camada de consistência em cada solicitação de tradução ao longo de toda a vida do produto.
Duas conclusões para equipes que colocam traduções com LLM em produção: primeiro, pontuações holísticas de qualidade não conseguem detectar problemas no nível da terminologia. O GEMBA-DA — método vencedor da WMT23 — atribuiu às traduções brutas e às traduções com RAL pontuações com diferença de apenas 0.0007-0.0178 entre si. O MQM registrou 16.6-44.6% menos erros de terminologia. Se você avalia no nível da página com uma única pontuação, não está vendo o quadro completo.
Segundo, a solução é mais simples do que o problema faz parecer. Um glossário de domínio injetado no momento da inferência reduziu os erros de terminologia em todos os provedores que testamos. Até o modelo que melhor traduz (Anthropic, MQM 0.955) melhorou. E o modelo com a maior taxa de erro de base (Deepseek, MQM 0.883) foi o que mais evoluiu.
RAL está para localização assim como RAG está para geração: a camada de engenharia entre o modelo e a produção.

