Alguns peritos da indústria afirmam que a IA generativa irá em breve substituir os programadores humanos. Com ferramentas como o GitHub Copilot e startups de programação que usam IA, pode parecer que a Inteligência Artificial já tem um impacto significativo na engenharia de software. No entanto, um novo estudo sugere que a IA ainda tem um grande caminho a percorrer antes de conseguir substituir os programadores humanos.
O estudo da Microsoft Research reconhece que, embora as ferramentas de programação com IA actuais consigam aumentar a produtividade de quem as usa ao sugerir exemplos, são limitadas na procura activa de nova informação ou na interacção com a execução do código quando essas soluções falham. No entanto, os programadores humanos realizam rotineiramente essas tarefas ao depurar o código, o que põe em evidência uma lacuna significativa nas capacidades da IA.
A Microsoft introduziu um novo ambiente chamado debug-gym para explorar e abordar esses desafios. Esta plataforma permite que modelos de IA depurem código usado no mundo real através de ferramentas semelhantes às que os programadores usam, permitindo o comportamento de procura de informação essencial para uma depuração eficaz.
A Microsoft testou o desempenho de um agente de IA simples, construído com modelos de linguagem existentes, na depuração de código através do debug-gym. Embora os resultados tenham sido promissores, ainda são limitados. Apesar de terem acesso a ferramentas de depuração interactivas, os agentes baseados em prompts raramente conseguiram resolver mais de metade das tarefas nos benchmarks. Isto está longe do nível de competência necessário para substituir engenheiros humanos.
A investigação identifica duas questões-chave. Primeiro, os dados de treino para os LLM actuais carecem de exemplos suficientes do comportamento típico no processo de tomada de decisão típico em sessões reais de depuração de código. Segundo, os modelos ainda não são capazes de utilizar todo o potencial das ferramentas de depuração de código.
“Acreditamos que isto se deve à escassez de dados que representam o comportamento sequencial de tomada de decisão (por exemplo, rastreios de depuração) no corpus de treino de LLM actual”, dizem os investigadores.
Claro que a inteligência artificial está a avançar rapidamente. A Microsoft acredita que os modelos de linguagem podem tornar-se depuradores muito mais capazes com as abordagens de treino focadas certas ao longo do tempo. Uma abordagem que os investigadores sugerem é a criação de dados de treino especializados focados em processos e trajectórias de depuração. Por exemplo, propõem o desenvolvimento de um modelo de “busca de informação” que recolha o contexto de depuração relevante e o transmita a um modelo de geração de código maior.
As conclusões alinham-se com estudos anteriores, mostrando que, embora a Inteligência Artificial possa ocasionalmente gerar aplicações aparentemente funcionais para tarefas específicas, o código resultante contém frequentemente bugs e vulnerabilidades de segurança. Até que a inteligência artificial consiga lidar com depuração de código, uma tarefa central no desenvolvimento de software, permanecerá um assistente – não substituiu ninguém.