ControlFlag di Intel utilizza l’intelligenza artificiale per rilevare automaticamente gli errori nel codice
Quando si tratta delle aspettative dei clienti, la pandemia ha cambiato tutto
Scopri come accelerare il servizio clienti, ottimizzare i costi e migliorare il self-service in un mondo incentrato sul digitale.
Al Labs Day, un evento online che mostra le innovazioni nel portafoglio Intel, la società ha presentato ControlFlag, un sistema di programmazione della macchina in grado di rilevare autonomamente gli errori nel codice. Intel afferma che anche nella sua infanzia, ControlFlag si mostra promettente come strumento di produttività per assistere gli sviluppatori nel compito ad alta intensità di lavoro di debug. Nei test preliminari, ControlFlag ha riferito di aver addestrato e appreso i difetti su oltre 1 miliardo di righe senza etichetta di codice “qualità di produzione”.
Secondo uno studio pubblicato dalla Judge Business School dell’Università di Cambridge, i programmatori trascorrono il 50,1% del loro tempo di lavoro senza programmare; l’altra metà sta eseguendo il debug. E il costo totale stimato del debug è di 312 miliardi di dollari all’anno. Suggerimenti sul codice e strumenti di revisione basati sull’intelligenza artificiale, quindi, promettono di ridurre sostanzialmente i costi di sviluppo consentendo ai programmatori di concentrarsi su attività più creative e meno ripetitive.
Intel afferma che le capacità di rilevamento dei bug di ControlFlag sono abilitate dalla programmazione della macchina, una fusione di apprendimento automatico, metodi formali, linguaggi di programmazione e compilatori. Sfruttando il rilevamento delle anomalie, ControlFlag impara dagli esempi per rilevare i normali schemi di codifica, identificando le anomalie nel codice che potrebbero causare un bug. Il sistema può rilevare queste anomalie indipendentemente dal linguaggio di programmazione, afferma Intel, e utilizza quello che è noto come un approccio non supervisionato per adattarsi allo stile di qualsiasi sviluppatore. Con input limitati per gli strumenti di controllo che il programma dovrebbe valutare, ControlFlag può identificare variazioni stilistiche nel linguaggio di programmazione, in modo simile al modo in cui i lettori riconoscono le differenze tra parole intere o usano le contrazioni in inglese.
ControlFlag impara a identificare e etichettare le scelte stilistiche e può personalizzare l’identificazione degli errori e i suggerimenti per la soluzione in base alle sue intuizioni. Ciò riduce al minimo le possibilità che il sistema interpreti erroneamente una deviazione stilistica tra due team di sviluppatori come un errore, secondo Intel.
Ad oggi, ControlFlag è stato utilizzato per identificare bug latenti esistenti in basi di codici ampiamente utilizzate precedentemente esaminate dagli sviluppatori di software. Una di queste basi di codice era per cURL, un progetto di software per computer che fornisce una libreria e uno strumento a riga di comando per il trasferimento di dati utilizzando vari protocolli di rete. Quando ControlFlag ha analizzato cURL, Intel afferma di aver identificato un’anomalia che non era stata precedentemente riconosciuta, spingendo gli sviluppatori di cURL a proporre una soluzione migliore. Intel afferma di aver persino iniziato a valutare l’utilizzo di ControlFlag internamente per identificare i bug nella propria produzione di software e firmware.
ControlFlag è l’ultimo di una serie di strumenti che sfruttano l’intelligenza artificiale e l’apprendimento automatico per completare e controllare il codice. Codota sta sviluppando una piattaforma che suggerisce e completa automaticamente gli script in Python, C, HTML, Java, Scala, Kotlin e JavaScript. Ponicode utilizza l’ intelligenza artificiale per verificare l’accuratezza del codice e DeepCode offre un sistema basato sull’apprendimento automatico per le revisioni del codice dell’intera app (così come Amazon ). Forse uno dei progetti più impressionanti fino ad oggi è TransCoder, un sistema di intelligenza artificiale sviluppato dai ricercatori di Facebook che converte il codice da un linguaggio di programmazione in un altro. Un altro concorrente è un modello di OpenAI che è stato addestrato sui repository GitHub per generare intere funzioni da commenti in lingua inglese.
“Programmi come questi stanno solo cercando di eliminare le minuzie della creazione di software”, ha detto a VentureBeat Justin Gottschlich, scienziato principale e direttore degli Intel Labs, in una recente intervista. “Potrebbero aiutare ad accelerare la produttività … occupandosi del debug. E potrebbero aumentare il numero di posti di lavoro nel campo della tecnologia perché le persone che non hanno un background di programmazione saranno in grado di prendere la loro intuizione creativa e catturarla tramite la macchina da queste interfacce intenzionali. “