Recentemente, Max Woolf, cientista de dados sênior da BuzzFeed, conduziu um experimento explorando os efeitos de solicitar repetidamente a um modelo de IA que melhorasse um código. O experimento utilizou o modelo de linguagem Claude 3.5 e um desafio de programação clássico: escrever código Python para encontrar a diferença entre o maior e o menor valor de um conjunto de um milhão de números aleatórios cuja soma seja 30.

Código Internet (1)

Nota da imagem: Imagem gerada por IA, fornecida pela Midjourney.

Na versão inicial, o código gerado pelo Claude levou 657 milissegundos para executar. No entanto, à medida que Woolf repetidamente inseria a simples instrução "escreva um código melhor (write better code)", o tempo de execução do código gerado foi reduzido para apenas 6 milissegundos, uma melhoria de 100 vezes. Esse resultado não apenas é impressionante, mas também mostra mudanças inesperadas na maneira como a IA define "código melhor".

Na quarta solicitação de "escreva um código melhor", o Claude inesperadamente transformou o código em uma estrutura semelhante a um aplicativo corporativo, adicionando características típicas de empresas, algo que Woolf não havia solicitado. Isso sugere que a IA pode estar associando "código melhor" a "software corporativo", refletindo o conhecimento absorvido durante seu treinamento.

O desenvolvedor Simon Willison analisou esse fenômeno de melhoria iterativa e acredita que o modelo de linguagem examina o código com uma perspectiva totalmente nova a cada nova solicitação. Embora cada solicitação inclua o contexto das conversas anteriores, o Claude analisa como se estivesse vendo o código pela primeira vez, permitindo melhorias contínuas.

No entanto, em tentativas com solicitações mais específicas, Woolf descobriu que, embora isso possa levar a resultados melhores mais rapidamente, ainda podem surgir pequenos erros que exigem correção humana. Portanto, ele enfatiza a importância da engenharia de prompts precisa. Embora perguntas de acompanhamento simples possam melhorar inicialmente a qualidade do código, a engenharia de prompts direcionada leva a melhorias de desempenho significativas, embora também aumente os riscos.

É importante notar que, neste experimento, o Claude ignorou algumas etapas de otimização que os desenvolvedores humanos considerariam óbvias, como a remoção de duplicatas ou a ordenação dos números primeiro. Além disso, pequenas mudanças na forma de perguntar podem afetar significativamente a saída do Claude.

Apesar dessas impressionantes melhorias de desempenho, Woolf lembra que os desenvolvedores humanos ainda são essenciais para a validação de soluções e resolução de problemas. Ele aponta que, embora o código gerado por IA não possa ser usado diretamente, sua capacidade de gerar ideias e sugestões de ferramentas merece atenção.

Destaques:

🌟 A IA melhorou o desempenho do código através de instruções repetidas, reduzindo o tempo de execução de 657 milissegundos para 6 milissegundos.

💡 A IA adicionou automaticamente recursos corporativos ao código, demonstrando sua compreensão única de "código melhor".

🛠️ A engenharia de prompts continua importante; solicitações precisas podem acelerar a geração de resultados, mas ainda requerem validação e correção por desenvolvedores humanos.