Intel: lo sviluppo del software in futuro? Automatizzato grazie alle reti neurali

Intel: lo sviluppo del software in futuro? Automatizzato grazie alle reti neurali

Gli ingegneri Intel e gli studiosi del MIT e della Georgia Tech hanno creato una rete neurale che capisce se due frammenti di codice intendono raggiungere lo stesso obiettivo, anche se sono scritti in modo diverso.

di pubblicata il , alle 17:21 nel canale Web
Intel
 

Intel, insieme al MIT e alla Georgia Tech, ha svelato MISIM (machine inferred code similarity), un nuovo sistema di programmazione della macchina capace di apprendere lo scopo di una parte di un software studiandone la struttura del codice e le differenze sintattiche rispetto ad altri pezzi di codice che mostrano un comportamento simile.

L'obiettivo finale è "democratizzare la creazione del software", consentendo a tutti di creare ciò che desiderano, esprimendosi "in qualunque modo sia meglio per loro, che sia codice, linguaggio naturale o qualcos'altro", recita una nota stampa. "È un obiettivo audace, e anche se c'è ancora molto lavoro da fare, MISIM è un chiaro passo avanti verso l'obiettivo", ha dichiarato Justin Gottschlich, principal scientist e direttore / fondatore della divisione Machine Programming Research di Intel.

Il lavoro attorno a MISIM nasce in seguito all'avanzata del calcolo eterogeneo, con sistemi hardware e software che diventano sempre più complessi di pari passo a una carenza di programmatori esperti capaci di lavorare su differenti architetture. Per questo motivo gli Intel Labs e il MIT hanno coniato il termine "machine programming", dietro a cui si cela la volontà di creare strumenti automatizzati che svolgano certi compiti: uno di questi è definito "code similarity" e ha il potenziale per automatizzare parte del processo di sviluppo di un software.

Realizzare sistemi in grado di rilevare in modo accurato le somiglianze tra diverse parti di codice finora non è stato però semplice. Questi sistemi tentano di stabilire se due frammenti di codice mostrano caratteristiche od obiettivi simili - un compito arduo quando si ha solo il codice sorgente da cui apprendere. MISIM può capire con precisione quando due parti di codice svolgono un calcolo simile, anche quando quei pezzi usano strutture di dati e algoritmi differenti.  

Una differenza sostanziale tra MISIM e i sistemi esistenti sta nella struttura semantica sensibile al contesto (CASS), che mira a far emergere ciò che il codice è in grado di fare realmente. A differenza dei sistemi esistenti, CASS può essere configurato per un contesto specifico, permettendogli di catturare l'informazione che descrive il codice a un livello superiore. CASS può fornire informazioni specifiche su ciò che fa il codice e non su come lo fa. MISIM, inoltre, può fare tutto questo senza usare un compilatore.

Ne derivano molti vantaggi rispetto ai sistemi esistenti, inclusa la possibilità di eseguire frammenti di codice incompleti scritti da uno sviluppatore. Una volta che la struttura del codice è integrata in CASS, reti neurali danno punteggi di somiglianza ai diversi parti di codice in base ai compiti che sono progettati per svolgere. In altre parole, se due pezzi di codice sembrano molto diversi nella loro struttura ma svolgono la stessa funzione, le reti neurali dovrebbero riuscire a classificarli come in gran parte simili.

Riunendo questi principi in un sistema unificato, i ricercatori hanno scoperto che MISIM è capace di identificare parti di codice simili fino a 40 volte più accuratamente rispetto ai migliori sistemi precedenti.

Intel sta lavorando per espandere il set di funzionalità di MISIM, ma l'aspetto fondamentale è che si è passati dallo stadio di ricerca a una prima dimostrazione con l'obiettivo di creare un motore di raccomandazione del codice che aiuti gli sviluppatori di software a programmare sulle varie architetture eterogenee di Intel. Questo tipo di sistema dovrebbe riconoscere l'intento dietro un semplice algoritmo inserito da uno sviluppatore e suggerire codice semanticamente simile ma con prestazioni migliori.

