← Últimos artigos
💻 computer science

What Makes a Programming Problem Hard for a Language Model? An Empirical Study of Item Difficulty Across Code LLMs on Two Benchmarks

Este artigo apresenta um estudo empírico demonstrando que a dificuldade dos problemas em benchmarks de geração de código é uma métrica estável e transferível, impulsionada por características da especificação (como exemplos e comprimento do prompt) no HumanEval e pela complexidade da solução no MBPP, oferecendo insights críticos para a melhoria de benchmarking, avaliação automática e design de ferramentas educacionais à medida que as pontuações agregadas dos modelos saturam.

Autores originais: TANZIM ISLAM KHAN

Publicado 2026-07-13
📖 6 min de leitura🧠 Leitura aprofundada

Autores originais: TANZIM ISLAM KHAN

Artigo original sob licença CC BY 4.0 (https://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ê tem uma biblioteca mágica de enigmas gigantesca e convidou todo um zoológico de diferentes "solucionadores" de IA para tentar decifrá-los. Alguns solucionadores são pequenos hamsters com cérebros grandes (modelos pequenos) e outros são elefantes gigantes e superinteligentes (como o GPT-4). Geralmente, quando verificamos o quão inteligentes essas IAs são, damos a elas apenas uma única pontuação, como uma nota final na escola. Mas este artigo argumenta que uma nota única é entediante e enganosa. É como dizer que um teste de matemática é "difícil" só porque você tirou um C, sem perguntar: Quais questões foram as complicadas? Foram os problemas matemáticos longos ou aqueles sem exemplos?

O autor, Tanzim Islam Khan, decidiu parar de olhar para a nota final e começar a olhar para os próprios enigmas. Ele pegou dois conjuntos famosos de enigmas de codificação (chamados HumanEval e MBPP) e os submeteu a um experimento massivo. Ele pegou as respostas de 31 modelos de IA diferentes (variando de modelos minúsculos de 1 bilhão de parâmetros até o gigante GPT-4) e executou cada resposta individualmente em um ambiente isolado e seguro (sandbox) para ver se ela realmente funcionava. Isso são 13.400 execuções, só para constar!

A Grande Descoberta: O Que Torna um Enigma Difícil?

O artigo descobriu algo surpreendente que muda nossa forma de pensar sobre "dificuldade".

No conjunto HumanEval (os enigmas com descrições longas e muitos exemplos de respostas), a dificuldade não dependia de quão complicado era o código da solução. Dependia inteiramente de como o enigma era escrito.

  • A Pista Mágica: Se o enigma incluía exemplos práticos (como mostrar à IA: "Aqui está a entrada A, aqui está a saída B"), a IA resolvia facilmente. Quanto mais exemplos, mais fácil era.
  • A Armadilha: Se o enigma fosse longo e prolixo, ou se carecesse desses exemplos úteis, a IA tinha dificuldades, mesmo que o código necessário para resolvê-lo fosse simples.
  • A Prova: Os autores construíram uma máquina de previsão. Quando alimentaram essa máquina apenas com o texto do enigma (o prompt), ela conseguia prever o quão difícil o enigma era com um R2R^2 de 0,45 de validação cruzada, o que correspondia ao desempenho do modelo completo. Mas quando a alimentaram apenas com a complexidade do código da solução (como contar loops ou variáveis), ela mal sabia qualquer coisa (R2R^2 de 0,11).

A Reviravolta: O Outro Livro de Enigmas

Depois, eles olharam para o conjunto MBPP. Esses enigmas são diferentes; são super curtos, como sussurros de uma frase, e sem exemplos nenhum.

  • Aqui, as regras se inverteram! Como todos os enigmas pareciam iguais (curtos e vagos), o texto não dizia à IA o que fazer. Em vez disso, a dificuldade dependia de quão difícil a solução realmente era.
  • Se o código exigia lógica complexa, a IA falhava. Se o código era simples, a IA tinha sucesso.
  • A Lição: Um problema é difícil para uma IA com base no que parte das instruções é a mais variável. Se as instruções variam muito (como no HumanEval), as instruções comandam. Se as instruções são todas iguais (como no MBPP), a complexidade da resposta comanda.

O Que o Artigo Esclarece

O artigo argumenta explicitamente contra a ideia de que "um código mais difícil sempre equivale a um problema mais difícil".

  • Eles mediram a complexidade das soluções de referência (usando coisas como "complexidade ciclomática" e "volume de Halstead") e descobriram que, no HumanEval, esses números eram preditores muito mais fracos de dificuldade do que as características do prompt. Uma solução complexa não era necessariamente mais difícil de gerar se as instruções fossem claras e cheias de exemplos.
  • Eles também descartaram a ideia de que a dificuldade é apenas um acaso de quais modelos de IA você decide testar. Eles provaram que a dificuldade é uma propriedade estável do próprio problema. Quer você teste uma IA do tamanho de um hamster ou um elefante, os mesmos enigmas continuam sendo os mais difíceis e os mais fáceis. Eles até verificaram isso removendo um modelo de cada vez, e o ranking não mudou (correlação ρ0,99\rho \ge 0,99).

O Quão Certos Estamos?

Os autores estão muito confiantes, mas são cuidadosos com suas palavras.

  • Eles mediram isso diretamente, executando o código 13.400 vezes em um sandbox.
  • Eles provaram a estabilidade testando contra uma versão "fortalecida" dos testes (que possui 80 vezes mais verificações para o HumanEval e 35 vezes mais para o MBPP). Mesmo com esses testes mais rigorosos, o ranking de problemas difíceis versus fáceis permaneceu quase o mesmo (correlação ρ=0,88\rho = 0,88).
  • Eles simularam (ou melhor, reexecutaram) os resultados com configurações diferentes (como alterar a "temperatura" para tornar a IA mais aleatória) e descobriram que o ranking de dificuldade permaneceu consistente (ρ=0,87\rho = 0,87).
  • Eles sugeriram que, à medida que as IAs ficam mais inteligentes e começam a resolver quase tudo nesses testes antigos (saturação), olhar para quais problemas específicos ainda são difíceis se tornará ainda mais importante.

O Contexto Futuro

O artigo também dá uma espiada no "futuro" (conforme a linha do tempo do artigo em junho de 2026). Ele observa que as IAs mais novas e superpoderosas (como GPT-5.x e Claude Opus 4.8) basicamente pararam de usar esses enigmas antigos porque são fáceis demais para elas agora. A fronteira se moveu para tarefas de codificação do mundo real muito mais difíceis. Mas a lição permanece: conforme os problemas fáceis desaparecem, entender por que os que restam são difíceis torna-se a chave para construir melhores ferramentas.

Em Resumo

Se você quer saber se um problema de codificação é difícil para uma IA, não olhe apenas para o código que ela precisa escrever. Olhe para as instruções!

  • Instruções ricas com exemplos? A IA passará voando, não importa o quão complexo seja o código.
  • Instruções vagas ou sem exemplos? A IA terá dificuldades, mesmo que o código seja simples.
  • Instruções curtas, de uma frase? Então a complexidade do próprio código é o que torna o problema difícil.

O artigo nos dá um mapa para prever essas dificuldades sem sequer precisar rodar a IA, simplesmente lendo o enunciado do problema. É uma ferramenta para professores criarem melhores exercícios e para engenheiros construírem melhores benchmarks, garantindo que não estamos apenas testando se uma IA consegue adivinhar a resposta, mas se ela consegue realmente entender o enigma.

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.

Experimentar Digest →