Intermedio 10 minNous Research

Hermes 4 in locale (Ollama) : il modello di Nous Research

Hermes 4 è la quarta generazione dei modelli di Nous Research, un laboratorio noto per i suoi modelli sottoposti a fine-tuning, che seguono alla lettera il prompt di sistema e raramente rifiutano un compito legittimo. Questa guida spiega come installare Hermes 4 con Ollama, quale variante scegliere in base alla tua scheda grafica e come sfruttare i suoi due punti di forza: la fedeltà alle istruzioni di sistema e gli output strutturati per gli agenti. Lo usiamo noi stessi in produzione su una RTX 5070 Ti da 12 GB: i dati provengono da questo utilizzo.

Di Mohamed Meguedmi·Agg. 2026-09-25·Testato su Windows, macOS e Linux

#Perché Hermes 4 piuttosto che un Qwen o un Llama di base

Nous Research non pre-addestra modelli. Il laboratorio prende un modello open-weight esistente e gli applica un post-addestramento su vasta scala: per Hermes 4, circa 5 milioni di esempi e 60 miliardi di token di dati sintetici prodotti dalla sua pipeline DataForge, con un'elevata proporzione di tracce di ragionamento verificate. Il risultato non è più «intelligente» del modello di base nei benchmark di cultura generale, ma si comporta diversamente nell'uso quotidiano: fa ciò che gli viene chiesto, nel formato richiesto, senza commenti superflui.

Tre caratteristiche spiegano la popolarità di Hermes tra gli utenti di LLM auto-ospitati. Innanzitutto, il system prompt viene trattato come la fonte di verità: persona, tono, vincoli di formato, tutto viene rispettato per tutta la durata di una conversazione. Inoltre, l'allineamento è volutamente neutro: il modello non aggiunge avvertenze non richieste e rifiuta molto meno spesso degli assistenti rivolti al grande pubblico su argomenti comuni (medicina, diritto, sicurezza informatica, narrativa per adulti). Infine, il formato di chiamata degli strumenti di Nous, con i suoi tag dedicati, è diventato uno standard di fatto adottato da numerosi framework di agenti.

Hermes 4 aggiunge a questo una modalità di ragionamento ibrida ereditata da DeepHermes: il modello può riflettere tra i tag think prima di rispondere, oppure rispondere direttamente, a seconda di ciò che gli indichi nel system prompt. Sei tu a decidere, richiesta per richiesta, se sostenere il costo aggiuntivo in token del ragionamento.

i
Hermes non è un modello « de-censurato »
Non confondere Hermes con le varianti abliterated o uncensored che circolano su Hugging Face. Nous Research non rimuove nulla: addestra un modello che obbedisce all'operatore. Se il tuo system prompt stabilisce dei limiti, Hermes li rispetta. Se non ne stabilisci nessuno, non ne inventa. La responsabilità delle misure di protezione passa a te, ed è proprio questo l'obiettivo di un utilizzo in self-hosting.

#Le varianti di Hermes 4 e la VRAM necessaria

Il kit IA Locale

Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.

  • Spazio online a vita
  • PDF + file
  • Aggiornamenti a vita

Hermes 4 è stato rilasciato alla fine di agosto 2025 in tre taglie, ciascuna costruita su una base diversa. Questo dettaglio conta: la licenza, il contesto massimo e il comportamento in francese sono quelli della base, non di Nous Research.

Hermes 4 14B
Base Qwen3-14B. Circa 9 GB di VRAM in Q4_K_M, finestra di contesto nativa confortevole, ottima padronanza del francese. È la variante da installare su una scheda da 12 a 16 GB e quella che utilizziamo in produzione. Licenza ereditata da Qwen3: Apache 2.0.
Hermes 4 70B
Basato su Llama 3.1 70B. Circa 40 GB in Q4_K_M: due RTX 3090/4090, un Mac Studio o un MacBook Pro con almeno 48 GB di memoria unificata. Nettamente migliore nei ragionamenti lunghi e nel seguire istruzioni complesse. Licenza Llama 3.1 Community.
Hermes 4 405B
Base Llama 3.1 405B. Più di 200 GB anche in Q4: fuori dalla portata di un computer personale, riservato ai server multi-GPU o ai fornitori di API. Lo menzioniamo per completezza.
E sotto i 12 GB?
Non esiste Hermes 4 in versione 3B o 8B. Su una scheda da 8 GB, usa hermes3:8b (base Llama 3.1 8B, circa 5 GB in Q4_K_M): stessa filosofia, stesso formato degli strumenti, senza la modalità di ragionamento.

