Microsoft desenvolve IA que corrige bugs em código

13 Comentários

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”.

Microsoft desenvolve IA que corrige bugs em código



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
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…

Meta dá vida aos desenhos das crianças com recurso à Inteligência Artificial

Comentários

13

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Donato
    Donato

    Fazem código com bugs, então criam um código para corrigir os bugs. …

    1. Avatar de Toni da Adega
      Toni da Adega

      Código sem bugs não existe

      1. Avatar de eu2
        eu2

        Existe, olha aqui:

        print(“Hello world!”)

        Vês aqui algum bug?

        1. Avatar de Miguel
          Miguel

          Depende de muita coisa, olha que até pode ter 😀

      2. Avatar de Bolhas
        Bolhas

        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.

  2. Avatar de Samuel MGor
    Samuel MGor

    Isto vai dar trapalhada e da grossa!!

  3. Avatar de alt.menino
    alt.menino

    Fizeram-me lembrar o preço certo….. vamos quem é que acerta…..

  4. Avatar de Luis Costa
    Luis Costa

    É 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

    1. Avatar de Bolhas
      Bolhas

      Isso é possível há décadas já com um editor de texto, que te avisa disso.
      Qualquer compilador de avisa disso tbm.

    2. Avatar de Samuel MGor
      Samuel MGor

      Se foi feita pela Mitrasoft é expectável que venha também com bugs 😛

  5. Avatar de joão
    joão

    jogo de “esconde-esconde”?!

    Isso é um bocado abrazucado, não?

    na minha saloia terrinha é “jogar às escondidas”

    1. Avatar de Rui Jorge

      Na minha saloia terrinha, bem portuguesa, sempre ouvi e disse esconde-esconde 🙂

  6. Avatar de Marshall
    Marshall

    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.