Non siamo più in grado di riconoscere i testi generati dalle IA?

Una volta era facile capire quando un testo era generato automaticamente: la sua struttura aveva un non so che di artefatto. Ora a quanto pare gli LLM sono arrivati a fregarci sempre meglio. MomScience riporta il risultato di due studi, nemmeno troppo recenti (si parla del 2023) dove il tasso di errore nel definire se un testo era umano o artificiale era intorno al 50%: essenzialmente come tirare a indovinare. Peggio ancora, nel caso di editor di riviste tecniche il tasso di riconoscimento corretto è stato molto inferiore al 50%: in pratica un reverse benchmark.

Come mai? Innanzitutto, le IA ormai non fanno più errori grammaticali e refusi, a differenza di chi scrive spesso di fretta e non rilegge il suo testo (quorum ego). In pratica, al momento è meglio fidarsi di un testo più ruspante. Credo però che ci sia anche un altro punto: il fare una verifica superficiale, senza entrare nel merito del significato del testo. Un altro studio, stavolta del 2026, elenca gli indizi cercati dai professori quando controllano gli elaborati ricevuti. I primi quattro sono la presenza di allucinazioni nei fatti presentati; allucinazioni nelle fonti citate; mancanza (appunto!) di errori grammaticali e ripetizioni del testo. Peccato che se il compito è quello di riassumere un testo è molto improbabile che le IA facciano di questi “errori”, o più correttamente lascino tracce visibili!

Quello a cui forse dovremo rassegnarci è che non è più importante sapere chi (o cosa…) ha scritto un testo, ma dobbiamo concentrarci sul suo contenuto. Ho come il sospetto che per molta gente ciò sarà ancora più difficile :-)

IA e clean room

Nella sua newsletter, Simon Willison racconta di un caso interessante he riguarda le reimplementazioni di codice. L’esempio tipico, raccontato anche nel suo post, è stato quando Compaq ha preso un gruppo di sviluppatori per disassemblare il BIOS dei PC IBM e scrivere un documento di specifiche relative; il documento è stato dato a un altro gruppo di sviluppatori che hanno creato un BIOS compatibile ma senza problemi di copyright, perché a essere copiate sono state le funzionalità e non il codice. Questa metodologia si chiama in gergo “clean room”, come le camere pulite dove si costruiscono (costruivano? io me le ricordo a fine anni ’80…) i chip, perché non c’è nessuna contaminazione. Il problema è che un metodo del genere è molto costoso, in termini di risorse e soprattutto di tempo. Ma ora ci sono le IA che scrivono codice: non si può far fare il lavoro a loro?

È proprio quello che è stato fatto con la libreria Python chardet, che cerca di determinare qual è il codifica dei caratteri usata in un documento. Il programma è stato creato nel 2006 da Mark Pilgrim e rilasciato sotto la licenza LGPL, e portato avanti da vari sviluppatori, soprattutto da Dan Blanchard che ha praticamente preso le redini del progetto dal 2012 e la versione 1.1. Ora Blanchard ha rilasciato una nuova versione, la 7.0.0 (al momento siamo alla 7.0.2) definita come “riscrittura da zero” con l’aiuto di Claude Code e rilasciata con la MIT license, il che significa che può essere usata anche senza far automaticamente far diventare open source tutto il progetto che la usa. Pilgrim però ha obiettato, dicendo che non era possibile cambiare licenza al software, e da qui è partita una diatriba. Blanchard ha spiegato che è partito dalla generazione di un insieme di specifiche usando superpowers, per poi partire ex novo con un progetto e istruire Claude Code a non usare codice GPL oppure LGPL. Il risultato, usando il tool JPlag che verifica la somiglianza del codice con un altro dato, è che la similarità massima è dell’1,29%.

Willison elenca poi una serie di punti che rendono il caso complicato: Blanchard sicuramente conosce fin troppo bene il codice originale, avendoci lavorato su per tre lustri; Claude Code ha sicuramente referenziato parti del codice originale, come il file che elenca le proprietà delle varie codifiche, ma d’altra parte Pilgrim aveva scritto il codice partendo da un’implementazione in C con la licenza Mozilla; Claude è stato quasi sicuramente addestrato anche con il materiale di chardet, e la sua “memoria” è sicuramente molto più affidabile di quella degli sviluppatori che compilano in una clean room. Ma naturalmente il vero problema non è tanto chardet, che rimarrebbbe con una licenza libera. Il software libero nasce proprio in contrapposizione a quello proprietario: cosa succede se il pendolo si sposta dall’altra parte e le aziende sfruttano il software libero per averne dell’altro bloccato?

Quizzino della domenica: Cinque bambini

790 – algebra

Ai giardinetti ci sono cinque banbini che hanno tutti meno di dieci anni. La cosa buffa è che considerando le loro età come numeri interi (quindi nessuno ha per dire 2,5 anni) la media delle loro età, la mediana (l’età del terzo in ordine di vecchiaia), la moda (l’età più rappresentata nel gruppo) e la gamma (la differenza tra l’età del più vecchio e quella del più giovane) è la stessa. E la cosa ancora più buffa è che domani, quando uno dei bambini compirà gli anni, mediana e moda saranno ancora uguali, ma il loro valore sarà diverso. Quanti anni hanno (oggi) i bambini?

