Notizie
maggio 2025
Sea Dragon prende posizione sull'Intelligenza Artificiale e sugli LLM come supporto alla programmazione
Negli ultimi anni il dibattito tecnologico è stato dominato dal rapido avanzare della cosiddetta Intelligenza Artificiale. In quanto azienda di tecnologia e ingegneria, Sea Dragon ha condotto una ricerca esaustiva, responsabile e con criterio ingegneristico per adottare una posizione informata nei confronti dell'Intelligenza Artificiale.
La nostra azienda dispone di specialisti in Data Science e Intelligenza Artificiale, con certificazioni e riconoscimenti internazionali da parte di RapidMiner, IBM e Microsoft, e ha prestato servizi in questo ambito a imprese e istituzioni. Per questo, con lo scopo di informare ed educare, dobbiamo precisare alcuni concetti che spesso vengono confusi nel dibattito pubblico.
La Data Science è una disciplina che combina matematica, statistica, programmazione e analisi di business per estrarre conoscenza, pattern e informazioni utili alle decisioni a partire da un insieme di dati strutturati e non strutturati.
L'Intelligenza Artificiale è un ampio campo dell'informatica orientato a creare sistemi in grado di svolgere compiti che simulano la cognizione umana, come la percezione visiva, il ragionamento o la risoluzione di problemi complessi.
L'Apprendimento Automatico o Machine Learning è un'area dell'informatica che sviluppa algoritmi in grado di apprendere pattern da un insieme di dati storici, allo scopo di effettuare classificazioni, raggruppamenti e previsioni senza che sia necessario programmare esplicitamente delle regole. È uno strumento utile sia per la Data Science sia per l'Intelligenza Artificiale.
Un Modello Linguistico di Grandi Dimensioni (LLM) è un campo dell'Intelligenza Artificiale basato su algoritmi di apprendimento automatico addestrati su grandi volumi di testo. Questi modelli prevedono la sequenza di parole più probabile in base a un input, solitamente chiamato prompt.
L'apprendimento automatico come strumento ci permette di prendere decisioni in funzione della probabilità. Se un data scientist studia il rischio di credito di una popolazione basandosi su dati storici, si troverà di fronte a un risultato come questo:
«Una persona di 22 anni che studia e non ha patrimonio» ha il 96% di probabilità di non restituire un credito al consumo concesso, se il suo garante ha un reddito pari o inferiore a 1,5 volte il salario minimo.
Con questo risultato, si può raccomandare di negare un credito al consumo a una persona con queste caratteristiche.
«Una persona di 35 anni con un impiego stabile e una storia creditizia pulita» ha meno del 5% di probabilità di non restituire un credito al consumo concesso, purché questo non superi 5 volte lo stipendio di tale persona.
Con questo risultato, si può raccomandare di concedere un credito al consumo a una persona con queste caratteristiche.
Queste raccomandazioni si basano sull'analisi dei dati con un sistema di classificazione che può essere analizzato e spiegato e il cui livello di confidenza può essere misurato. Molti dei progetti di data science oggi in funzione dispongono di processi che consentono di ricalibrare questi modelli se cambiano le condizioni per cui sono stati addestrati.
Tuttavia, non tutti i progetti che coinvolgono l'apprendimento automatico hanno successo. Se così fosse, i bookmaker sportivi soccomberebbero di fronte a un modello predittivo. Il problema dell'applicare un algoritmo di apprendimento automatico per prevedere il risultato di un campionato sportivo è l'enorme quantità di variabili che influiscono sui risultati. Un esempio esagerato:
Prevedere che la squadra campione della massima serie vincerà una partita contro la terzultima classificata dello stesso campionato sembra facile, ma se l'allenatore decide di schierare solo riserve per preservare la rosa in vista della prima partita di Copa Libertadores, che si giocherà a metà settimana, gran parte delle statistiche va in fumo: l'allenatore non schiererà la stessa formazione e la squadra delle riserve ha meno esperienza. Anche se la maglia è la stessa, non hai più le variabili necessarie per scommettere sulla vittoria.
Quando la variabilità dei parametri di previsione è molto alta, il risultato non è più affidabile. Il sistema predittivo ha bisogno che le condizioni dell'evento che analizzerà siano simili a quelle degli eventi con cui è stato addestrato.
Per questo, a differenza del primo caso, in cui in un'entità responsabile la raccomandazione del sistema di apprendimento automatico viene presa solo come riferimento e rivista da un esperto, nel secondo caso la previsione umana e quella automatizzata sono ugualmente incerte. Il corollario è il seguente:
I risultati forniti da un modello di apprendimento automatico sono buoni quanto i dati con cui è stato addestrato.
Un Modello Linguistico di Grandi Dimensioni (LLM, dall'inglese Large Language Model) viene addestrato con un algoritmo di apprendimento automatico la cui decisione non può essere spiegata facilmente e che non è supervisionato. Questi modelli funzionano generando la parola più probabile dato un contesto, e la probabilità viene regolata tenendo conto di parametri che noi utenti non conosciamo; per questo, per uno stesso input X (il prompt) ci saranno molti output diversi e alcuni potrebbero essere errati. È quella che si chiama una «allucinazione».
Ora, le allucinazioni non possono essere evitate del tutto: possono solo essere mitigate, in tempo reale, limitando il tipo di lavoro richiesto a un LLM e scrivendo prompt molto specifici, oppure in fase di addestramento, accumulando e aggiungendo più dati; è per questo che ChatGPT, Claude e altri modelli di tipo industriale richiedono data center dedicati esclusivamente all'addestramento.
I modelli linguistici sono diventati molto bravi a nascondere i propri difetti: per lo più, le risposte che forniscono sono scritte in modo così coerente che un gruppo di utenti di questi modelli ha smesso di verificare che il risultato sia corretto. È un errore, perché un modello linguistico di grandi dimensioni non è in grado di comprendere la logica di business; è in grado solo di simulare la comprensione.
Per questo la nostra conclusione è la seguente: l'uso indiscriminato di codice generato da modelli linguistici di grandi dimensioni, senza un'attenta revisione umana, presenta seri pericoli operativi e di sicurezza per le aziende:
- Si genera debito tecnico invisibile: non comprendendo la logica di business, il codice generato sembra corretto ma può contenere difetti logici profondi o comportamenti imprevedibili.
- Si perde la capacità di manutenere questo codice: quando si accettano grandi blocchi di codice generati da uno strumento, verificare e manutenere quel codice diventa un processo complesso.
- Si aprono falle di sicurezza: l'addestramento di questi modelli include repository pubblici con errori e pratiche obsolete che possono introdurre bug, injection o vulnerabilità impossibili da individuare in produzione. Chi ha esperienza nello sviluppo open source sa che il codice disponibile in un repository non è esente da errori, e che la ragione per pubblicare un repository è che più persone con competenze tecniche possano vedere, verificare e migliorare il codice.
In conclusione, pur riconoscendo che l'Intelligenza Artificiale è una grande rivoluzione tecnologica, la nostra posizione è quella di un'ingegneria deliberata. In Sea Dragon evitiamo di generare codice con modelli linguistici di grandi dimensioni direttamente sui progetti dei nostri clienti, preferendo sempre consegnare codice strutturato, testato e rivisto direttamente da professionisti qualificati che prendono decisioni tecniche fondate sulla conoscenza, su un'architettura solida e sulle buone pratiche del settore. L'affidabilità del software non si costruisce con le scorciatoie, ma con trasparenza, criterio tecnico e responsabilità umana in ogni riga di codice scritta.
Questo non significa che non utilizziamo l'Intelligenza Artificiale, assolutamente no: sarebbe un errore negare che siano strumenti utili, e possiamo affidarci ai modelli linguistici di grandi dimensioni per lo sviluppo di proof of concept e per delegare compiti non critici, ma in nessun caso questi faranno parte integrante dei progetti che consegniamo ai nostri clienti.