L'Intel Machine Programming Lab sta inoltre lavorando con team software di Intel per capire come integrare MISIM nello sviluppo quotidiano al fine di incrementare la produttività ed eliminare alcune delle parti banali della programmazione, come la cosiddetta "caccia ai bug".

9 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Pino9004 Agosto 2020, 17:46 #1
Confermo. Anche cose meno ovvie del software. Per esempio in una nota azienda del settore aerospace si sono ottenuti risultati incredibili con le reti neurali per la progettazione di componenti fisici (ad esempio scambiatori di calore).
jepessen04 Agosto 2020, 17:51 #2
Originariamente inviato da: Pino90
Confermo. Anche cose meno ovvie del software. Per esempio in una nota azienda del settore aerospace si sono ottenuti risultati incredibili con le reti neurali per la progettazione di componenti fisici (ad esempio scambiatori di calore).


Il software non e' affatto ovvio, e' una delle cose piu' complesse da capire e progettare e realizzare, tant'e' che fare un ponte o uno scambiatore di calore con nessun problema e' facile una volta diventato esperto, il software avra' invece sempre dei problemi, ovvero i bachi. E' molto piu' difficile fare un software che funziona bene che uno scambiatore di calore...
phmk04 Agosto 2020, 18:29 #3
Originariamente inviato da: Pino90
Confermo. Anche cose meno ovvie del software. Per esempio in una nota azienda del settore aerospace si sono ottenuti risultati incredibili con le reti neurali per la progettazione di componenti fisici (ad esempio scambiatori di calore).

Per gli scambiatori ci sono ottimi software ad esempio quelli di Aspentech (che uso regolarmente) senza bisogno di scomodare IA e reti neurali ...
300004 Agosto 2020, 21:40 #4
Pensano ai programmi, ecco perchè non ne hanno per concentrarsi sulle CPU, infatti stanno per smollarci delle penose bigLITTLE per i PC fissi consumer.
omerook04 Agosto 2020, 22:07 #5
Intanto potrebbero iniziare con il ricompilare i programmi per diverse architetture e dargli anche un' ottimizzata.
demon7704 Agosto 2020, 22:45 #6
Cioè, in parole povere, stanno dicendo che arrivati al culmine di questa tecnologia l'utente spiegherà al pc che vuole un programma che "faccia questo e quello in questo modo" ed il pc si mette a creare il codice per fare questo specifico software?

MMMMMMAH... io sarei abbastanza scettico.
GiGBiG05 Agosto 2020, 00:17 #7
Originariamente inviato da: omerook
Intanto potrebbero iniziare con il ricompilare i programmi per diverse architetture e dargli anche un' ottimizzata.


Originariamente inviato da: demon77
Cioè, in parole povere, stanno dicendo che arrivati al culmine di questa tecnologia l'utente spiegherà al pc che vuole un programma che "faccia questo e quello in questo modo" ed il pc si mette a creare il codice per fare questo specifico software?

MMMMMMAH... io sarei abbastanza scettico.


Farà questo e molto di più: ora per molti è difficile crederlo o anche solo concepirlo, ma le reti neurali sono pensate per superare i limiti e per certi versi anche la fantasia umana, serve solo molta "esperienza" e un modo efficiente di gestirla.
pabloski05 Agosto 2020, 09:29 #8
Originariamente inviato da: demon77
MMMMMMAH... io sarei abbastanza scettico.


io no https://www.youtube.com/watch?v=utuz7wBGjKM
Unrue05 Agosto 2020, 10:32 #9
L'Intel Machine Programming Lab sta inoltre lavorando con team software di Intel per capire come integrare MISIM nello sviluppo quotidiano al fine di incrementare la produttività ed eliminare alcune delle parti banali della programmazione, come la cosiddetta "caccia ai bug".


Da quando cercare bug è diventato banale?

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^