Beyond Pass Rate: A Multilingual, Execution-Grounded Evaluation of Open Code LLMs
Este artigo apresenta uma avaliação de grande escala, multilíngue e fundamentada em execução de nove LLMs de código aberto em mais de 2.700 problemas do LeetCode, revelando que os modelos atuais estão significativamente atrás do desempenho humano e que seus rankings e modos de falha variam substancialmente entre linguagens e dificuldades de problemas, destacando, assim, as limitações de tabelas de classificação de métrica única.
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
Imagine que você é o treinador de uma equipe de programação e precisa contratar um novo programador assistente. A maneira padrão de entrevistar candidatos é dar a eles um único enigma curto e ver se o resolvem. Se acertarem, recebem um "aprovado". Se errarem, recebem um "reprovado".
Este artigo argumenta que este método "aprovado/reprovado" é como julgar um chef apenas pela sua capacidade de ferver um ovo. Isso diz muito pouco sobre se ele consegue cozinhar uma refeição complexa, lidar com ingredientes picantes ou manter sua cozinha limpa.
Aqui está o que os pesquisadores fizeram, explicado de forma simples:
O Grande Experimento: Uma Olimpíada de Programação Massiva
Em vez de um único enigma, os pesquisadores organizaram uma "Olimpíada de Programação" massiva.
- Os Competidores: Eles convidaram 9 modelos de IA de código aberto (os "assistentes") para competir.
- A Arena: Eles utilizaram 2.707 problemas de programação gratuitos do LeetCode (um site popular para prática de programação).
- As Linguagens: Eles não usaram apenas uma linguagem (como o Inglês); eles testaram as IAs em 12 linguagens de programação diferentes (como Python, Java, C++, etc.).
- A Escala: No total, eles realizaram mais de 325.000 tentativas. Isso é como ter cada competidor tentando cada enigma em cada linguagem.
As Descobertas: É Complicado
Os pesquisadores descobriram que não existe uma única "melhor" IA. Quem vence depende inteiramente do que você está procurando.
1. O "Generalista" vs. O "Especialista"
- Yi-Coder-9B-Chat foi o performer "médio" mais consistente. Se você pedisse para ele resolver uma mistura aleatória de problemas, ele obteria o maior número de acertos no geral.
- Qwen2.5-Coder-14B-Instruct foi o especialista em "modo difícil". Ele não venceu o maior número de problemas fáceis, mas quando os enigmas ficavam realmente difíceis, esta era a IA a ser batida. Ela também conseguiu resolver a maior variedade de problemas diferentes, mesmo que não tenha acertado todos perfeitamente.
- Gemma-2-27B-IT era o "obcecado por limpeza". Embora não tenha resolvido o maior número de problemas, o código que escreveu era o mais limpo e seguia mais regras.
2. O Abismo Humano
Mesmo a melhor IA do estudo resolveu apenas cerca de 23% dos problemas corretamente, em média. Em comparação, um programador humano resolveria cerca de 57% deles. Isso significa que as IAs ainda estão longe de serem confiáveis o suficiente para trabalhar sozinhas; elas são mais como estagiários juniores que precisam de muita supervisão.
3. A Parede do "Erro de Compilação"
Os pesquisadores observaram por que as IAs falharam. Eles encontraram um padrão surpreendente: 63% das falhas aconteceram antes mesmo do código ser executado.
Pense em um carro que não liga porque o bloco do motor está rachado. Você nem consegue testar se o carro corre rápido ou devagar porque ele nem sequer liga. A maioria das IAs estava falhando porque escrevia códigos com erros básicos de sintaxe (erros de digitação, parênteses faltando) em vez de erros de lógica. Elas estavam falhando em "compilar" (transformar-se em um programa funcional) muito antes de poderem ser testadas quanto à correção.
4. O Paradoxo do "Código Limpo"
Aqui está a reviravolta: a IA que escreveu o código mais limpo (Gemma) não foi a que resolveu o maior número de problemas. Inversamente, a IA que resolveu o maior número de problemas (Qwen) escreveu códigos mais "bagunçados" e com mais avisos de uma ferramenta de limpeza de código.
- Analogia: Imagine dois alunos fazendo uma prova. O Aluno A escreve uma redação muito organizada e perfeitamente formatada, mas erra a resposta. O Aluno B escreve uma redação bagunçada, com rabiscos e palavras riscadas, mas acerta a resposta.
- O artigo mostra que "sucesso funcional" (acertar a resposta) e "qualidade estática" (escrever código limpo) são coisas diferentes. Você não pode assumir que um modelo que escreve código limpo resolverá seu problema, e um modelo que resolve seu problema pode escrever código bagunçado.
5. A Linguagem Importa
Uma IA que é ótima para escrever em Python pode ser terrível para escrever em C++. Os rankings mudaram dependendo de qual linguagem a IA era solicitada a usar. Isso prova que você não pode simplesmente dizer "O Modelo X é o melhor". Você tem que dizer "O Modelo X é o melhor para Python, mas o Modelo Y é melhor para Java".
A Conclusão Final
O artigo conclui que precisamos parar de procurar por uma única "pontuação" para julgar as IAs de programação. Assim como você não julgaria um médico apenas pela sua habilidade de dar pontos em uma ferida (ignorando sua habilidade de diagnosticar uma doença), não devemos julgar as IAs de programação apenas por uma "taxa de aprovação".
Para entender verdadeiramente essas ferramentas, precisamos observar:
- Quais linguagens elas falam bem.
- Como elas lidam com problemas difíceis.
- Se elas falham por erros de digitação ou por má lógica.
- Se o código que escrevem é limpo o suficiente para ser mantido.
Os pesquisadores construíram um banco de dados detalhado e massivo desses resultados para que outros possam ver exatamente como e por que esses modelos têm sucesso ou falham, em vez de verem apenas um número em um ranking.
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.