What is AI bias? And why should it concern us?

Immaginiamo di usare ChatGPT o Claude per scrivere un algoritmo che valuta i candidati a una posizione lavorativa. Il codice sintatticamente potrebbe essere corretto, magari superare i test, e potremmo metterlo in produzione (online).
Ma se quel codice in realtà scartasse le donne o le persone over 45, nonostante abbiano le stesse qualifiche degli uomini giovani che invece passano?
L'AI, nella generazione dell'algoritmo potrebbe essere discriminatoria.
Ma cos'è esattamente il bias nell'AI?
Prima di entrare nella ricerca, andiamo a capire cos'è il bias e da dove proviene questo problema.
I modelli AI vengono addestrati su dataset, ovvero grandi raccolte di dati. Il punto è che questi dati riflettono il mondo così com'è, compresi i suoi squilibri storici e sociali.
Di conseguenza, l'AI agisce come uno specchio: se il dataset contiene più immagini di volti di una certa etnia rispetto ad altre, il modello imparerà che quell'etnia è "più rappresentativa".
Se i dati di assunzione storici mostrano che certi ruoli erano occupati principalmente da uomini, il modello potrebbe imparare che gli uomini sono candidati migliori per quei ruoli.
Il bias è una distorsione nei dati che si trasferisce al modello e ai suoi output.
Ad esempio: un dataset medico composto prevalentemente da pazienti maschi porterà il modello ad essere meno accurato nella diagnosi di donne perché ha visto pochissimi esempi femminili durante il training.
Una ricerca recente molto preoccupante
A maggio 2026, tre ricercatori dell'Università di Glasgow, Yuxi Chen, Yutian Tang e Timothy Storer, hanno pubblicato su Arxiv uno studio preoccupante per chiunque usi gli LLM per generare codice in contesti decisionali.
Il titolo è "Measuring and Mitigating Bias in Code Generated by Large Language Models." I modelli testati sono GPT-4o e Gemini, due tra gli strumenti più usati al mondo per la generazione di codice.
La domanda è: il codice generato da questi modelli per sistemi decisionali, come valutazione del credito, selezione dei candidati, decisioni legali, discrimina in base ad attributi protetti come sesso, età, etnia e religione?
La risposta è sì, anche se non proprio in modo uniforme: alcuni attributi risultano quasi sempre puliti, altri compromessi.
Vale la pena ricordare che GPT-4o e Gemini hanno entrambi sistemi di debiasing per i contenuti in linguaggio naturale. Ma il bias che questa ricerca misura è diverso: non riguarda le risposte esplicite del modello, ma la logica statistica che emerge quando il modello genera codice per sistemi decisionali. Un tipo di bias che i filtri attuali non intercettano.
Come funziona il bias nel codice generato
Per capire il problema dobbiamo prima capire come i ricercatori lo hanno misurato.
Hanno usato tre dataset standard nella ricerca sulla fairness: German Credit Risk (1.000 individui, per il credit scoring), Adult Census Income (quasi 27.000 individui, per la stima del reddito) e COMPAS (2.539 individui, per la valutazione del rischio di recidiva penale).
Per ciascun dataset hanno chiesto a GPT-4o e Gemini di generare funzioni di decisione, algoritmi che dato un insieme di attributi di una persona restituiscono un output binario, ovvero se il richiedente ad esempio è stato approvato o rifiutato.
Successivamente hanno preso la stessa persona, con le stesse identiche qualifiche, e hanno cambiato solo un attributo protetto. Stessa età, stesso reddito, stessa storia creditizia, ma magari sesso diverso, età, provenienza.
Se il codice restituiva output diversi per persone identiche tranne che per quell'attributo, il codice era considerato biased. Su un campione di 100 funzioni generate per ogni condizione, i ricercatori hanno calcolato il CBS (Code Bias Score): la percentuale di funzioni che risultano biased.
I risultati: il bias è diffuso ma tutt'altro che uniforme. Su Adult, l'attributo Age arriva a un CBS di 0.99, cioè il 99% delle funzioni generate discrimina in base all'età. Sex si ferma a 0.78. Race e Region, sugli stessi dati, restano a 0.00: bias praticamente assente. Lo stesso schema si ripete su COMPAS, dove Age (0.82) e Sex (0.74) sono molto più problematici di Race (0.07). Con Gemini i numeri sono quasi sovrapponibili (Adult/Age 1.00, Adult/Sex 0.84, COMPAS/Race 0.20), questo è segno che non è un difetto di un unico modello.
Casi concreti sperimentati
Il paper si concentra su tre categorie di sistemi decisionali dove il bias nel codice generato da AI ha conseguenze legali e sociali immediate.
Il Credit scoring
Un sistema di valutazione del credito generato da LLM che discrimina in base al sesso viola normative antidiscriminatorie sia negli USA che in Europa. Sul dataset German Credit, GPT-4o produce un CBS di 0.21 sull'attributo Sex: più di una funzione su cinque tratta diversamente uomini e donne a parità di condizioni.
Valutazioni candidature
Un algoritmo di selezione dei candidati che dà risultati diversi a persone con le stesse qualifiche ma sesso diverso viola le normative antidiscriminatorie in praticamente ogni giurisdizione occidentale.
Legal decision making
I sistemi di supporto alle decisioni legali che incorporano bias legati a etnia o età, come nel caso COMPAS, sono potenzialmente illegali in molti contesti e certamente eticamente inaccettabili, soprattutto perché qui il bias sull'età (CBS 0.82) è più marcato di quello razziale (CBS 0.07).
Il problema del vibe coding
Il vibe coding, ovvero generare codice con AI accettandolo con revisione minima o nulla, è diventato una pratica comune. Il problema è che il codice che generano per i sistemi decisionali può incorporare bias che non sono visibili nel codice stesso.
Non è necessario che ci sia una riga di codice sbagliata, il bias emerge dai pattern statistici appresi durante il training, si manifesta nell'interazione tra gli attributi usati e i pesi impliciti del modello, ed è invisibile a una code review standard.
Il paper ci mostra un'altra cosa interessante, il modo in cui scriviamo il prompt cambia drasticamente il risultato. Se diciamo al modello di usare tutti gli attributi disponibili invece di lasciarlo scegliere, il bias esplode. Su German Credit, ad esempio, il CBS di Job passa da 0.15 a 0.90 e quello di Housing da 0.03 a 0.83, semplicemente perché il modello viene forzato a usare informazioni che considererebbe irrilevanti.
L'unico modo per rilevarlo è fare esattamente quello che hanno fatto i ricercatori di Glasgow: testare tutto il codice con individui identici che differiscono solo per attributi protetti.
Il problema è che probabilmente lo fanno in pochissimi.
Non basta chiedere all'AI di essere equa
I ricercatori hanno testato quattro strategie di mitigazione per ridurre il bias nel codice generato:
1. Few-Shot: fornire esempi di codice non discriminatorio prima di chiedere la generazione.
2. Chain-of-Thought: chiedere al modello di ragionare esplicitamente sui suoi passi prima di generare il codice.
3. Few-Shot Chain-of-Thought: combinazione delle due strategie precedenti.
4. Multi-agent: un sistema dove un agente genera il codice, un secondo lo controlla per rilevare bias, e un terzo lo raffina sulla base del feedback, per un massimo di 5 iterazioni.
Il risultato: il bias si riduce ma non scompare. La strategia più efficace ed affidabile è il Few-Shot Chain-of-Thought, che garantisce i cali più consistenti: su Sex in Adult il CBS crolla da 0.78 a 0.00, su COMPAS da 0.74 a 0.00.
Il Multi-agent funziona ma in modo meno stabile: sullo stesso dataset, sull'attributo Age, si ferma a 0.47 contro lo 0.99 di partenza, un miglioramento reale ma nettamente inferiore a quello di FS-CoT (0.06 sullo stesso caso).
C'è anche un'altra cosa da segnalare: se diciamo esplicitamente al modello quale attributo è protetto e gli chiediamo di evitarlo, il bias misurato crolla a zero su tutti i dataset. Ma i ricercatori stessi avvertono che questo risultato va letto con cautela: il modello impara a evitare la variabile esplicita, non necessariamente a costruire una logica equa.
Cosa dice la legge in Europa?
Per chi sviluppa in Italia e in Europa il quadro normativo è abbastanza severo. Anche se lo studio di Glasgow fa riferimento principalmente a normative statunitensi (Fair Credit Reporting Act, Equal Employment Opportunity Commission) e, per il caso specifico del credito, alla Carta dei Diritti Fondamentali dell'Unione Europea e alla legge tedesca sulla parità di trattamento (AGG).
Le considerazioni sul GDPR e sull'AI Act che seguono sono un'estensione al contesto normativo europeo, utile per chi sviluppa qui.
Il GDPR all'articolo 22 regola le decisioni automatizzate che producono effetti significativi sulle persone. Se un algoritmo prende decisioni automatiche su credito, lavoro o simili, hai obblighi precisi di spiegabilità e di non discriminazione.
L'AI Act europeo, entrato in vigore nel 2024, classifica i sistemi AI usati in contesti di impiego, gestione dei lavoratori e accesso al credito come sistemi ad alto rischio, soggetti a requisiti stringenti di trasparenza, testing e documentazione.
Usare codice generato da LLM in questi contesti senza un testing preciso per il bias è potenzialmente violazione di legge.
Le sanzioni GDPR arrivano fino al 4% del fatturato annuo mondiale e le sanzioni dell'AI Act possono arrivare fino a 30 milioni di euro o al 6% del fatturato mondiale per le violazioni più gravi.
Cosa fare concretamente
La ricerca indica alcune direzioni:
• Testare il codice generato con counterfactual testing
Prima di mettere in produzione qualsiasi sistema decisionale scritto con AI, bisogna eseguire test con input identici che differiscono solo per attributi protetti. Sesso, età, origine, religione;
• Non forzare l'uso di tutti gli attributi disponibili
Il paper mostra che uno dei fattori che aumenta di più il bias è costringere il modello a usare tutti gli attributi come input, anche quando non sono necessari: su alcuni attributi il CBS può quintuplicarsi. Lasciare al modello la libertà di scartare attributi irrilevanti riduce il rischio;
• Non fidarsi ciecamente di un CBS a zero
Se chiedi esplicitamente al modello di evitare un attributo protetto, il bias misurato può azzerarsi senza che il ragionamento sottostante sia davvero equo. Vale la pena verificare anche gli attributi correlati, non solo quello nominato nel prompt;
• Non affidarsi solo al prompt
Come dimostrato dalla ricerca, le strategie prompt-based riducono ma non eliminano il bias, e tra queste il Few-Shot Chain-of-Thought si è dimostrato il più affidabile. Il testing è comunque l'unico approccio che fornisce garanzie reali.
Conclusione
Il codice generato da GPT-4o e Gemini per sistemi decisionali è spesso biased, ma non in modo uniforme: alcuni attributi (età, sesso) risultano sistematicamente più a rischio di altri (etnia, area geografica).
Le strategie di mitigazione attuali riducono il problema ma non lo eliminano, e tra queste il Few-Shot Chain-of-Thought è quella con i risultati più solidi.
Se usiamo l'AI per generare codice che prende decisioni sulle persone, dobbiamo sempre assicurarci di fare un audit di fairness (equità), poiché è una necessità legale ed etica.
Fonte: Chen Y., Tang Y., Storer T., "Measuring and Mitigating Bias in Code Generated by Large Language Models", Università di Glasgow, arXiv:2606.00049 (2026).