Sviluppo Software: Programmazione Tradizionale vs. Intelligenza Artificiale
Nel recente incontro fra soci, si è fatto riferimento all’intervista a Carla Trabuio recentemente pubblicata su questo sito; in esso, parlando di AI, Carla accennava alla minaccia derivante dall’”overconfidence”, così chiamata la possibilità di cadere nel rischio di sovrastimare il prodotto software realizzato da un motore, un “engine” di AI. Questa tipologia di errore, nota da tempo nel caso dello sviluppo applicativo, diventa non trascurabile nel caso della AI. Infatti, se acquisiamo dall’esterno una parte importante, o tutta una applicazione, sappiamo che è fondamentale essere “padroni” del dominio applicativo e quindi di essere in grado di verificare la corretta realizzazione della applicazione e scoprire eventuali “buchi”.
Quando un’applicazione è “sviluppata” o generata da un’agente AI (o un modello di Machine Learning), il processo è molto diverso da quello al quale eravamo abituati.
L’AI non “scrive” il codice nello stesso modo di un programmatore.
Invece, viene addestrata su grandi quantità di dati per imparare schemi e relazioni. Sulla base di questi schemi, l’AI può generare output (che possono essere codice, testo, immagini o previsioni) o prendere decisioni. Bisogna tenere in conto che:
- l’AI non segue regole esplicite programmate, ma deduce le proprie “regole” attraverso l’analisi dei dati. Ha un comportamento meno prevedibile (statistico/probabilistico). Anche con gli stessi input, l’output potrebbe variare leggermente o essere influenzato da fattori che non sono immediatamente evidenti nel modello interno.
- Si assiste ad un minore controllo diretto sulla logica interna. Non si “vede” o si “modifica” la logica come nel codice tradizionale. Si agisce sui dati di addestramento e sui parametri del modello.
- Il debugging risulta più complesso. Se l’AI produce un risultato inatteso o errato, è difficile risalire al motivo esatto all’interno del “motore” statistico(1). Spesso si tratta di affinare i dati di addestramento o di ri-addestrare il modello.
Nel caso di processi complessi, come si può facilmente comprendere, la verifica di quanto abbiamo ricevuto richiede una profonda conoscenza del dominio competente ed un onere non indifferente.
Un socio sviluppatore ha dichiarato che gli è accaduto di non utilizzare l’intelligenza artificiale, altrimenti avrebbe dovuto analizzare migliaia di script, e, pertanto, ha deciso di procedere in “maniera tradizionale”.
A questo punto mi sono domandato: <<la decisione testé citata ha richiesto un’analisi del rischio per poterla giustificare: quali competenze e conoscenze sono necessarie e con quale profondità? E qualora la scelta di affidarsi totalmente ad un motore AI dovesse rivelarsi errata, chi paga l’errore? AI? Lo sviluppatore? Chi?>>.
Ne abbiamo parlato nell’incontro dei soci e qui di seguito riportiamo il link alla registrazione”.
NOTA (1) l’Engine Statistico è un sistema che dato un input fornisce un output statisticamente più probabile. Così in gergo vengono chiamati anche i software che (dato un input utente) interrogano i Modelli (LLM) e ne forniscono il conseguente output statistico (i token). [Fonte: Ugo F.]
ACW
9/06/2025
RispondiRispondi a tuttiInoltra |