Microsoft desenvolve IA que corrige bugs em código
Encontrar e corrigir bugs em código pode levar bastante tempo e, muitas das vezes, torna-se frustrante para os amantes da programação. Na Conferência de 2021 sobre Sistemas de Processamento de Informação Neural (NeurIPS 2021), a Microsoft mostrou um modelo promissor de aprendizagem, a que chamou BugLab.
O BugLab deteta e corrige bugs em código, sem utilizar dados etiquetados, através de um jogo de "esconde-esconde".
Não seria incrível haver uma forma de corrigir automaticamente os bugs que fossem além dos erros de sintaxe? Pois bem, a Microsoft desenvolveu uma IA chamada BugLab capaz de fazê-lo.
O que é o BugLab?
O BugLab é uma implementação em Python de inteligência artificial, desenvolvida por dois investigadores da Microsoft Research, Miltos Alamanis e Marc Brockschmidt, que procura e corrige bugs dentro do código.
Estes conseguiram superar a falta de labels (etiquetas) frequentemente utilizadas na aprendizagem automática, recorrendo à aprendizagem self-supervised e permitindo que o BugLab se treinasse a ele mesmo através de um jogo de "esconde-esconde" com linhas de código.
O BugLab foi treinado utilizando dois modelos informáticos - um que oculta os bugs dentro dos trechos de código corretos, e outro que procura e corrige os bugs. Ambos os modelos aprendem continuamente um com o outro. Com o tempo, o que oculta os bugs torna-se melhor a escondê-los no código, e o outro torna-se melhor a apanhá-los e a corrigi-los.
Como funciona o BugLab?
A maioria dos erros que o BugLab é treinado para detetar e corrigir não são lógicos, mas apenas errados como no contexto geral do código. Compreender a intenção do programador é essencial para encontrar estes bugs.
O BugLab olha para o código como um todo. Desta forma, cada sintaxe, expressão, símbolo e identificador são representados como pontos num gráfico, permitindo à IA compreender a ligação e relação entre os vários dados.
As arquiteturas de rede neural são então utilizadas para treinar o debugging da IA. Elas são capazes de extrair insights do gráfico do código e fornecer a relação entre dados.
O objetivo desta ferramenta de correção de bugs
É de notar que o BugLab não é um substituto para um programador humano experiente. O objetivo da Microsoft com o BugLab é poupar tempo aos programadores de software, que muitas vezes o gastam a rever o seu código à procura do mais pequeno dos bugs.
Além disso, é detetar e corrigir bugs que ocorrem normalmente, tais como operadores booleanos incorretos, como a utilização de "ou" em vez de "e", e vice-versa, para além de comparações invertidas e utilizações incorretas das variáveis.
O futuro do BugLab da Microsoft
Segundo a Microsoft, os resultados são promissores, uma vez que o BugLab é capaz de detetar e corrigir automaticamente cerca de 26% dos bugs num trecho de código.
Enquanto a IA ainda está em progresso, tem a possibilidade de encontrar e corrigir bugs, dos mais pequenos aos maiores. Mas dentro de alguns anos, é de esperar que o BugLab se torne uma ferramenta necessária a ter na lista de todos os programadores, mesmo que não seja perfeito.
Quanto mais tempo os modelos de IA como o BugLab tiverem de treinar em exemplos da vida real, melhores e mais precisos serão os resultados que irão produzir futuramente.
Leia também...
Este artigo tem mais de um ano
Fazem código com bugs, então criam um código para corrigir os bugs. …
Código sem bugs não existe
Existe, olha aqui:
print(“Hello world!”)
Vês aqui algum bug?
Depende de muita coisa, olha que até pode ter 😀
Existe mas requer muito trabalho, e não é possível usar tais técnicas para algo enorme, portanto só para “módulos” críticos dentro do software.
Há uma forma mais “soft”, que é o que as empresas decentes hoje em dia estão a adoptar, e este é um exemplo disso, mas há outros.
Isto vai dar trapalhada e da grossa!!
Fizeram-me lembrar o preço certo….. vamos quem é que acerta…..
É expectável que a Ai apenas vá corrigir os erros mais comuns se baseado em resultados esperáveis, do tipo a falta de um } entre outros erros de semântica
Isso é possível há décadas já com um editor de texto, que te avisa disso.
Qualquer compilador de avisa disso tbm.
Se foi feita pela Mitrasoft é expectável que venha também com bugs 😛
jogo de “esconde-esconde”?!
Isso é um bocado abrazucado, não?
na minha saloia terrinha é “jogar às escondidas”
Na minha saloia terrinha, bem portuguesa, sempre ouvi e disse esconde-esconde 🙂
Lá ia se não bem caçado seems legit, definitivamente uma melhoria ao sistema actual wysiwygb a filtrar o código em tempo real e com dicas de melhores sintaxes.
Se bem que no unity3d já tem uma função similar desde o 2018.1f, na escrita de shaders principalmente reectificando e actualizando o código com base nas suas versões.