Large Language Models for Code Generation from Multilingual Prompts: A Curated Benchmark and a Study on Code Quality
Este artigo introduz um benchmark multilíngue curado e apresenta um estudo demonstrando que o idioma utilizado nos prompts influencia significativamente a correção funcional, a qualidade estrutural e as características lexicais do código gerado por LLMs, revelando que prompts em inglês não produzem consistentemente os melhores resultados e que o impacto varia entre diferentes modelos e linguagens de programação.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
O Grande Experimento do Tradutor de Código
Imagine que você tem um amigo robô superinteligente que sabe construir qualquer coisa, desde uma simples casinha de passarinho até uma nave espacial complexa. Este robô, chamado de Modelo de Linguagem de Grande Escala (ou LLM), leu quase tudo o que já foi escrito na internet, incluindo milhões de linhas de código de computador. Como ele leu tanto, é incrivelmente bom em seguir instruções para escrever novos códigos para nós. Geralmente, conversamos com este robô em inglês porque essa é a língua na qual a maior parte do código que ele aprendeu foi escrita. Mas e se você pedisse ao robô para construir uma nave espacial usando instruções em espanhol, hindi ou chinês? O robô ficaria confuso? A nave espacial se despedaçaria? Ou ele construiria exatamente a mesma coisa, apenas com um sotaque diferente?
Esta é a grande questão por trás de um novo estudo realizado por uma equipe de pesquisadores. Eles queriam ver se a língua que usamos para falar com esses robôs de IA muda a qualidade do código que eles escrevem. No mundo da engenharia de software, "código" é o conjunto de instruções que diz ao computador o que fazer. "Corretude" significa que o código realmente funciona e passa em todos os testes, como uma ponte que suporta um carro sem desabar. "Qualidade" é algo um pouco mais amplo; significa que o código é fácil de ler, segue as regras do bairro (como não deixar lixo na calçada) e não possui armadilhas ocultas que poderiam quebrar mais tarde. Os pesquisadores estavam curiosos para saber se pedir uma ponte em uma língua diferente do inglês faria o robô construir uma ponte bamba, ou se o robô é tão bom para construir em qualquer língua.
O Experimento: Um Desafio de Codificação Multilíngue
Para descobrir, os pesquisadores organizaram um enorme concurso de codificação. Eles pegaram 460 tarefas de programação diferentes — 230 para Python e 230 para Java — de um benchmark famoso chamado CoderEval. Estas não eram apenas tarefas simples de "imprimir olá"; eram desafios do mundo real que exigiam que a IA resolvesse problemas, manipulasse dados e construísse estruturas.
Então, fizeram algo inteligente. Em vez de apenas pedir à IA em inglês, eles traduziram essas 460 tarefas para outras quatro línguas: chinês, hindi, espanhol e italiano. Mas eles não usaram apenas um tradutor automático rápido. Eles tiveram falantes nativos que são especialistas em ciência da computação revisando e corrigindo manualmente cada uma das traduções. Eles queriam garantir que as instruções fossem perfeitas e naturais, exatamente como um humano pedindo ajuda a um amigo.
Em seguida, alimentaram essas instruções traduzidas em três dos robôs de IA mais poderosos disponíveis hoje: GPT-4o mini, DeepSeek e Claude. Pediram a cada robô para resolver os mesmos 460 problemas em todas as cinco línguas (inglês mais as outras quatro). No total, geraram milhares de pedaços de código para comparar.
A Grande Surpresa: O Inglês Nem Sempre é Rei
Os resultados foram um pouco chocantes. A crença comum era que, se você pedisse à IA em inglês, obteria o melhor código porque essa é a língua que a IA mais estudou. Mas o estudo descobriu que isso nem sempre é verdade.
De fato, para tarefas de Python, pedir à IA em chinês levou a resultados melhores do que pedir em inglês! O código gerado a partir de prompts em chinês passou em mais testes e funcionou de forma mais confiável. É como pedir a um chef para cozinhar um prato; às vezes, dar a receita em uma língua diferente faz o chef pensar em uma maneira melhor de cozinhar. No entanto, essa "vantagem do chinês" não aconteceu para todos os robôs ou para todos os tipos de tarefas. Para Java, os resultados foram mais mistos e nenhum idioma foi claramente o vencedor. A principal conclusão é que falar inglês com uma IA não garante o melhor código, e falar outro idioma não significa automaticamente que o código será pior.
O Código Parece Diferente, Mas É Pior?
Os pesquisadores também observaram a "qualidade" do código, não apenas se ele funcionava. Eles verificaram coisas como:
- Complexidade: O código é uma bagunça emaranhada ou uma linha reta?
- Comentários: O robô explicou o que estava fazendo?
- Avisos: O código quebrou alguma regra ou pareceu desorganizado?
Eles descobriram que o código gerado em línguas não inglesas não era necessariamente "ruim". Ele apenas parecia diferente. Por exemplo, o código escrito a partir de prompts em chinês frequentemente tinha mais comentários, como se o rob em estivesse tentando ser extra prestativo. O código de prompts em hindi às vezes tinha mais erros de estilo, como pontuação ausente ou espaçamento estranho, mas estes eram geralmente problemas pequenos que poderiam ser facilmente corrigidos.
Uma descoberta interessante foi sobre o hindi. Quando a IA era solicitada a codificar em hindi, ela às vezes produzia um código um pouco mais arriscado, com mais potenciais bugs ou lógica confusa. Mas para o espanhol e o italiano, o código era geralmente tão bom quanto a versão em inglês, às vezes até melhor em termos de evitar certos erros.
O Problema do "Mistura e Combinação"
É aqui que as coisas ficam um pouco confusas. Embora a lógica do código possa ser ótima, as palavras dentro do código eram frequentemente uma mistura confusa. Os pesquisadores descobriram que, mesmo quando você pedia à IA em espanhol ou chinês, o robô frequentemente escrevia os comentários (as notas explicando o código) e os nomes das variáveis (os rótulos para os dados) em inglês.
É como pedir a um chef para escrever uma receita em italiano, mas ele escreve a lista de ingredientes em inglês e as instruções em uma mistura de ambos. Os pesquisadores descobriram que a IA é muito inconsistente. Às vezes ela segue o seu idioma, às vezes não. Isso é um problema para equipes de desenvolvedores que precisam que seu código esteja em uma língua consistente para que todos possam entender. O estudo sugere que apenas pedir o código em um idioma específico não é suficiente; você pode precisar ser muito específico ao dizer ao robô para manter as notas e os rótulos no mesmo idioma.
O Que Isso Significa Para Nós?
O estudo conclui que não precisamos ter medo de usar nossas línguas nativas para falar com assistentes de codificação de IA. Você pode pedir código em espanhol, chinês ou hindi sem se preocupar que o robô falhe. Em alguns casos, como em Python, você pode até obter resultados melhores!
No entanto, há duas coisas para ficar atento:
- A Questão do "Estilo": O código pode ter mais pequenos erros de formatação (como vírgulas ausentes ou linhas longas) quando escrito em línguas não inglesas. Mas estes são fáceis de corrigir com ferramentas automatizadas.
- A Questão da "Mistura de Idiomas": A IA pode não manter os comentários e os rótulos no idioma que você pediu. Se você precisa de tudo em um único idioma, pode precisar conferir o código ou dar instruções extras à IA.
No geral, esta pesquisa mostra que a IA está se tornando mais flexível. Ela pode entender e construir coisas em muitas línguas, quebrando a barreira que costumava forçar todos a falar inglês para obter um bom código. Mas, como qualquer nova ferramenta, ela tem suas peculiaridades, e precisamos aprender como trabalhar com elas para obter os melhores resultados.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.