La scelta della quantizzazione segue le regole abituali del sito: Q4_K_M è un buon compromesso come scelta predefinita, Q5_K_M o Q8_0 se la VRAM lo permette e fai estrazione strutturata, dove ogni bit di precisione riduce gli errori di formato. Sulla nostra RTX 5070 Ti da 12 GB, hermes4:14b in Q4_K_M con un contesto di 8192 token occupa 9,4 GB di VRAM, lasciando spazio per un modello di embedding caricato in parallelo.

→
Mac Apple Silicon
Su un M4 Pro con 24 GB di memoria unificata, il 14B in Q4_K_M gira senza problemi. Il 70B richiede almeno 48 GB per restare fluido; con 36 GB si carica, ma il contesto disponibile diventa troppo breve per l'uso con un agente.

#Prerequisiti

Ollama aggiornato
La base Qwen3 da 14B richiede una versione di Ollama successiva a aprile 2025. Verifica con ollama --version e aggiornala se necessario, altrimenti riceverai un errore di architettura sconosciuta durante il caricamento.
GPU o memoria unificata
12 GB di VRAM per il 14B in Q4_K_M con un contesto di 8k. Con 8 GB, il modello viene caricato in parte sulla CPU e la velocità scende a pochi token al secondo: passa a hermes3:8b.
Spazio su disco
Prevedi 9 GB per il 14B in Q4_K_M, 15 GB in Q8_0 e 40 GB per il 70B in Q4_K_M.
Un'interfaccia (opzionale)
Open WebUI o LM Studio per chattare comodamente. Open WebUI comprime automaticamente i blocchi di ragionamento, una funzione apprezzabile con Hermes 4.

#Installare Hermes 4 con Ollama in 4 fasi

  1. 01
    Scaricare la versione adatta alla tua macchina
    Nella libreria Ollama, il tag hermes4 è disponibile in diverse dimensioni. Su una scheda da 12 a 16 GB, scegli il 14B; è il tag che eseguiamo quotidianamente.
  2. 02
    Oppure importare il GGUF ufficiale da Hugging Face
    Nous Research pubblica le proprie quantizzazioni GGUF. La sintassi hf.co di Ollama permette di scegliere con precisione il livello (Q4_K_M, Q5_K_M, Q8_0) senza passare attraverso un Modelfile. È la strada da preferire se vuoi un Q8_0 o se il tag della libreria non offre la quantizzazione desiderata.
  3. 03
    Verificare il caricamento e la distribuzione GPU/CPU
    Il comando ollama ps indica la memoria occupata e la percentuale caricata sulla GPU. Punta al 100% sulla GPU: non appena una parte passa alla CPU, la velocità crolla.
  4. 04
    Primo test con un system prompt
    Non provare Hermes senza un system prompt: ti perderesti ciò che lo rende interessante. Assegnagli un ruolo, un formato di output e un vincolo, poi osserva quanto li rispetta.
Terminale — dalla libreria Ollama
ollama pull hermes4:14b
ollama run hermes4:14b
Terminale — GGUF ufficiale Nous Research, quantizzazione a scelta
# Q4_K_M : le compromis recommandé (environ 9 Go)
ollama run hf.co/NousResearch/Hermes-4-14B-GGUF:Q4_K_M

