Predicting Program Comprehension with Foundation Models of Human Cognition
Este artigo demonstra que o Centaur, um modelo de fundação da cognição humana treinado em dados psicológicos gerais, supera seu modelo base Llama 3.1 na previsão do comportamento de desenvolvedores durante a compreensão de programas, sugerindo que regularidades cognitivas aprendidas a partir de experimentos psicológicos amplos podem ser efetivamente transferidas para tarefas complexas de engenharia de software.
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ê esteja tentando adivinhar o que um amigo dirá em seguida em uma conversa. Você poderia tentar memorizar cada uma de todas as conversas que ele já teve, ou poderia tentar entender as regras gerais de como os seres humanos pensam, falam e reagem. Por décadas, pesquisadores que tentavam prever como desenvolveds de software entendem código ficaram presos no primeiro grupo: eles construíram modelos minúsculos e específicos para tarefas específicas, ou tentaram medir a "complexidade" do código, como contar o número de vírgulas em uma frase. Mas esses métodos são como tentar prever um filme inteiro olhando apenas para a cor dos sapatos dos atores — ou eles não escalam bem ou simplesmente não correspondem à realidade muito bem.
Apresentamos uma nova ideia do mundo da psicologia. Em vez de construir um modelo apenas para programação, e se treinássemos um modelo sobre como os humanos agem em todos os tipos de situações? Foi exatamente isso que os pesquisadores deste artigo fizeram. Eles pegaram uma IA superinteligente chamada Centaur, que havia sido treinada com dados de 160 experimentos psicológicos diferentes (como jogos de memória ou enigmas de tomada de decisão), e fizeram uma grande pergunta: será que este "simulador de cérebro humano geral" consegue entender como desenvolvedores leem código, mesmo sem ter visto uma única linha de código durante seu treinamento?
A Grande Descoberta
A resposta, sugere o artigo, é um ressonante "sim". Quando testaram o Centaur contra 9 estudos diferentes envolvendo desenvolvedores reais lendo código, o Centaur previu como os humanos responderiam muito melhor do que seu "modelo pai", o Llama 3.1, que não havia sido treinado naqueles experimentos psicológicos. Na verdade, em todos os testes, as previsões do Centaur foram significativamente mais próximas do comportamento humano. Pense nisso desta forma: o Llama 3.1 é um aluno brilhante que conhece muitos fatos, mas não aprendeu como as pessoas realmente pensam. O Centaur é esse mesmo aluno, mas após cursar um semestre de "Comportamento Humano 101", ele de repente entende como as pessoas reagem, mesmo em um assunto totalmente novo como a programação.
O Que NÃO É
Aqui está a parte mais importante: o artigo exclui explicitamente algumas coisas.
- Não é apenas sobre adivinhar a resposta. Os pesquisadores estavam preocupados que o Centaur pudesse ser apenas bom em adivinhar respostas comuns (como "Sim" ou "Não") porque viu essas respostas muitas vezes em seu treinamento. Mas eles provaram que isso é falso. Quando removeram o código e as instruções da tarefa, o Centaur não apenas dependeu de "vieses de resposta". Ele na verdade ficou melhor em usar o próprio código e as descrições da tarefa para descobrir a resposta.
- Não é uma bola de cristal mágica. O artigo é cuidadoso ao dizer que isso é uma "sugestão" e uma "transferência" de padrões, não uma teoria final e resolvida da mente humana. Eles descobriram que, para alguns padrões de código complicados e confusos (chamados de "Átomos de Confusão"), o Centaur não era tão bom quanto o Llama. Isso sugere que, embora o pensamento humano geral ajude, ainda existem algumas peculiaridades de codificação muito específicas que o modelo ainda não aprendeu.
Como Eles Testaram
Para ter certeza, os pesquisadores jogaram um jogo de "retirar". Eles alimentaram os modelos com o mesmo código e perguntas, mas removeram diferentes partes da informação:
- O Código: Os trechos de programação reais.
- As Instruções: O texto explicando o que fazer.
- O Histórico: O que o desenvolvedor fez em perguntas anteriores.
Eles descobriram que o Centaur dependia menos do histórico de respostas anteriores (o que o Llama adorava usar) e mais do código e das instruções reais. Isso é uma pista enorme: significa que o Centaur aprendeu uma maneira mais profunda de entender a tarefa, em vez de apenas seguir um padrão de "o que eu disse da última vez?".
Os Números
Os resultados foram medidos usando uma pontuação chamada "log-verossimilhança negativa" (negative log likelihood), onde menor é melhor. Em todos os estudos, o Centau alcançou uma pontuação média de 1,63, enquanto o Llama 3.1 marcou 1,85. Em 7 dos 9 estudos analisados, o Centaur foi significativamente melhor. A diferença não foi apenas um acaso ínfimo; o "tamanho do efeito" estatístico foi de 0,17, o que o artigo nota ser uma melhoria real e mensurável.
A Conclusão
Este artigo não afirma ter resolvido o mistério de como os desenvolvedores pensam. Em vez disso, sugere um novo e poderoso caminho a seguir. Ele mostra que a maneira como os humanos entendem o código não é um superpoder estranho e isolado; ela é construída sobre as mesmas regras cognitivas gerais que nos ajudam a jogar jogos de memória ou tomar decisões em outras partes da vida. Ao treinar a IA no comportamento humano geral, podemos finalmente obter uma ferramenta que consiga prever como os desenvolvedores terão dificuldades com o código, não apenas contando linhas, mas entendendo a mente humana por trás do teclado. É um passo em direção a um futuro onde poderemos construir ferramentas de software que sejam verdadeiramente "conscientes do humano", fundamentadas na ciência de como realmente pensamos.
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.