Microsoft sviluppa un'intelligenza artificiale in grado di trovare bug nel codice

Icona del tempo di lettura 2 minuto. leggere


I lettori aiutano a supportare MSpoweruser. Potremmo ricevere una commissione se acquisti tramite i nostri link. Icona descrizione comando

Leggi la nostra pagina informativa per scoprire come puoi aiutare MSPoweruser a sostenere il team editoriale Per saperne di più

I ricercatori di Microsoft hanno sviluppato un'intelligenza artificiale in grado di trovare bug nel codice, aiutando gli sviluppatori a eseguire il debug delle loro applicazioni in modo più accurato ed efficiente.

I ricercatori Miltos Allamanis, Principal Researcher e Marc Brockschmidt, Senior Principal Research Manager hanno sviluppato la loro IA, BugLabs, più o meno allo stesso modo in cui vengono create le Generative Adversarial Networks (GANs).

Microsoft ha messo due reti l'una contro l'altra: una progettata per introdurre piccoli bug nel codice esistente e un'altra mirata a trovare quei bug. Le due reti sono diventate sempre migliori, risultando in un'IA che è stata brava a identificare i bug nascosti nel codice reale.

Il vantaggio di questo approccio era che il processo era completamente autocontrollato e non necessitava di dati etichettati.

Riportano i risultati come di seguito:

In teoria, potremmo applicare il gioco del nascondino in modo ampio, insegnando a una macchina a identificare bug arbitrariamente complessi. Tuttavia, tali bug sono ancora fuori dalla portata dei moderni metodi di intelligenza artificiale. Invece, ci stiamo concentrando su una serie di bug che compaiono comunemente. Questi includono confronti errati (ad esempio, utilizzando "<=" invece di "<" o ">"), operatori booleani errati (ad esempio, utilizzando "e" invece di "o" e viceversa), usi impropri di variabili (ad esempio, utilizzando in modo errato “i” invece di “j”) e pochi altri. Per testare il nostro sistema, ci concentriamo sul codice Python.

Una volta che il nostro rilevatore è stato addestrato, lo usiamo per rilevare e riparare i bug nel codice reale. Per misurare le prestazioni, annotiamo manualmente un piccolo set di dati di bug dai pacchetti nel Python Package Index con tali bug e mostriamo che i modelli addestrati con il nostro metodo "nascondino" sono fino al 30% migliori rispetto ad altre alternative, ad es. rilevatori addestrati con bug inseriti casualmente. I risultati sono promettenti, mostrando che circa il 26% dei bug può essere trovato e corretto automaticamente. Tra i bug trovati dal nostro rilevatore c'erano 19 bug precedentemente sconosciuti nel codice GitHub open source nella vita reale. Tuttavia, i risultati hanno anche mostrato molti falsi allarmi positivi, suggerendo che sono necessari ulteriori progressi prima che tali modelli possano essere implementati praticamente.

Concludono che il loro approccio è promettente, anche se ovviamente è necessario molto più lavoro per rendere tali rivelatori affidabili per l'uso pratico. Dato GPT-3 di Microsoft funziona su GitHub tuttavia, è del tutto possibile che questo lavoro possa essere commercializzato alla fine.

Leggi il loro articolo completo qui.

Maggiori informazioni sugli argomenti: ai, sviluppatori, microsoft