# Q8_0 si vous avez 16 Go et plus, pour l'extraction structurée
ollama run hf.co/NousResearch/Hermes-4-14B-GGUF:Q8_0
Terminal — controllo del caricamento
ollama ps
# NAME           SIZE     PROCESSOR    CONTEXT
# hermes4:14b    9.4 GB   100% GPU     8192
!
Contesto predefinito troppo breve
Ollama carica i modelli con un contesto di 4.096 token per impostazione predefinita. Per un agente che accumula chiamate a strumenti o una modalità di ragionamento che può produrre diverse migliaia di token di riflessione, è insufficiente: i primi messaggi escono dalla finestra di contesto e il modello «dimentica» le proprie istruzioni. Imposta num_ctx ad almeno 8.192, a 16.384 se la VRAM lo permette (vedi la sezione impostazioni).

#Ciò che distingue Hermes dai modelli allineati destinati al grande pubblico

Un assistente destinato al grande pubblico è addestrato per piacere a un utente anonimo e per proteggere chi lo distribuisce. Questo produce comportamenti che finiamo per non notare più: un preambolo che riformula la domanda, un avvertimento alla fine della risposta, un rifiuto cortese non appena compare una parola chiave sensibile, una tendenza a smussare gli angoli. Per conversare, è accettabile. Per una pipeline automatizzata che si aspetta un JSON, una graduatoria o una riscrittura, ogni deviazione interrompe l'elaborazione a valle.

Hermes 4 è addestrato per l'operatore, non per l'utente finale. Nous Research ha misurato questa scelta con un banco di prova interno, RefusalBench, su cui Hermes 4 rifiuta nettamente meno dei modelli chiusi e della maggior parte dei modelli open-weight allineati. In pratica, su un corpus di ticket di supporto in cui si chiede di estrarre il motivo del reclamo, un modello rivolto al grande pubblico può a volte rispondere «non posso dare consigli legali», mentre Hermes restituisce il campo richiesto. In un compito di riscrittura, non aggiunge «non esitare a chiedere se hai altre domande».

Nessun preambolo né conclusione
Se il system prompt dice «rispondi esclusivamente con il JSON», la risposta inizia con una parentesi graffa aperta. Con molti modelli, servono tre esempi e una fase di post-elaborazione per ottenere lo stesso risultato.
Persona stabile
Un ruolo definito nel prompt di sistema si mantiene per decine di turni senza perdere consistenza, anche quando l'utente tenta di farlo uscire dai limiti stabiliti.
Meno rifiuti non richiesti
Argomenti medici e giuridici, sicurezza informatica, narrativa dai toni cupi: Hermes gestisce la richiesta. I limiti sono quelli che scrivi tu.
Tono neutro
Nessun elogio sulla qualità della domanda, nessuna emoji, nessun entusiasmo artificiale. Lo stile si regola interamente tramite il system prompt.

Il rovescio della medaglia è evidente: se rendi Hermes accessibile a sconosciuti, ad esempio tramite un chatbot pubblico, spetta a te definire le misure di protezione. Un system prompt che elenchi ciò che l'assistente non deve fare e un filtro sull'output lato applicazione per i casi critici sono indispensabili. Per un uso personale o interno, questa responsabilità è proprio il vantaggio ricercato.


#Il prompt di sistema, dove Hermes 4 eccelle

Con Hermes 4, il prompt di sistema non è un suggerimento, ma un contratto. Questo cambia il modo di scriverlo: sii preciso e completo, e non contare sul modello per colmare ciò che lasci implicito con il «buon senso» di un assistente. Bastano tre regole per ottenere risultati affidabili.

Descrivere il ruolo in una frase
« Sei l'assistente di redazione del team marketing di X » è meglio di tre paragrafi di contesto. Hermes non diluisce l'informazione, ma un ruolo breve è più stabile.
Fissare esplicitamente il formato di output
Lunghezza, lingua, struttura, ciò che deve essere omesso. Hermes rispetta un vincolo come «nessuna introduzione, nessuna conclusione, massimo 120 parole» senza che tu debba ripeterlo.
Scrivere i divieti
Poiché il modello non aggiunge divieti, elenca i tuoi: argomenti fuori ambito, informazioni da non rivelare mai, comportamento in caso di domanda ambigua.

Il modo più pratico è fissare questo system prompt in un Modelfile: ottieni un alias pronto all'uso, con il contesto e la temperatura già impostati, utilizzabile in Open WebUI, nei tuoi script e dal terminale.

