№ xlii L'Almanacco di GST · EN IT

Enrico·rubbo.li

Tech · Longevity · Mercati · Opinioni ※Enrico Rubboli, propr. ※Dubai, UAE
essay October 19, 2026 11 min

Calibrare Laya: formulazione, direzione e soglie delle domande

La prima domanda che ho fatto al modello era quella naturale, e il modello ci ha risposto onestamente, che è esattamente come ho scoperto che la domanda era sbagliata. Avevo una pila di messaggi Telegram e un bisogno semplice: tenere quelli con sostanza, lasciar cadere i saluti vuoti. Così ho chiesto al modello decisionale: questo messaggio ha sostanza? Ha assegnato a un «gm» nudo 0,45 e alla domanda vera e rispondibile di un membro 0,45. Due messaggi diversi, un numero solo, nessuna separazione. Il modello non era rotto. Mi stava dicendo il vero sulla domanda che gli avevo posto, e tutto ciò che so sulla calibrazione di un decision model comincia da lì.

Chiedete cosa dice il testo, non cosa farne

La prima lezione riguarda la grammatica, nel senso linguistico. Un modello decisionale di questo tipo è un encoder che fa qualcosa di molto simile alla textual entailment: legge un passo e un’ipotesi e riferisce quanto il passo supporti l’ipotesi. Questa forma ha conseguenze. La domanda funziona quando chiede cosa il testo è; va in tilt quando chiede cosa se ne debba fare.

L’esempio cautelativo della documentazione stessa è un uccello che attraversa gli spazi tra tubi: «dove si trova l’uccello rispetto allo spazio?» produce probabilità graduate pulite, mentre «in che direzione deve muoversi l’uccello?» esce invertito su ogni checkpoint, perché la parola-opzione «su» tira verso la parola «sopra» nello stato.[1] Domande di percezione, poi il vostro codice mappa la risposta su un’azione. Il modello giudica; il programma agisce.

La seconda lezione segue dalla prima e questo mese ha pagato l’affitto. Le domande possono essere vere in una direzione e false nell’altra, e la direzione conta. «Questo ha sostanza?» interroga un’assenza, e le assenze sono entailment deboli. La formulazione che alla fine ha separato i saluti da tutto il resto è quella rovesciata: «Questo messaggio è SOLAMENTE un saluto o un complimento?». Misurata su messaggi veri, la domanda rovesciata metteva i saluti tra 0,72 e 0,91 e tutto ciò che ha sostanza a 0,46 o sotto. Quella naturale aveva dato a un saluto e a una domanda genuina lo stesso punteggio; quella innaturale ha messo le chiacchiere leggere di un’intera lingua da una parte di un confine.[2]

Quattro opzioni battono una

Lo spam ha avuto lo stesso trattamento. La domanda ovvia, «è spam?», è una domanda sì/no, e le domande sì/no costringono il modello a spremere ogni specie di messaggio indesiderato e ogni specie di messaggio impacciatissimo nello stesso cancello. Metà dei saluti del mio campione usciva etichettata come spam, il che in produzione significa cancellare in silenzio membri che hanno detto buongiorno.

La correzione è stata smettere di fare la domanda sì/no e fare una domanda di classificazione con spazio per avere ragione: «Che tipo di messaggio è?», con quattro opzioni descritte: saluto, domanda, discussione, spam. Le descrizioni contano, perché la descrizione è ciò su cui il modello confronta il testo; «spam: una pubblicità, una truffa, un phishing, un falso giveaway o una promozione con link o richiesta di contatti» dà all’entailment qualcosa a cui aggrapparsi. Sul campione, la domanda a quattro vie separava lo spam in cima con nettezza: i messaggi di spam facevano da 0,92 a 1,00 e tutto il resto da 0,00 a 0,31. Una domanda, un forward pass, e due verdetti letti dalla stessa distribuzione: la probabilità di spam muove la scala di cancellazione, la probabilità di saluto muove la pulizia, perché entrambe le domande viaggiano gratis nella stessa chiamata.[2]

La calibrazione è il prodotto

Ecco la parte che merita più attenzione di qualsiasi benchmark: il modello viene distribuito con probabilità oneste, e voi lo distribuite con soglie, e il divario tra queste due frasi è dove vive ogni falso positivo. Il checkpoint multilingue che rende il bot indipendente dalla lingua arriva anche deliberatamente non calibrato, temperatura 1,0, il che significa che riferisce sereno 100 per cento e 0 per cento, e se leggete quei numeri come certezze avrete un bot che cancella con confidenza totale ed errore totale. Le soglie predefinite nella mia configurazione, cancella a 0,85, flag a 0,60 per lo spam, cancella a 0,70 per i saluti, non sono state scelte dalla documentazione. Vengono dalla misurazione, e la misurazione viene dalla pipeline in modalità dry-run, che registra cosa avrebbe fatto, sui messaggi veri di un gruppo vero.[2]

