Site icon Techbusiness

Allucinazioni AI, un rischio concreto per il software development

Allucinazioni AI, un rischio concreto per il software development thumbnail

I modelli di intelligenza artificiale sono validi alleati per i programmatori e ingegneri software, e si sposano bene con l’ideologia Agile. Tuttavia, nell’ambito del software development, bisogna utilizzare questa tecnologia con le giuste precauzioni, per evitare di incappare nei rischi di sicurezza derivanti dalle cosiddette “allucinazioni AI“. Ce ne parla Federico Riboldi, Project Leader di adesso.it.

Come mai le allucinazioni AI sono pericolose durante il software development?

Un tema molto chiacchierato all’interno dell’industria software è quello dell’utilizzo di strumenti di AI generativa, come i modelli GPT3.5/4/4o, i modelli Gemini o i modelli open source quali Llama 3, per lo sviluppo di applicazioni.

Sebbene questi strumenti possano aumentare la produttività degli sviluppatori, migliorare la qualità del prodotto finale offrendo supporto durante le fasi di sviluppo, e rappresentino di fatto un’opportunità importante per restare al passo con il mercato, presentano alcuni lati un po’ “oscuri”.

Uno dei più grandi problemi che affliggono i modelli linguistici di grandi dimensioni (LLM) odierni è la loro tendenza a generare “allucinazioni”, ovvero risposte inventate presentate come fatti. Questo fenomeno non solo può causare inefficienze, ma rappresenta soprattutto un potenziale rischio per la sicurezza: una porta d’ingresso per potenziali malintenzionati.

Ma la generazione di codice non dovrebbe essere sicura dalle allucinazioni essendo un’attività programmatica? Non proprio: stanno infatti emergendo problematiche riguardanti il suggerimento di package o librerie da importare nel codice generato, che possono sembrare plausibili ma che in realtà sono inesatte o completamente inventate.

Infatti, a volte può succedere che, quando l’utente formula una domanda chiedendo ad un modello LLM di generare codice per risolvere una particolare esigenza, il modello risponda con del codice sintatticamente corretto, ma con l’aggiunta di alcune librerie completamente inesistenti.

Quando il codice contenente il pacchetto inventato viene eseguito, si possono verificare due scenari. Nel primo, quello più positivo, il codice va in errore riportando l’inesistenza del pacchetto generato incorrettamente dal modello. Ma nel secondo, che si verifica nel caso un malintenzionato riesca a intercettare la problematica prima dell’utente e abbia pubblicato pacchetto omonimo contenente codice dannoso, il codice viene eseguito comunque, con conseguenze potenzialmente disastrose.

Ecco sette strategie per mitigare le allucinazioni AI

Federico Riboldi, Project Leader di adesso.it
Federico Riboldi, Project Leader di adesso.it

Vista la pericolosità delle allucinazioni AI, un rimedio drastico sarebbe quello di impedirne completamente l’utilizzo. Tuttavia, una soluzione del genere causerebbe la perdita di molte opportunità offerte da questa tecnologia. Un modo migliore per proteggersi è adottare sette semplici accorgimenti: vediamoli insieme.

Formazione su strumenti di AI generativa

Come ogni strumento, anche l’intelligenza artificiale generativa può diventare un’arma a doppio taglio se non utilizzata correttamente. Vale quindi la pena per le aziende di investire sulla formazione dei propri collaboratori nell’utilizzo delle nuove tecnologie che entrano a far parte della “cassetta degli attrezzi” con cui vengono svolte le mansioni di tutti i giorni.

Verifica del codice generato

Gli sviluppatori hanno la responsabilità di controllare attentamente il codice generato dagli strumenti di intelligenza artificiale. Non basta che il codice compili, deve anche essere sicuro e corretto. Un controllo manuale è il primo passo per identificare possibili allucinazioni o errori.

Valutazione delle librerie suggerite

Indipendentemente da dove proviene il codice che si sta per testare, è sempre buona norma verificare l’affidabilità delle librerie che si stanno importando in un progetto. Ciò significa controllare la loro versione, il numero di contributori, il livello di manutenzione e le vulnerabilità note, prediligendo sempre librerie open source con una comunità attiva e molte stelle su piattaforme come GitHub.

Utilizzo di strumenti di analisi statica

L’integrazione di strumenti di analisi statica del codice nelle pipeline di CI/CD aiuta a identificare problemi nel codice e nelle librerie proposte. Infatti, grazie a questi strumenti, gli sviluppatori possono rilevare vulnerabilità e potenziali errori prima dell’implementazione del codice.

Implementazione di test automatici

Agli strumenti di analisi statica seguono a ruota i test automatici, che sono un metodo efficace per verificare il corretto funzionamento del codice e per identificare eventuali regressioni introdotte dal codice suggerito dall’AI.

Assessment di sicurezza regolari

Indipendentemente dalla tecnologia utilizzata per produrre il codice, è sempre una buona regola quella di condurre assessment di sicurezza regolari, soprattutto per applicazioni web e mobili esposte su Internet. Ciò aiuta a identificare e mitigare potenziali vulnerabilità.

Adozione di un approccio Agile al software development

Infine, non bisogna dimenticare come l’adozione di metodologie Agile consenta di mitigare questi rischi. Infatti, grazie a un approccio strutturato con cicli brevi nella verifica e valutazione del codice consente di identificare e correggere tempestivamente le problematiche, riducendo il rischio di errori sistematici.

Per maggiori informazioni, vi invitiamo a visitare il sito web di adesso.it.

Coding With AI
  • Codifica con intelligenza artificiale
  • Tipologia di prodotto: ABIS BOOK
  • Minnick, Chris (Autore)
Exit mobile version