i cinque bambini
(trovate un aiutino sul mio sito, alla pagina https://xmau.com/quizzini/p790.html; la risposta verrà postata lì il prossimo mercoledì. Problema di Jack Murtagh, da Scientific American; immagine di oksmith modificata, da OpenClipArt.)

150 (anni di) invenzioni italiane (libro)

copertina Comincio con un plauso al formato grafico del volume: una coppia di pagine dedicata a ogni brevetto, con un particolare dei disegni associati, un brano del testo che accompagnava la domanda di brevetto e la breve storia dell’inventore. La scelta di Marchis è stata quella di dedicarsi ai brevetti rilasciati negli USA, e di prenderne uno per anno, scegliendo fior da fiore: c’è Fermi che brevetta un modo per ottenere elementi radioattivi, ma anche la caffettiera. Nel mezzo abbiamo una storia d’Italia e degli italiani, ma anche il progressivo modificarsi del concetto di brevetto: si parte dalle singole persone e si arriva abbastanza presto alle aziende che si prendono i diritti commerciali, e ci si sposta dalle invenzioni agli oggetti di design. Lettura divertente.

Vittorio Marchis, 150 (anni di) invenzioni italiane, Codice 2017², pag. 344, € 29, ISBN 9788875787011 – come Affiliato Amazon, se acquistate il libro dal link Bezos mi dà qualche centesimo dei suoi utili
Voto: 5/5

La matematica che conta – Presentazione in Hoepli

la locandina Come forse avrete letto in giro, la Hoepli non se la passa bene; c’è il forte rischio che la casa editrice sia ceduta a qualche grande gruppo, e soprattutto che la libreria venga chiusa, con le ripercussioni sui dipendenti. Quale migliore occasione per un milanese di andare venerdì prossimo (13 marzo) a vedere la presentazione del libro del mio amico Daniele Gouthier La matematica che conta? Non ho ancora fatto in tempo a leggere il libro – io sono da solo a leggere, e a scrivere sono così in tanti! – ma so bene come scrive, visto che ho letto e apprezzato Matematica fuori dalle regole, e sono certo che anche questa sua nuova fatica possa essere più interessante per chi con la matematica ha sempre avuto un rapporto complicato.
L’unica cosa che mi dispiace è che io il 13 sarò nel frusinate – ovviamente a parlare di matematica… il Pi Day è dietro l’angolo – e quindi non potrò essere presente.

La Stampa (s)venduta

Io continuo a essere un torinese dentro, e quindi La Stampa (la Busiarda, come la si chiamava) era sempre stata una presenza costante, se non amica. Quando ero ragazzo c’era anche la più ruspante e popolana Gazzetta del Popolo che ogni tanto arrivava a casa, ma la Stampa era una presenza costante, e ho imparato a leggere anche dagli articoli. Crescendo ho imparato a riconoscere quando Giuanin Lamiera (Gianni Agnelli, se non l’aveste capito) faceva scrivere quello che faceva comodo a lui: ma sapevo di poter leggere tante firme importanti, su temi che non essendo legati alla Fiat potevano essere trattati senza condizionamenti. Nel giornale convivevano due anime: quella del quotidiano locale, con edizioni per ogni provincia piemontese e ligure, e quella del quotidiano di opinione, che non aveva una grande vendita al di fuori di quelle due regioni e di Roma, ma manteneva una meritata importanza.

Poi Agnelli è morto, e il giornale è stato lasciato andare a piccolo cabotaggio, fino a che non è arrivato il Nipote, John Elkann, che evidentemente aveva come sua missione personale quella di affondarlo del tutto, o probabilmente di affondare il settore della carta stampata. Ha comprato Gedi e l’ha distrutta, prima vendendo tutti i quotidiani locali e poi facendo diventare Repubblica una mezza barzelletta che non faceva nemmeno ridere. Non che i primi anni 2000 fossero chissà che, ma da quella china Repubblica è rotolata giù sempre più in fretta… mentre la povera Stampa era vista come l’equivalente del secondo operatore delle compagnie telefoniche: un metodo per presidiare il territorio spendendo il meno possibile.

Ora è stato firmato il contratto preliminare per la vendita della Stampa al gruppo Sae (e a non meglio identificati imprenditori del nord-ovest: l’anima locale c’è sempre). Non so cosa succederà, e se la nuova dirigenza riuscirà a usare lo zoccolo duro piemontese come base per ricostruire un quotidiano che valga la pena di essere non dico nemmeno comprato ma almeno letto: spero di sì, perché la Busiarda resta nel mio cuore, ma non ci credo più di tanto.

I dadi di Sicherman

Lanciate due dadi: è più facile che otteniate 7 rispetto a 2 o 12. Questo dovrebbe esservi noto. Probabilmente vi sarete anche messi a fare una volta i conti, trovando che i vari valori da 2 a 12 possono essere ottenuti così:
2: 1 modo (1+1)
3: 2 modi (1+2) (2+1)
4: 3 modi (1+3) (2+2) (3+1)
5: 4 modi (1+4) (2+3) (3+2) (4+1)
6: 5 modi (1+5) (2+4) (3+3) (4+2) (5+1)
7: 6 modi (1+6) (2+5) (3+4) (4+3) (5+2) (6+1)
8: 5 modi (2+6) (3+5) (4+4) (5+3) (6+2)
9: 4 modi (3+6) (4+5) (5+4) (6+3)
10: 3 modi (4+6) (5+5) (6+4)
11: 2 modi (5+6) (6+5)
12: 1 modo (6+6)

Vi siete mai chiesti se è possibile avere due dadi diversi da quelli standard, ma che danno la stessa distribuzione di risultati? Naturalmente ci aspettiamo che su ogni faccia dei dadi ci sia almeno un puntino, e che il numero di puntini sia sempre un intero. La risposta è affermativa, ma c’è un solo altro modo di costruirli, trovato da George Sicherman e reso noto da Martin Gardner nel 1978. I dadi hanno questi valori sulle facce: il primo (1, 2, 2, 3, 3, 4) e il secondo (1, 3, 4, 5, 6, 8). Si può verificare facilmente che le combinazioni possibili sono queste:
2: 1 modo (1+1)
3: 2 modi (2+1) (2+1)
4: 3 modi (1+3) (3+1) (3+1)
5: 4 modi (1+4) (2+3) (2+3) (4+1)
6: 5 modi (1+5) (2+4) (2+4) (3+3) (3+3)
7: 6 modi (1+6) (2+5) (2+5) (3+4) (3+4) (4+3)
8: 5 modi (2+6) (2+6) (3+5) (3+5) (4+4)
9: 4 modi (1+8) (3+6) (3+6) (4+5)
10: 3 modi (2+8) (2+8) (4+6)
11: 2 modi (3+8) (3+8)
12: 1 modo (4+8)

Come si possono trovare questi valori per i dadi? C’è un trucco molto interessante in matematica: quello di usare le funzioni generatrici. Una funzione generatrice è un modo per “impacchettare” una successione di interi nei coefficienti di un polinomio fittizio. La funzione generatrice per un dado è così \( x + x^2 + x^3 + x^4 + x^5 + x^6 \), che rispecchia per l’appunto il fatto che i valori da 1 a 6 (i coefficienti da \( x \) a \( x^6 \) sono tutti 1. L’equivalente di lanciare due dadi è moltiplicare questa funzione per sé stessa: se ci pensate un attimo, infatti, i fattori \( x^k \) sono ottenuti dalle moltiplicazioni \( x^h \cdot x^l \), dove \( h + l = k \); quindi è proprio la definizione di funzione generatrice. Abbiamo così che il lancio di due dadi corrisponde alla funzione generatrice \( (x + x^2 + x^3 + x^4 + x^5 + x^6)^2 \), che si fattorizza come \( (x(x+1)(x^2-x+1)(x^2+x+1))^2 \). Il trucco è ora quello di scrivere questo polinomio di dodicesimo grado come prodotto di due polinomi (i due dadi…) sapendo che ciascuno dei due polinomi deve avere un fattore \( x \) (altrimenti come otteniamo 2 = 1+1?), che i coefficienti siano tutti positivi (mica possiamo avere un numero negativo di facce con un certo numero di punti) e che la somma di tutti i coefficienti deve essere 6 (un dado ha sei facce). Per verificare la somma dei coefficienti basta calcolare il valore del polinomio per \( x = 1 \), ottenendo 1 per \(x\), 2 per \(x + 1\), 1 per \(x^2 – x +1 \) e 3 per \(x^2 + x +1 \). Abbiamo visto che i due fattori \(x\) stanno uno per polinomio; quindi anche i \(x^2 + x +1 \) devono essere separati o altrimenti un polinomio avrebbe somma dei coefficienti almeno 7. A questo punto anche i due \(x + 1\) devono essere separati per lo stesso motivo. Se separiamo anche i due \(x^2 – x +1 \) otteniamo i dadi di partenza; se invece li lasciamo insieme otteniamo i due polinomi \( x + 2x^2 + 2x^3 + x^4 \) e \( x + x^3 + x^4 + x^5 + x^6 + x^8 \) che sono effettivamente funzioni generatrici e corrispondono per l’appunto ai dadi di Sicherman.

Non so se siete riusciti ad arrivare fino in fondo alla dimostrazione teorica: confesso che dovendo scrivere il post ho finalmente capito come funzionano le funzioni generatrici. Non è mai troppo tardi… Fortunatamente non è necessario tutto l’armamentario teorico per verificare che i dadi funzionano, ma basta il conto pratico visto sopra.

Chissà, magari si possono comprare dei dadi di Sicherman per stupire i nostri amici quando giochiamo…