DeepCode, spin-off dell'ETH dedicato all'IA, acquisito da unicorno della sicurezza informatica
L'und Geomatik DeepCode, spin-off dell'ETH, ha costruito la prima piattaforma di intelligenza artificiale per il codice. Ora è stata acquisita da Snyk, leader mondiale nell'analisi della sicurezza del codice per gli sviluppatori.
Il vantaggio principale che contraddistingue l'ETH DeepCode è l'aver sviluppato il primo sistema di intelligenza artificiale in grado di apprendere rapidamente da miliardi di codici di programma, consentendo il rilevamento basato sull'intelligenza artificiale di problemi di sicurezza e affidabilità del codice. DeepCode è un ottimo esempio di un moderno sistema di IA in grado di apprendere dai dati, o in questo caso dal codice del programma, rimanendo trasparente e interpretabile per l'uomo.
La fusione con Snyk, un'azienda di strumenti di sicurezza che consente agli sviluppatori di trovare rapidamente le vulnerabilità del codice e che è valutata circa 2,34 miliardi di franchi svizzeri, offre a DeepCode l'opportunità di integrare le sue competenze basate sull'intelligenza artificiale nei prodotti Snyk esistenti. In questo modo l'apertura si avvicina all'obiettivo iniziale di raggiungere milioni di utenti in tutto il mondo. Le condizioni finanziarie dell'accordo non sono state rese note.
L'apprendimento dai dati fa la differenza
DeepCode è stata originariamente fondata con l'obiettivo di creare la prima piattaforma di analisi del codice alimentata dall'intelligenza artificiale. La motivazione principale era che gli sviluppatori hanno prodotto miliardi di linee di codice negli ultimi anni, che sono liberamente disponibili in una serie di repository pubblici (archivi digitali) insieme alle relative segnalazioni di bug, correzioni di bug e altre informazioni relative al codice. L'idea chiave era quella di costruire un sistema di intelligenza artificiale in grado di apprendere da questo nuovo tipo di dati (definiti Big Code) e di risolvere vari problemi urgenti di qualità del codice, nonché di rilevare vulnerabilità di sicurezza sconosciute nei programmi.
Una differenza fondamentale è che, a differenza dei precedenti strumenti di analisi del codice, che richiedono regole manuali, imperfette e scritte a mano, DeepCode si basa sull'apprendimento automatico dei dati: Elabora automaticamente tutte le informazioni relative al codice e crea modelli predittivi in grado di rilevare molti più errori con una precisione che altri sistemi commerciali non possono eguagliare.
Inoltre, i modelli di DeepCode sono interpretabili. Ciò significa che un essere umano può controllare il modello e introdurre modifiche se necessario, una capacità che va oltre tutti i moderni modelli di deep learning esistenti. Questo fa di DeepCode un caso di studio per un sistema di intelligenza artificiale di terza generazione: può imparare dai dati (in questo caso dal codice) ma è ancora interpretabile dall'uomo. Inoltre, DeepCode ha compiuto progressi negli algoritmi che rendono questa IA non solo più potente degli strumenti convenzionali, ma anche più veloce di ordini di grandezza.
Dalla ricerca fondamentale al mercato
Mentre DeepCode è stata fondata nel 2016, il campo di ricerca stesso è stato pionieristico presso l'ETH di Zurigo nel 2013, quando l'allora dottorando di Vechev, Veselin Raychev, e Martin Vechev, professore presso l' Laboratorio Sistemi sicuri, affidabili e intelligenti del Dipartimento di informatica dell'ETH, insieme a collaboratori, ha posto la prima pietra. Hanno costruito i primi prototipi di sistemi basati sull'intelligenza artificiale in grado di imparare dal codice, mostrando come combinare metodi di apprendimento automatico basati sui dati con metodi di analisi semantico-statica del codice basati sul ragionamento logico.
? interessante notare che all'epoca questi due tipi di metodi erano considerati distinti, senza un modo chiaro per collegarli. L'osservazione era che, trovando il modo di collegare domini apparentemente separati, si sarebbero potuti costruire nuovi tipi di sistemi di IA in grado di elaborare efficacemente i codici - che presentano sfide molto diverse rispetto ad altri tipi di dati ampiamente utilizzati come immagini, video, linguaggio naturale, ecc.
Durante questo periodo - e con il supporto di un ERC Starting Grant di Vechev - il gruppo di ricerca dell'ETH ha pubblicato diverse Un lavoro pionieristico e sistemi di programmazione pubblici basati sull'intelligenza artificiale per varie attività software, che ancora oggi sono utilizzati intensamente da migliaia di utenti (ad es. pagina esternaDeobfuscazione,che significa che il codice di un programma viene "svelato" per renderlo comprensibile).
Un sistema di analisi del codice per ogni sviluppatore
Per il suo lavoro pionieristico sull'apprendimento dal codice di grandi dimensioni, Veselin Raychev ha ricevuto la medaglia dell'ETH per una tesi di dottorato eccezionale e il prestigioso pagina esternaPremio ACM per tesi di dottorato, menzione d'onore (Top 3 tesi di dottorato in informatica, a livello mondiale), diventando così solo il terzo dottorando europeo nei 40 anni di storia di questo premio e il primo dottorando dell'ETH di Zurigo a ricevere tale onore.
Dopo essere stati pionieri nel campo della ricerca sull'apprendimento automatico del codice di grandi dimensioni, la costruzione di un sistema di analisi del codice basato sull'intelligenza artificiale che funzionasse in produzione e su scala è stato un passo successivo naturale. L'obiettivo era che ogni sviluppatore e ogni azienda che crea software fosse in grado di utilizzare il sistema di analisi del codice. Questo ha portato alla nascita di pagina esternaDeepCode,che è stata co-fondata dal CTO Veselin Raychev, dal CEO Boris Paskalev e dal professore dell'ETH Martin Vechev e che attualmente protegge più di 4 milioni di sviluppatori che contribuiscono e oltre 100.000 repository che hanno sottoscritto il servizio di DeepCode.