Tecnologie

CLM-8B, il decision model di NVIDIA: cos'è e come usarlo

CLM-8B di Stanford e NVIDIA sceglie l'azione giusta per un agente AI senza generare testo. Come funziona, i numeri contro Jev, l'installazione in 5 passi e i limiti.

Cosmin-Anton Mihoc
11 min di lettura
CLM-8B, il decision model di NVIDIA: cos'è e come usarlo
Indice dei contenuti (12 sezioni)

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:

  1. Pre-training su circa 60 milioni di coppie domanda e risposta del dataset Nemotron DQA di NVIDIA.
  2. Mid-training su circa 30 milioni di "hard negative" sintetici, cioè risposte plausibili ma sbagliate, generate con Gemini 2.5 Flash-Lite.
  3. 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.

  1. Installa il pacchetto con pip install contrastive-lm. Se vuoi anche torch, vLLM e le dipendenze degli esempi, clona il repository GitHub e usa pip install -r requirements.txt.
  2. 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.
  3. 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.
  4. 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.
  5. Collegalo al tuo codice con il client Python CLMClient e il metodo system_one(state, questions), oppure via HTTP su POST /v1/systemone e POST /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

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.

Condividi questo articolo
Hai domande? Contattami

Pronto a dare vita al tuo progetto?

Contattami per discutere della tua idea e ricevere una consulenza gratuita.

Iniziamo insieme