Una valutazione indipendente del modello dà il quadro più ampio e la giusta quantità di umiltà. Su 500 esempi etichettati senza alcun tuning, il modello era forte sulle categorie nette, 96 per cento sullo spam SMS, e debole su quelle graduate, 35 per cento su una scala a cinque stelle, con l’errore di calibrazione che segue la stessa pendenza. La conclusione della valutazione è quella da interiorizzare: aspettatevi che un modello decisionale funzioni out of the box su categorie nette e controlli sì/no, e pianificate di riformulare, fare fine-tuning o usare una cascata per tutto ciò che è ordinale o sfumato.[3]

Lo script di valutazione che viaggia col bot è il ciclo di calibrazione in cinquanta righe: dategli un JSONL dei messaggi del vostro gruppo, scegliete le soglie, e vi riferisce cosa avrebbe fatto la pipeline, domanda per domanda, con quelle soglie. Raccogliete da cinquanta a duecento messaggi veri, compresi quelli di confine, e il congetturare finisce. Se i numeri restano corti, il modello si può fare fine-tuning sulle decisioni del vostro dominio, e il salto non è sottile: da 0,362 a 0,766 sul suo benchmark typed-decisions per il checkpoint specializzato, addestrato su GPU gratuite del cloud partendo da un notebook distribuito col repository.[4]

Le ragioni contro il mio stesso mestiere

Prima le verità scomode. Quindici messaggi scelti a mano che si separano in pulito non sono una prova; sono un aneddoto con la virgola decimale, ed è per questo che la documentazione del bot stampa la dimensione del campione e l’avvertimento accanto a ogni numero. Il selection bias lo aggrava: messaggi scelti perché interessanti non sono messaggi così come arrivano alle tre di notte. L’adattamento eccessivo della formulazione al dialetto di un gruppo è la trappola più sottile, la domanda che separa lo spam della vostra comunità potrebbe stare leggendo la vostra comunità e non il mondo. E c’è un teatro della misurazione che un modello decisionale invita: soglie e numeri di confidenza sembrano rigore anche quando l’insieme etichettato sotto è sottile. I numeri sono onesti quanto gli esempi.

Contro tutto questo sta un fatto solido: una soglia misurata sui vostri dati, anche in modo grossolano, batte una soglia importata dalla congettura di qualcun altro. Il modello restituisce le sue probabilità in millisecondi; la calibrazione è la parte che può fare solo chi possiede il dataset.

Una soglia è una promessa che fate ai vostri membri su cosa accadrà alle loro parole. Misurate prima di farla.


  1. NandhaKishorM/laya, Apache-2.0, e la guida di integrazione Laya: il modello fa qualcosa di simile alla textual entailment; le domande di percezione battono le domande d’azione; le descrizioni delle opzioni sono la superficie di confronto; le liste di opzioni degradano oltre le ~20 voci. L’esempio dell’uccello e dei tubi viene dai casi misurati della guida.
  2. erubboli/telegram_spam_bot, sezione del README «Formulazione delle domande (misurata, non indovinata)»: la domanda choice a quattro vie (saluto / domanda / discussione / spam) separava lo spam al 100% del campione (spam 0,92-1,00, tutto il resto 0,00-0,31) dove una binaria «è spam?» etichettava male metà dei saluti; la domanda saluti rovesciata dava ai saluti 0,72-0,91 contro messaggi con sostanza a 0,46 o sotto, dove «ha sostanza?» dava a «gm» e a una domanda vera lo stesso 0,45. Predefiniti: cancella a 0,85, flag a 0,60, saluti cancella a 0,70. Campione di circa 15 messaggi multilingue scelti a mano; ricalibrare su 50-200 messaggi veri via scripts/evaluate_laya.py è dichiarato obbligatorio. Latenza CPU circa 130-150 ms per messaggio.
  3. Laya: open-source alternative to TypeSafe Jev, valutazione indipendente su 500 esempi, settembre 2026: 96% sullo spam SMS e 93% sulle notizie per Laya senza tuning, contro 35% su una valutazione a cinque livelli e 65% sul rilevamento di prompt injection; errore di calibrazione atteso 0,05-0,06 sui compiti facili, 0,34-0,40 su quelli difficili.
  4. NandhaKishorM/laya: il checkpoint typed-decisions fa 0,766 contro 0,362 del modello inglese base sul benchmark typed-decisions; il notebook di fine-tuning gira su GPU Kaggle gratuite. Il bot e la sua pipeline sono descritti in Un bot antispam Telegram su un decision model locale; il modello stesso in Dagli LLM ai System One models: Jev e Laya.