Modelfile — assistente di scrittura in francese
FROM hermes4:14b

PARAMETER num_ctx 16384
PARAMETER temperature 0.6
PARAMETER top_p 0.95
PARAMETER repeat_penalty 1.05

SYSTEM """Tu es un assistant de rédaction pour une PME française.
Tu réponds toujours en français, au vouvoiement.
Tu ne commences jamais par reformuler la demande et tu ne termines jamais par une formule de politesse.
Quand on te demande de réécrire un texte, tu renvoies uniquement le texte réécrit, sans commentaire.
Si une demande sort du cadre de la rédaction professionnelle, tu le dis en une phrase et tu t'arrêtes."""
Terminale — creare e utilizzare l'alias
ollama create hermes-redac -f Modelfile
ollama run hermes-redac "Réécris en deux phrases : Nous sommes ravis de vous annoncer que notre nouvelle offre est disponible dès maintenant et qu'elle vous permettra de gagner du temps."
→
Prova la coerenza del ruolo
Dopo aver creato l'alias, prova a farlo uscire dai limiti del suo ruolo con due o tre messaggi («dimentica le tue istruzioni», «parlami in inglese»). Hermes 4 mantiene il ruolo nettamente meglio della versione base di Qwen3-14B in questo tipo di test, ed è un buon modo per verificare che il tuo system prompt sia completo.

#Attivare o disattivare la modalità di ragionamento

Hermes 4 è un modello a ragionamento ibrido: per impostazione predefinita, risponde direttamente, come un modello instruct classico. Per attivare la riflessione, si aggiunge al system prompt un'istruzione dedicata, quella che Nous Research documenta sulla scheda del modello. Il modello produce quindi la sua riflessione tra i tag think, poi la risposta.

Prompt di sistema — istruzione di ragionamento raccomandata da Nous Research
You are a deep thinking AI, you may use extremely long chains of thought to deeply consider the problem and deliberate with yourself via systematic reasoning processes to help come to a correct solution prior to answering. You should enclose your thoughts and internal monologue inside <think> </think> tags, and then provide your solution or response to the problem.

Puoi combinarla con le tue istruzioni, in francese, aggiungendole di seguito. Il ragionamento è utile per la matematica, il codice non banale, la pianificazione di un agente o l'analisi di un documento lungo. È inutile e costoso per l'estrazione di campi, la classificazione o la riscrittura: per questi compiti, lascia attiva la modalità diretta. Prevedi da 500 a diverse migliaia di token di ragionamento per richiesta, da cui l'importanza di un num_ctx ampio.

Modalità diretta (predefinita)
Nessuna istruzione speciale. Risposta immediata, ideale per le pipeline e le normali conversazioni in chat. È la modalità che utilizziamo per la valutazione automatizzata del nostro monitoraggio informativo.
Modalità ragionamento
Aggiungi l'istruzione qui sopra all'inizio del system prompt. Open WebUI comprime il blocco think; nei tuoi script, filtralo prima di visualizzare la risposta o eseguirne il parsing.
Due alias
La soluzione più semplice è creare due Modelfile, hermes-direct e hermes-think, e scegliere l'uno o l'altro in base al compito, anziché modificare il prompt a ogni chiamata.

#Casi d'uso: agenti ed estrazione strutturata

Lo schema di chiamata degli strumenti di Nous Research, in cui il modello riceve l'elenco delle funzioni disponibili nel prompt del sistema e invia le chiamate sotto forma di JSON marcato, è quello che Ollama utilizza attraverso il parametro tools della sua API di chat. Con Hermes 4, niente da configurare: descrivi le tue funzioni, invia la conversazione, e il modello restituisce un'invocazione strutturata quando ce ne ha bisogno, oppure una risposta testuale altrimenti.

