Pplware

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.

Fonte: Microsoft

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…

Exit mobile version