← Últimos artigos
🤖 AI

Are Large Language Models Robust in Understanding Code Against Semantics-Preserving Mutations?

Este artigo revela que, embora os Modelos de Linguagem de Grande Escala mais avançados atinjam alta precisão preditiva em tarefas de código, eles frequentemente dependem de raciocínio falho e exibem fragilidade significativa, alterando frequentemente suas previsões ao serem confrontados com mutações de código que preservam a semântica.

Autores originais: Pedro Orvalho, Marta Kwiatkowska

Publicado 2026-05-08
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Pedro Orvalho, Marta Kwiatkowska

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ê tem um aluno muito talentoso que consegue resolver problemas matemáticos complexos e escrever ensaios que soam incrivelmente inteligentes. Você pede a ele para explicar como resolveu um problema, e ele lhe conta uma história perfeita, passo a passo. Você se sente confiante de que ele realmente compreende o material.

Mas e se você dissesse a esse mesmo aluno: "Ok, agora resolva exatamente o mesmo problema, mas em vez de usar a palavra 'maçã', use a palavra 'fruta', e em vez de dizer 'adicionar', diga 'somar'"?

Se o aluno de repente ficar confuso, mudar sua resposta ou der uma explicação completamente diferente (e errada), você perceberia que ele não estava realmente entendendo a lógica da matemática. Ele apenas estava memorizando as palavras e os padrões específicos que você usou antes.

Isso é exatamente o que os pesquisadores da Universidade de Oxford descobriram sobre os Modelos de Linguagem de Grande Escala (LLMs) quando pediram a eles para entender código de computador.

A Armadilha da "Programação por Vibração"

Hoje, muitas pessoas usam ferramentas de IA para escrever código, uma tendência chamada de "programação por vibração". Confiamos nesses modelos de IA para corrigir bugs e escrever programas. Mas os pesquisadores fizeram uma pergunta assustadora: esses modelos de IA realmente entendem como o código funciona, ou são apenas muito bons em adivinhar com base em padrões?

Para descobrir, eles trataram a IA como um aluno fazendo uma prova, mas com uma reviravolta.

O Teste de "Mudança de Forma"

Os pesquisadores pegaram vários programas de computador e realizaram cinco "truques de mágica" específicos neles. Esses truques alteraram a aparência do código (a sintaxe), mas mantiveram exatamente o mesmo significado e resultado (a semântica). É como pegar uma frase, "O gato sentou-se no tapete", e reescrevê-la como "No tapete, o felino descansou". O significado é idêntico, mas as palavras são diferentes.

Os cinco truques que eles usaram foram:

  1. Renomeação de Variáveis: Mudar minha_lista para x9z2.
  2. Espelhamento de Comparações: Mudar se x > 5 para se 5 < x.
  3. Troca de Lógica: Alternar as partes "se" e "senão" de uma decisão.
  4. Conversão de Loops: Mudar um loop "para" em um loop "enquanto".
  5. Desenrolamento de Loops: Escrever manualmente os últimos passos de um loop em vez de deixar o computador repeti-los.

Os Resultados: Adivinhadores Espertos, Não Pensadores Reais

Quando os pesquisadores executaram esses testes em nove modelos de IA diferentes (incluindo os mais famosos, como GPT-5.2 e Gemini-3), eles encontraram alguns padrões preocupantes:

  • O Problema do "Raciocínio Defeituoso": Mesmo quando a IA acertava a resposta, frequentemente o fazia pelas razões erradas. Na verdade, entre 10% e 50% das vezes, a IA produzia uma resposta correta baseada em uma explicação completamente quebrada ou sem sentido. Era como um aluno que chuta a resposta certa em uma prova de matemática, mas escreve uma fórmula inventada para justificá-la.
  • O Problema da "Fragilidade": Quando o código era "transformado" usando os truques acima, o desempenho da IA despencava. Alguns modelos tiveram uma queda na precisão de até 70%.
    • Analogia: Imagine um chef que consegue cozinhar perfeitamente um bife se você disser "cozinhe a carne bovina". Mas se você disser "cozinhe a vaca", ele entra em pânico e queima a cozinha. Os modelos de IA são como esse chef; eles ficam confusos com mudanças simples na formulação, mesmo que a "refeição" (o resultado do programa) seja exatamente a mesma.
  • A Sensibilidade aos "Nomes de Variáveis": Os modelos eram surpreendentemente sensíveis aos nomes das variáveis. Mudar um nome de total para soma_total frequentemente fazia com que falhassem, embora a lógica do código fosse idêntica. Curiosamente, humanos também ficam levemente confusos com nomes ruins, mas a reação da IA foi muito mais extrema.

Os "Melhores Alunos" Também Não São Perfeitos

Os pesquisadores testaram tanto modelos gratuitos e de código aberto quanto modelos privados e caros (como GPT-5.2 e Gemini-3).

  • Os modelos caros foram os melhores em obter a resposta correta e dar boas explicações no código original.
  • No entanto, quando o código foi alterado ligeiramente, mesmo esses "melhores alunos" tropeçaram feio. Seu desempenho caiu significativamente, provando que alta precisão em um teste padrão não significa que eles realmente entendem a lógica subjacente.

A Conclusão

O artigo conclui que os modelos de IA atuais são frágeis. Eles são excelentes em reconhecer padrões e imitar o raciocínio humano, mas carecem de uma compreensão "formal" de como o código realmente funciona.

Se você pedir a eles para resolver um problema de uma maneira, eles podem acertar. Mas se você fizer a mesma pergunta de uma maneira ligeiramente diferente (mesmo que o significado seja idêntico), eles podem falhar completamente. Isso sugere que, por enquanto, não devemos confiar cegamente nesses modelos para entender código profundamente; eles são mais como papagaios muito avançados que podem recitar as respostas certas, mas nem sempre sabem por que essas respostas estão corretas.

Os pesquisadores sugerem que, para tornar a IA verdadeiramente confiável para programação, precisamos combinar seu poder de aprendizado com regras formais estritas (como um professor de matemática verificando o trabalho, não apenas a resposta) para garantir que eles não estejam apenas adivinhando.

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 →