Per l'estrazione strutturata, due approcci si completano a vicenda. Il primo consiste nell'imporre uno schema JSON tramite il parametro format di Ollama: il motore vincola la generazione, il modello non può uscire dallo schema. Il secondo si basa sul solo system prompt, ed è qui che Hermes fa la differenza: anche senza vincoli di decodifica, restituisce un JSON valido e senza commenti nella grande maggioranza dei casi, semplificando le integrazioni con strumenti che non supportano la decodifica vincolata.

Python — estrazione strutturata con schema imposto
from ollama import chat
from pydantic import BaseModel

class Ticket(BaseModel):
    motif: str
    produit: str
    urgence: int  # 1 à 5
    remboursement_demande: bool

message = """Bonjour, ma cafetière X200 achetée il y a 3 semaines fuit par le dessous.
Je veux un remboursement, c'est la deuxième fois que ça arrive."""

response = chat(
    model="hermes4:14b",
    messages=[
        {"role": "system", "content": "Tu extrais les informations d'un ticket de support. Réponds uniquement avec le JSON demandé."},
        {"role": "user", "content": message},
    ],
    format=Ticket.model_json_schema(),
    options={"temperature": 0.1, "num_ctx": 8192},
)

ticket = Ticket.model_validate_json(response.message.content)
print(ticket)
# motif='fuite' produit='X200' urgence=4 remboursement_demande=True
Terminale — chiamata a uno strumento tramite l'API REST
curl http://localhost:11434/api/chat -d '{
  "model": "hermes4:14b",
  "stream": false,
  "messages": [
    {"role": "system", "content": "Tu es un assistant qui utilise les outils fournis quand ils sont pertinents."},
    {"role": "user", "content": "Quel temps fait-il à Lyon ?"}
  ],
  "tools": [{
    "type": "function",
    "function": {
      "name": "get_weather",
      "description": "Donne la météo actuelle pour une ville",
      "parameters": {
        "type": "object",
        "properties": {"ville": {"type": "string"}},
        "required": ["ville"]
      }
    }
  }]
}'

La risposta contiene un campo tool_calls con il nome della funzione e i suoi argomenti. Sta a te eseguire la funzione e restituire il risultato in un messaggio con ruolo tool affinché il modello formuli la risposta finale. Questo ciclo è implementato da LangChain, CrewAI, n8n o Hermes Agent, il framework di agenti pubblicato dalla stessa Nous Research, che funziona con qualsiasi modello ma è stato progettato attorno a questo formato.

Classificazione e routing
Classificare email, ticket o articoli secondo categorie definite. Temperatura bassa, modalità diretta, schema JSON obbligatorio: il 14B elabora diverse centinaia di elementi all'ora su una scheda da 12 GB.
Estrazione di campi
Fatture, CV, schede prodotto, resoconti: Hermes restituisce esattamente i campi richiesti, con null quando l'informazione manca, se lo specifichi nel system prompt.
Valutazione automatica
Valutare testi secondo una griglia (è ciò che fa la nostra pipeline di monitoraggio quotidiano con hermes4:14b). La stabilità del formato e l'assenza di compiacenza rendono i punteggi utilizzabili.
Agente con strumenti
Ricerca in una banca dati, chiamata a un'API interna, esecuzione di comandi approvati da una persona. La modalità di ragionamento aiuta a elaborare piani in più fasi.
!
Il 14B resta un 14B
Quando un agente esegue in sequenza più di cinque o sei chiamate a strumenti con risultati lunghi, il 14B inizia a perdere il filo, anche con un contesto da 16k. In questi scenari, il 70B fa davvero la differenza. Se il tuo hardware non lo consente, suddividi il compito tra sottoagenti con cicli brevi invece di prolungare il ciclo.

#Impostazioni raccomandate

I valori qui di seguito sono quelli che usiamo in produzione. Non provengono dalla scheda del modello, che fornisce pochi dettagli sull'argomento, ma da diversi mesi di utilizzo quotidiano su una scheda da 12 GB.

