Le AI sanno programmare? Secondo Stanford no, producono codice inaffidabile

Walter Ferri

27 Dicembre 2022 - 14:40

L’intelligenza artificiale si dimostra sempre più efficiente, ma l’Università di Stanford invita i tecnici a non sopravvalutare le sue potenzialità.

Le AI sanno programmare? Secondo Stanford no, producono codice inaffidabile

Le intelligenze artificiali (AI) stanno facendo passi da gigante. Nel giro di un paio di anni saranno quasi certamente in grado di alleggerire alcuni dei compiti più monotoni e meccanici dell’ambito creativo, tuttavia pare che al giorno d’oggi la tecnica non sia ancora riuscita a garantire gli standard minimi necessari a sostenere un approccio del tutto professionale, almeno stando a una recente indagine pubblicata dall’Università di Stanford.

La programmazione artigianale e le AI

I ricercatori Neil Perry, Megha Srivastava, Deepak Kumar e Dan Boneh hanno cercato di capire quanto la programmazione di codici informatici possa godere del contributo attivo delle AI, un tema che da mesi fomenta e divide non poco il discorso internettiano, cosa che a sua volta fomenta un clima polarizzato in cui risulta difficile intavolare un confronto costruttivo. Il punto di vista di Stanford è altresì privo di ambiguità: nella ricercatitolata “Gli utenti scrivono un codice più insicuro adoperando gli assistenti AI?” gli accademici rivelano senza mezzi termini che le linee di codice sviluppate con l’aiuto di Github Copilot e omologhi siano notevolmente meno sicure di quelle redatte esclusivamente attraverso l’ingegno umano.

Per giungere a una simile conclusione, gli universitari hanno radunato 47 volontari caratterizzati da diversi gradi di competenza informatica, quindi hanno suddiviso i soggetti in due gruppi: uno ha potuto affidarsi all’intelligenza artificiale codex-davinci-002 distribuita da OpenAI, l’altro si è limitato a poter far conto sulle sole competenze pregresse dei programmatori. Ai tecnici è stato chiesto di risolvere cinque diversi compiti, quindi i risultati finali sono stati elaborati in base alla vulnerabilità del codice. Le percentuali registrate variano molto da obiettivo a obiettivo, tuttavia si nota con una certa costanza come i codici scritti con il supporto delle AI siano considerevolmente meno affidabili di quelli prodotti dal gruppo di controllo.

I test hanno dunque identificato un problema meno evidente, ovvero che i programmatori tendano a percepire come più affidabile un codice partorito con l’aiuto dell’intelligenza artificiale, una suggestione che si muove in aperta controtendenza con i dati effettivi. In altre parole, viene talmente facile fidarsi degli strumenti messi a disposizione dalla Silicon Valley che si finisce con l’abbassare la guardia e commettere errori. “Abbiamo osservato che nella maggior parte dei compiti assegnati i partecipanti che hanno avuto accesso all’assistenza AI si sono dimostrati più propensi a elaborare codici maggiormente vulnerabili sul piano della sicurezza”, scrivono i ricercatori. “Eppure è più probabile che questi valutino le loro risposte non sicure come sicure, se le si compara con quelle fornite dal gruppo di controllo”.

Non un caso isolato, ma una criticità da monitorare

Gli accademici di Stanford sono i primi ad ammettere che la loro ricerca sia per portata del tutto inadeguata a fornire dei dati scientifici assoluti, tuttavia il loro operato va letto all’interno di una bibliografia più ampia e in rapido sviluppo. Nel documento, il team cita esplicitamente “Addormentati sulla tastiera? Valutazione della sicurezza del copilota di GitHub nel contribuire a un codice” e “Implicazioni sulla sicurezza degli assistenti alla programmazione che adoperano sfruttando un grande modello di linguaggio”, indagini ambo sviluppate all’interno dei corridoi dell’Università di New York.

Il primo testo, pubblicato nell’agosto del 2021, riportava che negli 89 scenari studiati, circa il 40% dei codici formalizzati attraverso l’uso delle AI nascondeva al suo interno delle vulnerabilità facilmente identificabili da qualsiasi malintenzionato ben motivato. Il secondo è stato condiviso con il mondo a distanza di un anno e va a estendere notevolmente il volume di fattori preso in considerazione dai ricercatori. In questo caso, i tecnici universitari hanno adottato toni meno pronunciati, sostenendo che la tendenza ad adoperare le intelligenze artificiali ai fini della programmazione porti a un margine di errore “non superiore al 10%”, se comparato a un approccio di matrice tradizionale.

Dai testi condivisi dalle università si evince che al momento il pubblico sia soggetto a una duplice criticità composta da fattori che si muovono parallelamente. Da un lato bisogna riconoscere che persino l’intelligenza artificiale di OpenAI, discendente dell’avanzatissima GPT, non sia ancora in grado di tenere appieno in considerazione le complessità del lavoro informatico, dall’altro diventa sempre più indispensabile prendere coscienza del fatto che vi sia una naturale propensione a garantire un’eccessiva fiducia a degli strumenti che ancora fatichiamo a comprendere pienamente.

Confidiamo nelle macchine, nelle promesse dei loro produttori e nell’entusiasmo del momento, tuttavia questa forma di pensiero magico si ritorce contro quei tecnici che, per leggerezza o imperizia, sperano che sia l’AI a identificare le complessità dei codici sviluppati, quando la realtà dei fatti esigerebbe un’inquadratura autoriale diametralmente opposta. Dal canto suo, Stanford ha cercato di lenire questa ingenuità progettando un’interfaccia utente che possa illustrare le conseguenze che derivano dal fare eccessivo affidamento ai codici prodotti appoggiandosi alle intelligenze artificiali, tuttavia il mondo accademico deve ancora elaborare dati e informazioni utili a comprendere la vera entità della situazione.