L’ANALISI
ModernBERT reranker in llama.cpp: cosa cambia con classifier_pooling
llama.cpp b11273 conserva e carica classifier_pooling per i reranker ModernBERT: impatto sul RAG locale, limiti e protocollo di verifica.

In breve: Il delta evita che una configurazione ModernBERT perda il tipo di pooling durante conversione e caricamento. llama.cpp ora registra classifier.pooling_type e accetta i valori cls o mean; se l’opzione manca, ModernBERT usa mean. Questo corregge il percorso del modello, ma non dimostra da solo un ranking migliore.
Il delta verificato
La pre-release b11273 del 30 settembre integra la pull request 29627. Il convertitore scrive classifier.pooling_type quando la configurazione contiene classifier_pooling e il loader recupera lo stesso parametro negli hyperparameter del modello.
Perché il pooling conta
Un reranker produce un punteggio per coppie query-documento. Il pooling stabilisce quale rappresentazione finale alimenta il classificatore: cls usa il token di classificazione, mean aggrega i token. Conservare la scelta prevista dal modello evita una discrepanza silenziosa tra configurazione e runtime.
Compatibilità introdotta
La conversione accetta soltanto cls e mean. Per ModernBERT, quando classifier_pooling non è specificato, il fallback documentato dalla release è mean. Il cambiamento riguarda il caricamento e la conversione del modello, non il retrieval iniziale né la generazione della risposta.
Cosa cambia in un RAG locale
Chi usa un reranker ModernBERT con llama.cpp può ora mantenere esplicitamente il pooling previsto dal modello. Il test utile è confrontare la stessa lista di candidati prima e dopo il reranking, isolando qualità, latenza e memoria senza cambiare embedding, chunking o prompt.
Disponibilità operativa
La release pubblica binari per macOS, Linux, Windows, Android e iOS, con varianti CPU, Vulkan, CUDA, ROCm, OpenVINO, SYCL e Snapdragon. È però classificata pre-release: in produzione conviene fissare la build e predisporre un rollback.
Condizioni e limiti
La nota di rilascio non pubblica benchmark di qualità o prestazioni per ModernBERT. Il supporto del parametro non garantisce che ogni conversione GGUF o modello reranker funzioni correttamente; servono controlli sugli score e sui risultati noti.
Checklist per una verifica
- Fissare modello, revisione e tokenizer del reranker ModernBERT.
- Salvare una baseline con la build precedente e un insieme di query giudicate.
- Convertire il modello verificando classifier_pooling nella configurazione.
- Provare separatamente cls e mean solo se entrambi sono coerenti con il modello.
- Mantenere invariati embedding, candidati, chunking e prompt.
- Misurare MRR o nDCG, latenza per query e memoria di picco.
- Controllare gli score su casi positivi, negativi e pareggi.
- Annotare build b11273, backend e hardware usato.
- Conservare il binario precedente per il rollback.