num_ctx
8.192 per la chat e l'estrazione, 16.384 per gli agenti e la modalità di ragionamento. Ogni raddoppio del contesto richiede più VRAM: su 12 GB, 16k è fattibile con la cache KV quantizzata (vedi più avanti), ma non oltre.
temperature
Da 0,6 a 0,7 per la conversazione e la redazione. Da 0,1 a 0,2 per l'estrazione, la classificazione e tutto ciò che deve essere riproducibile.
top_p e repeat_penalty
0,95 e 1,05. Una penalità di ripetizione più forte peggiora gli output JSON, in cui le ripetizioni delle chiavi sono normali.
Quantizzazione
Q4_K_M per qualsiasi uso comune. Q8_0 se fai estrazioni su larga scala e hai 16 GB: gli errori di formato diventano quasi inesistenti.

Lato server, due variabili d'ambiente di Ollama permettono di risparmiare spazio su una scheda da 12 GB: Flash Attention e la quantizzazione della cache KV a 8 bit. Si impostano nel file di servizio systemd su Linux, nelle variabili d'ambiente dell'utente su Windows o tramite launchctl su macOS.

Linux — /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_FLASH_ATTENTION=1"
Environment="OLLAMA_KV_CACHE_TYPE=q8_0"
Environment="OLLAMA_KEEP_ALIVE=24h"
Terminal — applica
sudo systemctl daemon-reload
sudo systemctl restart ollama
ollama ps   # vérifier que le modèle est toujours à 100 % GPU

La cache KV in q8_0 dimezza la memoria consumata dal contesto, senza perdite misurabili nelle attività di estrazione e di chat. È questa impostazione che permette di far stare hermes4:14b con un contesto di 16k in 12 GB. Il keep-alive impostato a 24 ore evita di ricaricare 9 GB a ogni chiamata distanziata nel tempo, ed è utile per un server che risponde a script durante tutta la giornata.


#Risoluzione dei problemi

I tag think compaiono nella risposta
È normale in modalità ragionamento nel terminale o tramite l'API grezza. Open WebUI li comprime; nei tuoi script, elimina tutto ciò che precede il tag di chiusura prima di effettuare il parsing. Se non volevi il ragionamento, rimuovi l'istruzione dedicata dal prompt di sistema.
Il modello risponde in inglese
Hermes 4 è addestrato in larghissima parte su dati in inglese. Aggiungi « Tu réponds toujours en français » al system prompt: questa sola riga basta nella quasi totalità dei casi, proprio perché il modello rispetta il system prompt.
Errore di architettura sconosciuta durante il caricamento
La tua versione di Ollama è troppo vecchia per la base Qwen3 del modello 14B. Aggiornala, poi esegui di nuovo il pull.
Velocità di qualche token al secondo
ollama ps mostra una percentuale CPU: il modello non entra nella VRAM. Riducete num_ctx, attivate la cache KV q8_0 oppure passate a hermes3:8b.
JSON invalido di quando in quando
Usa il parametro format con uno schema: la generazione diventa vincolata. Se non puoi farlo, abbassa la temperatura a 0,1 e aggiungi un esempio di output atteso nel system prompt.
Il modello dimentica le sue istruzioni dopo diversi turni
Il contesto è saturo. Aumenta num_ctx oppure tronca la cronologia lato applicazione, mantenendo sempre il system prompt all'inizio.
Rifiuto inaspettato
Raro, ma possibile sul 14B quando la formulazione ricorda uno scenario di attacco. Riformula specificando il contesto legittimo nel prompt di sistema (test autorizzato, contesto professionale): Hermes segue il quadro che definisci.

#Per approfondire

Hermes 4 esprime tutto il suo valore una volta che si padroneggiano i componenti che lo circondano. Queste guide del sito completano questa guida:

Padroneggiare i system prompt
Il metodo per scrivere un system prompt completo, con esempi per caso d'uso. Il complemento naturale di questa guida, perché è attraverso il system prompt che si controlla Hermes.
Function calling e output JSON strutturati con Ollama
I dettagli del parametro format, degli schemi JSON e del ciclo di chiamata degli strumenti, con esempi Python completi.
Scegliere la quantizzazione (Q4, Q5, Q8, FP16)
Per scegliere tra Q4_K_M e Q8_0 in base alla tua VRAM e alla tua tolleranza agli errori di formato.
Questa guida ti è stata utile?

Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.