
Uma equipe de pesquisadores acaba de publicar um mapa abrangente dos desafios enfrentados pela inteligência artificial (IA) no desenvolvimento de software e propôs um roteiro de pesquisa para levar o campo ainda mais longe.
Imagine um futuro em que a IA silenciosamente assume as tarefas mundanas do desenvolvimento de software: refatorar códigos complexos, migrar sistemas legados e identificar condições de corrida, deixando engenheiros de software humanos livres para se concentrarem na arquitetura de sistemas, no design e em problemas criativos que as máquinas ainda não conseguem resolver. Avanços recentes em IA parecem estar aproximando essa visão.
No entanto, um novo estudo realizado por cientistas do Laboratório de Ciência da Computação e Inteligência Artificial (CSAIL) do MIT e institutos de pesquisa parceiros mostrou que: para concretizar esse futuro, precisamos primeiro olhar diretamente para os desafios reais do tempo presente.
“Muitas pessoas dizem que os programadores não são mais necessários porque a IA pode automatizar tudo”, disse Armando Solar-Lezama, professor de engenharia elétrica e ciência da computação no MIT, pesquisador sênior do CSAIL e principal autor do estudo. “Na verdade, fizemos um progresso significativo. As ferramentas que temos hoje são muito mais poderosas do que antes. Mas ainda temos um longo caminho a percorrer para concretizar todo o potencial da automação.”
O professor Armando Solar-Lezama argumenta que a percepção popular da engenharia de software é que se trata de uma tarefa semelhante a uma tarefa de programação de um aluno: pegue uma pequena função e escreva código para executá-la, ou faça um exercício no estilo LeetCode. A realidade é muito mais complexa: desde refatorações de código para otimizar projetos até migrações em larga escala com milhões de linhas de código de COBOL para Java, que mudam todo o conjunto de tecnologias de uma empresa.
Medição e comunicação continuam sendo problemas difíceis
Otimizações de código em escala industrial — como ajustes no núcleo da GPU ou melhorias multicamadas no mecanismo Chrome V8 — ainda são difíceis de avaliar. Os benchmarks atuais são, em sua maioria, para problemas pequenos e empacotados. A métrica mais prática, o SWE-Bench, simplesmente solicita a um modelo de IA que corrija um bug no GitHub — um exercício de programação de baixo nível que envolve algumas centenas de linhas de código e potencialmente expõe dados, ignorando uma ampla gama de cenários do mundo real, como refatoração assistida por IA, programação em pares homem-máquina ou reescritas de sistemas de alto desempenho com milhões de linhas de código. Até que os benchmarks se expandam para abranger esses cenários de maior risco, mensurar o progresso — e, portanto, acelerá-lo — continuará sendo um desafio em aberto.
Além disso, a comunicação entre humanos e máquinas também representa uma grande barreira. O doutorando Alex Gu, autor principal, afirmou que, atualmente, interagir com a IA ainda é como "uma linha de comunicação frágil". Ao solicitar que a IA gere código, ele frequentemente recebe arquivos grandes e não estruturados, juntamente com alguns conjuntos de testes simples e incompletos. Essa lacuna também se reflete no fato de a IA não conseguir aproveitar efetivamente ferramentas de software familiares aos humanos, como depuradores, analisadores estáticos, etc.
Chamada para ação da comunidade
Os autores argumentam que não há uma solução mágica para esses problemas e pedem esforços em escala comunitária: criação de dados que reflitam o processo de desenvolvimento real dos programadores (qual código manter, qual código remover, como o código é refatorado ao longo do tempo, etc.); ferramentas comuns de avaliação para qualidade de refatoração, durabilidade de patches e precisão de transição de sistema; e criação de ferramentas transparentes que permitam que a IA expresse incertezas e convide a intervenção humana.
O doutorando Alex Gu vê isso como um "chamado à ação" para comunidades de código aberto em larga escala, algo que nenhum laboratório sozinho consegue oferecer. Solar-Lezama prevê que o progresso virá em pequenos passos incrementais — "descobertas de pesquisa que resolvem uma parte do problema de cada vez" —, transformando a IA de uma "ferramenta de sugestão de código" em uma verdadeira parceira da engenharia.
“Por que isso importa? O software já é a base das finanças, do transporte, da saúde e de praticamente todas as atividades cotidianas. Mas o esforço humano para construí-lo e mantê-lo com segurança está se tornando um gargalo”, disse Gu. “Uma IA que consiga fazer o trabalho pesado sem cometer erros ocultos liberaria os programadores para se concentrarem em criatividade, estratégia e ética. Mas, para chegar lá, precisamos entender que terminar um pedaço de código é a parte fácil — a parte difícil é todo o resto.”
(Traduzido brevemente do MIT News)
Fonte: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html
Comentário (0)