CLM-8B è un decision model open source rilasciato il 23 settembre 2026 da ricercatori di Stanford e NVIDIA. Non scrive testo: riceve lo stato di un agente AI e un elenco di azioni possibili, poi sceglie quella giusta confrontando vettori. Nei test degli autori va fino a 9 volte più veloce di Jev di TypeSafe, ha pesi con licenza Apache 2.0 e gira su una sola GPU NVIDIA.
In questa guida ti spiego cos'è CLM-8B, come funziona, come si installa in cinque passaggi e, soprattutto, quando ha senso usarlo in un progetto reale. Leggo i numeri con le cautele del caso, perché parte dei risultati è stata misurata su sottoinsiemi di benchmark e con teste addestrate apposta.
CLM-8B in breve: le cose da sapere
- Cos'è: il primo Contrastive Language Model (CLM) aperto, un modello che sceglie tra opzioni note invece di generare parole.
- Chi l'ha fatto: il progetto è guidato da Jacky Kwok di Stanford, con Hangoo Kang, Tarun Suresh, Jon Saad-Falcon, Marco Pavone, Christopher Ré e Azalia Mirhoseini. Il codice è pubblicato dall'organizzazione Contrastive-LM.
- Base: un Qwen3-8B congelato più due piccole teste di proiezione da circa 20 milioni di parametri l'una.
- Licenza: Apache 2.0 per codice e pesi, quindi uso commerciale consentito.
- Velocità: fino a 9 volte più veloce di Jev nel test migliore, circa 13 volte con un migliaio di azioni candidate.
- Prezzo: nessun canone. Paghi solo l'hardware o il server GPU su cui lo fai girare.
Cos'è un decision model AI e perché ne parlano tutti
Un decision model AI è un modello costruito per una sola cosa: prendere una decisione veloce dentro un software. Gli dai un contesto (un ticket, la schermata di un agente, il risultato di un tool) e una domanda con risposte già definite. Lui restituisce l'opzione più probabile con un punteggio.
Un LLM classico, invece, genera testo un token alla volta. Anche quando la risposta che ti serve è solo il nome di una funzione, deve leggere tutto il prompt e scrivere la risposta parola per parola. Su una decisione singola non pesa molto. Su un agente che prende decine di micro-decisioni per ogni compito, quei millisecondi si sommano.
La categoria è esplosa a settembre 2026 con Jev di TypeSafe, che ha chiamato questi modelli "System One", dal Sistema 1 di Daniel Kahneman: il pensiero rapido e automatico. Nelle settimane successive sono arrivati CLM-8B e le proposte di OpenAI, Cloudflare, AWS, Perplexity e Microsoft. Se vuoi capire bene il modello da cui è partito tutto, ho scritto una guida su come funziona Jev di TypeSafe e come usarlo nel codice.
Come funziona CLM-8B: due encoder, un solo spazio
L'idea è semplice da spiegare. CLM-8B trasforma lo stato attuale in un vettore e trasforma anche ogni azione possibile in un vettore, nello stesso spazio. Poi calcola quanto sono vicini (prodotto scalare più softmax) e restituisce una distribuzione di probabilità sulle azioni. Vince l'azione più vicina allo stato.
L'architettura
Sotto c'è un Qwen3-8B congelato, cioè mai riaddestrato, usato come motore di comprensione del testo. Sopra ci sono due teste di proiezione: una per gli stati, una per le azioni. Sono le uniche parti che vengono allenate, circa 20 milioni di parametri ciascuna. Il file della testa che scarichi al primo avvio pesa 75 MB.
Per questo si chiama "8B": il numero indica il backbone, non la parte addestrata. È lo stesso principio degli embedding che usi nei sistemi RAG, applicato però alla scelta di un'azione invece che alla ricerca di un documento. Se il tema ti è nuovo, parto da qui nella guida sui database vettoriali e il RAG.
L'addestramento in tre fasi
Il modello è allenato con InfoNCE, una funzione di perdita contrastiva che avvicina ogni stato all'azione corretta e lo allontana da quelle sbagliate. Le fasi dichiarate sono tre:
- Pre-training su circa 60 milioni di coppie domanda e risposta del dataset Nemotron DQA di NVIDIA.
- Mid-training su circa 30 milioni di "hard negative" sintetici, cioè risposte plausibili ma sbagliate, generate con Gemini 2.5 Flash-Lite.
- Post-training su circa 1 milione di traiettorie di agenti, con un mix di 40% dati Nemotron e 60% dati agentici.
Gli autori riportano l'effetto di ogni fase su circa 100.000 domande escluse dal training: 52,1% di accuratezza top-1 dopo il solo pre-training, 69,2% dopo il mid-training.
Perché è così veloce: la cache delle azioni
Qui sta la vera differenza con Jev. Secondo Kwok, Jev e Laya mettono in cache soprattutto la rappresentazione dello stato. CLM, avendo due encoder separati, può calcolare e conservare anche i vettori delle azioni.
Pensa a un agente IT aziendale che sceglie sempre tra le stesse 50 operazioni approvate: reset password, apertura ticket, escalation alla sicurezza. Con CLM quelle 50 azioni le codifichi una volta sola. A ogni richiesta calcoli solo lo stato nuovo e fai un confronto tra vettori. Più azioni hai, più il vantaggio cresce.
CLM-8B contro Jev: i numeri dichiarati
Questi sono i risultati pubblicati dal team. Le prime quattro righe sono test zero-shot, cioè senza addestramento specifico.
| Test | CLM-8B | Jev | Latenza CLM-8B | Latenza Jev |
|---|---|---|---|---|
| Gioco T-Rex di Chrome | 5/5 | 5/5 | 16,5 ms | 149,8 ms |
| Super Mario | 5/5 | 5/5 | 33,5 ms | 132,6 ms |
| Tool calling (BFCL v4) | 95,2% | 99,2% | 76,8 ms | 125,5 ms |
| WikiRacing | 26/30 | 30/30 | 79,8 ms | 225 ms |
| Verifica patch DeepSWE (38 task) | 81,6% | 71,1% | 79 ms | 449 ms |
| Terminal-Bench 2.1 (30 task) | 87,6% | 83,1% | 32 ms | 131 ms |
Come leggere questi numeri senza farsi ingannare
- Il "9 volte" viene da un solo test: il gioco T-Rex, dove le stesse azioni si ripetono in ogni stato. Sul tool calling il vantaggio è circa 1,6 volte.
- Sul tool calling puro CLM perde: 95,2% contro 99,2%. In un flusso dove sbagliare tool costa caro, quei 4 punti contano.
- I risultati sul codice usano teste addestrate apposta e sottoinsiemi di 38 e 30 task, non le classifiche complete. Le soluzioni candidate le hanno scritte Claude Opus 5 e Fable 5: CLM ha solo scelto la migliore.
- Jev è chiuso, quindi il confronto non è replicabile da terzi. Vale lo stesso per tutti i numeri dei vendor in questa categoria.
Un dato interessante però c'è: sulle due prove di codice, scegliere con Jev dà un risultato peggiore del pass@1, cioè peggio che prendere una soluzione a caso. CLM invece migliora il risultato rispetto al singolo tentativo (81,6% contro 73,7% su DeepSWE).
Come installare CLM-8B in 5 passaggi
Ti serve un server Linux con una GPU NVIDIA. Gli autori usano una RTX 4090 per i benchmark locali e una H100 per le latenze del verificatore. Questi sono i passaggi del repository ufficiale.
- Installa il pacchetto con
pip install contrastive-lm. Se vuoi anche torch, vLLM e le dipendenze degli esempi, clona il repository GitHub e usapip install -r requirements.txt. - Avvia l'encoder Qwen3-8B con vLLM in modalità pooling:
vllm serve Qwen/Qwen3-8B --served-model-name qwen3-8b --runner pooling --max-model-len 2048 --port 8090. - Avvia il server CLM con
clm-serve. Al primo avvio scarica la testa di riferimento da 75 MB e apre l'API sulla porta 8700. - Prova il playground aprendo
http://localhost:8700/: scrivi uno stato, aggiungi le domande e guardi la distribuzione delle risposte. Ogni richiesta viene mostrata anche come JSON, curl e Python. Se il server è remoto, inoltra la porta via SSH. - Collegalo al tuo codice con il client Python
CLMCliente il metodosystem_one(state, questions), oppure via HTTP suPOST /v1/systemoneePOST /v1/rank.
Attenzione a un dettaglio che nessuno sottolinea: con la configurazione di default gli stati oltre 2.048 token vengono troncati. Se passi conversazioni lunghe o pagine intere, devi alzare insieme --max-model-len su vLLM e --max-tokens su clm-serve, e mettere in conto più memoria GPU.
Le tre domande che puoi fare a CLM-8B
L'API è compatibile con quella di TypeSafe, quindi chi ha già integrato Jev può provarla cambiando poche righe. Le primitive sono tre, più una funzione di ranking:
- Noul: probabilità che un'affermazione sia vera. Esempio: "il cliente chiede un rimborso?".
- Choice: una sola opzione da un insieme dichiarato, con le probabilità di tutte. Esempio: a quale reparto mando il ticket.
- Score: posizione su una scala ordinata. Esempio: urgenza da 1 a 5.
- Rank: ordina candidati liberi dal migliore al peggiore. Esempio: quale tra quattro patch di codice proporre.
Ogni risposta riporta anche i token usati e la latenza in millisecondi, utile per misurare il guadagno reale sul tuo caso.
Fine-tuning: si allenano solo le teste
Il backbone resta congelato, quindi per adattare CLM al tuo dominio alleni solo le due teste da 20 milioni di parametri con lo script train/finetune.py. È un costo molto più basso del fine-tuning di un LLM intero. Il repository include gli esempi per riprodurre il risultato su DeepSWE e per allenare una testa su decisioni tipizzate.
Dove userei CLM-8B in un progetto aziendale
Quando costruisco agenti e automazioni AI per aziende, il punto lento quasi mai è la risposta finale. Sono le decisioni intermedie: quale tool chiamare, se un'email è urgente, se l'agente sta andando fuori strada. È lì che un decision model come CLM-8B può avere senso.
Smistare ticket e richieste
Un'assistenza clienti riceve email, moduli e messaggi. Con una domanda Choice decidi il reparto, con una Score l'urgenza, con una Noul se serve un umano. I reparti sono sempre gli stessi, quindi i loro vettori restano in cache.
Scegliere il tool in un agente
Un agente con 30 o 40 strumenti fissi è il caso ideale per la cache delle azioni. Qui però ricorda il 95,2% contro 99,2% su BFCL v4: io terrei una soglia di confidenza e, sotto quella soglia, passerei la decisione a un LLM più lento.
Verificare il lavoro di un modello più grande
È la divisione dei compiti che propone lo stesso Kwok: i modelli grandi generano e ragionano, i CLM selezionano, verificano e monitorano. Un agente di coding produce quattro soluzioni, CLM sceglie quale aprire in pull request.
Tenere d'occhio un agente che lavora a lungo
Gli autori hanno osservato punteggi abbastanza separati tra traiettorie riuscite e fallite. Può servire per segnalare un agente che devia. Non è però un meccanismo di sicurezza garantito: per isolare davvero un agente servono strumenti come NVIDIA OpenShell e permessi ben configurati.
I limiti di CLM-8B
- Sceglie solo tra le opzioni che gli dai. Se tutti i candidati sono sbagliati, ne indicherà comunque uno come migliore. Le probabilità sono relative all'insieme, non assolute.
- Non sostituisce un LLM. Niente testi lunghi, matematica, pianificazione aperta. Lo dice chiaramente anche Kwok.
- È legato a Qwen3-8B. La testa funziona solo con gli embedding di quell'encoder.
- Non è leggero. L'encoder resta da 8 miliardi di parametri: serve una GPU vera, non un portatile qualsiasi.
- Nessun confronto di costo. Gli autori non hanno pubblicato un confronto in euro o dollari con le API dei modelli frontier.
- La generalizzazione è limitata a questa scala, come ammette la scheda del modello.
CLM-8B, Jev o un LLM classico: come scegliere
| Situazione | Cosa userei |
|---|---|
| I dati non devono lasciare l'azienda | CLM-8B in locale (pesi aperti) |
| Molte azioni fisse riusate a ogni richiesta | CLM-8B, sfrutta la cache delle azioni |
| Massima accuratezza sul tool calling, niente GPU in casa | Jev via API |
| Serve spiegare il perché della decisione | Un LLM con ragionamento |
| Risposte aperte, testi, riassunti | Un LLM generativo |
Spesso la risposta giusta è una cascata: il decision model gestisce i casi chiari sopra una soglia di confidenza, il resto passa a un LLM o a una persona.
Privacy e GDPR: il vantaggio dei pesi aperti
Con un servizio API come Jev, ogni ticket o email che classifichi viaggia verso un fornitore esterno. Con CLM-8B installato sul tuo server, i dati restano dentro. Per un'azienda italiana che tratta dati di clienti questo semplifica molto la valutazione GDPR e il registro dei trattamenti.
Il fatto che il backbone sia Qwen, sviluppato da Alibaba, non cambia questo punto: i pesi girano in locale e non inviano dati a nessuno. Ne parlo più in dettaglio nell'articolo sui modelli AI cinesi open source in azienda. La licenza Apache 2.0 vale sia per CLM-8B sia per Qwen3-8B.
Cosa arriva dopo: CLM-35B-A3B
Il team sta addestrando CLM-35B-A3B, una versione multimodale con architettura a esperti misti, annunciata per l'inizio di ottobre 2026. Oggi, 11 ottobre, sulla pagina Hugging Face di Contrastive-LM ci sono ancora solo CLM-v0.1-8B e le teste per DeepSWE. Se arriva come promesso, potrà scegliere un'azione guardando direttamente uno screenshot invece della sua descrizione testuale.
Leggi anche
- Jev TypeSafe AI: cos'è e come usarlo nel tuo codice
- NVIDIA OpenShell: cos'è, come si installa e quando serve
- AI cinese e open source: i modelli che consiglio nel 2026
- Database vettoriali e RAG: quale scegliere e quando evitarli
Conclusione: CLM-8B è un pezzo dell'agente, non l'agente
CLM-8B non è un concorrente di Claude o GPT. È un componente: il pezzo che prende le decisioni piccole e ripetute dentro un agente, in pochi millisecondi e sul tuo hardware. Ha senso quando le opzioni sono note e si ripetono, quando i dati devono restare in casa e quando la latenza conta.
Prima di adottarlo, misura l'accuratezza sui tuoi dati e non fidarti solo dei numeri dichiarati. Se vuoi capire se un decision model può velocizzare i tuoi agenti o le tue automazioni, scrivimi e guardiamo insieme il tuo caso.



