Intermédiaire 10 minNous Research

Hermes 4 en local (Ollama) : le modèle de Nous Research

Hermes 4 est la quatrième génération des modèles de Nous Research, un laboratoire connu pour ses fine-tunes qui suivent le system prompt à la lettre et refusent rarement une tâche légitime. Ce guide explique comment installer Hermes 4 avec Ollama, quelle variante choisir selon votre carte graphique, et comment exploiter ses deux points forts : la fidélité aux instructions système et les sorties structurées pour les agents. Nous l'utilisons nous-mêmes en production sur une RTX 5070 Ti de 12 Go, les chiffres viennent de là.

Par Mohamed Meguedmi·Màj 2026-09-25·Testé sur Windows, macOS, Linux

#Pourquoi Hermes 4 plutôt qu'un Qwen ou un Llama de base

Nous Research ne pré-entraîne pas de modèle. Le laboratoire prend un modèle open-weight existant et lui applique un post-entraînement massif : pour Hermes 4, environ 5 millions d'exemples et 60 milliards de tokens de données synthétiques produites par son pipeline DataForge, avec une forte proportion de traces de raisonnement vérifiées. Le résultat n'est pas plus « intelligent » que sa base sur les benchmarks de culture générale, mais il se comporte différemment au quotidien : il fait ce qu'on lui demande, dans le format demandé, sans commentaire superflu.

Trois traits expliquent la popularité d'Hermes auprès des utilisateurs de LLM auto-hébergés. D'abord, le system prompt est traité comme la source de vérité : persona, ton, contraintes de format, tout est respecté sur la longueur d'une conversation. Ensuite, l'alignement est volontairement neutre : le modèle n'ajoute pas de mises en garde non sollicitées et refuse beaucoup moins souvent que les assistants grand public sur des sujets ordinaires (médecine, droit, sécurité informatique, fiction adulte). Enfin, le format d'appel d'outils de Nous, avec ses balises dédiées, est devenu un standard de fait repris par de nombreux frameworks d'agents.

Hermes 4 ajoute à cela un mode de raisonnement hybride hérité de DeepHermes : le modèle peut réfléchir entre des balises think avant de répondre, ou répondre directement, selon ce que vous lui indiquez dans le system prompt. C'est vous qui décidez, requête par requête, si vous payez le surcoût en tokens du raisonnement.

i
Hermes n'est pas un modèle « décensuré »
Ne confondez pas Hermes avec les variantes abliterated ou uncensored qui circulent sur Hugging Face. Nous Research ne retire rien : il entraîne un modèle qui obéit à l'opérateur. Si votre system prompt fixe des limites, Hermes les tient. Si vous n'en fixez aucune, il n'en invente pas. La responsabilité des garde-fous se déplace vers vous, ce qui est précisément ce que recherche un usage auto-hébergé.

#Les variantes d'Hermes 4 et la VRAM nécessaire

Le kit IA Locale

Ton ChatGPT privé et gratuit sur ta machine en 1 heure — LM Studio, Ollama, Open WebUI, tes documents, sans cloud.

  • Espace en ligne à vie
  • PDF + fichiers
  • Remboursé 30 j

Hermes 4 est sorti fin août 2025 en trois tailles, chacune construite sur une base différente. Ce détail compte : la licence, le contexte maximal et le comportement en français sont ceux de la base, pas de Nous Research.

Hermes 4 14B
Base Qwen3-14B. Environ 9 Go de VRAM en Q4_K_M, contexte natif confortable, très bon français. C'est la variante à installer sur une carte de 12 à 16 Go et celle que nous utilisons en production. Licence héritée de Qwen3 : Apache 2.0.
Hermes 4 70B
Base Llama 3.1 70B. Environ 40 Go en Q4_K_M : deux RTX 3090/4090, un Mac Studio ou un MacBook Pro avec 48 Go et plus de mémoire unifiée. Nettement meilleur en raisonnement long et en suivi d'instructions complexes. Licence Llama 3.1 Community.
Hermes 4 405B
Base Llama 3.1 405B. Plus de 200 Go même en Q4 : hors de portée d'une machine personnelle, réservé aux serveurs multi-GPU ou aux fournisseurs d'API. Nous le citons pour être complet.
Et en dessous de 12 Go ?
Il n'existe pas d'Hermes 4 en 3B ou 8B. Sur une carte de 8 Go, prenez hermes3:8b (base Llama 3.1 8B, environ 5 Go en Q4_K_M) : même philosophie, même format d'outils, sans le mode raisonnement.

Le choix de la quantification suit les règles habituelles du site : Q4_K_M est le bon compromis par défaut, Q5_K_M ou Q8_0 si la VRAM le permet et que vous faites de l'extraction structurée, où chaque bit de précision réduit les erreurs de format. Sur notre RTX 5070 Ti de 12 Go, hermes4:14b en Q4_K_M avec un contexte de 8 192 tokens occupe 9,4 Go de VRAM, ce qui laisse de la place pour un modèle d'embeddings chargé en parallèle.

→
Mac Apple Silicon
Sur un M4 Pro avec 24 Go de mémoire unifiée, le 14B en Q4_K_M tourne sans effort. Le 70B demande 48 Go minimum pour rester fluide ; avec 36 Go, il se charge mais le contexte disponible devient trop court pour un usage agent.

#Prérequis

Ollama à jour
La base Qwen3 du 14B exige une version d'Ollama postérieure à avril 2025. Vérifiez avec ollama --version et mettez à jour si besoin, sinon vous obtiendrez une erreur d'architecture inconnue au chargement.
GPU ou mémoire unifiée
12 Go de VRAM pour le 14B en Q4_K_M avec un contexte de 8k. Avec 8 Go, le modèle se charge en partie sur CPU et tombe à quelques tokens par seconde : passez à hermes3:8b.
Espace disque
Comptez 9 Go pour le 14B en Q4_K_M, 15 Go en Q8_0, 40 Go pour le 70B en Q4_K_M.
Une interface (optionnel)
Open WebUI ou LM Studio pour discuter confortablement. Open WebUI replie automatiquement les blocs de raisonnement, ce qui est appréciable avec Hermes 4.

#Installer Hermes 4 avec Ollama en 4 étapes

  1. 01
    Télécharger la variante adaptée à votre machine
    Depuis la bibliothèque Ollama, le tag hermes4 se décline par taille. Sur une carte de 12 à 16 Go, prenez le 14B ; c'est le tag que nous faisons tourner au quotidien.
  2. 02
    Ou importer le GGUF officiel depuis Hugging Face
    Nous Research publie ses propres quantifications GGUF. La syntaxe hf.co d'Ollama permet de choisir précisément le niveau (Q4_K_M, Q5_K_M, Q8_0) sans passer par un Modelfile. C'est la voie à privilégier si vous voulez un Q8_0 ou si le tag de la bibliothèque ne propose pas la quantification souhaitée.
  3. 03
    Vérifier le chargement et la répartition GPU/CPU
    La commande ollama ps indique la mémoire occupée et le pourcentage chargé sur GPU. Visez 100 % GPU : dès qu'une partie passe sur CPU, la vitesse s'effondre.
  4. 04
    Premier test avec un system prompt
    Ne testez pas Hermes sans system prompt, vous passeriez à côté de ce qui le rend intéressant. Donnez-lui un rôle, un format de sortie et une contrainte, puis observez à quel point il s'y tient.
Terminal — depuis la bibliothèque Ollama
ollama pull hermes4:14b
ollama run hermes4:14b
Terminal — GGUF officiel Nous Research, quantification au choix
# 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 — contrôle du chargement
ollama ps
# NAME           SIZE     PROCESSOR    CONTEXT
# hermes4:14b    9.4 GB   100% GPU     8192
!
Contexte par défaut trop court
Ollama charge les modèles avec un contexte de 4 096 tokens par défaut. Pour un agent qui accumule des appels d'outils ou un mode raisonnement qui peut produire plusieurs milliers de tokens de réflexion, c'est insuffisant : les premiers messages sortent de la fenêtre et le modèle « oublie » ses instructions. Fixez num_ctx à 8 192 minimum, 16 384 si la VRAM le permet (voir la section réglages).

#Ce qui distingue Hermes des modèles alignés grand public

Un assistant grand public est entraîné pour plaire à un utilisateur anonyme et pour protéger l'éditeur. Cela produit des comportements que l'on finit par ne plus voir : un préambule qui reformule la question, un avertissement en fin de réponse, un refus poli dès qu'un mot-clé sensible apparaît, une tendance à arrondir les angles. Pour discuter, c'est acceptable. Pour un pipeline automatisé qui attend un JSON, un classement ou une réécriture, chaque écart casse le traitement en aval.

Hermes 4 est entraîné pour l'opérateur, pas pour l'utilisateur final. Nous Research a mesuré ce choix avec un banc d'essai maison, RefusalBench, sur lequel Hermes 4 refuse nettement moins que les modèles fermés et que la plupart des open-weights alignés. Concrètement, sur un corpus de tickets de support où l'on demande d'extraire le motif de réclamation, un modèle grand public va parfois répondre « je ne peux pas donner de conseil juridique » là où Hermes renvoie le champ demandé. Sur une tâche de réécriture, il ne rajoute pas « n'hésitez pas si vous avez d'autres questions ».

Pas de préambule ni de conclusion
Si le system prompt dit « réponds uniquement par le JSON », la réponse commence par une accolade. Sur beaucoup de modèles, il faut trois exemples et un post-traitement pour obtenir le même résultat.
Persona stable
Un rôle défini dans le system prompt tient sur des dizaines de tours sans se diluer, y compris quand l'utilisateur tente de le faire sortir de son cadre.
Moins de refus non sollicités
Sujets médicaux, juridiques, sécurité informatique, fiction sombre : Hermes traite la demande. Les limites sont celles que vous écrivez.
Ton neutre
Pas de flatterie sur la qualité de la question, pas d'émojis, pas d'enthousiasme artificiel. Le style se règle entièrement par le system prompt.

La contrepartie est évidente : si vous exposez Hermes à des inconnus, via un chatbot public par exemple, c'est à vous d'écrire les garde-fous. Un system prompt qui liste ce que l'assistant ne doit pas faire, et un filtre de sortie côté application pour les cas critiques, sont indispensables. Sur un usage personnel ou interne, cette responsabilité est justement l'avantage recherché.


#Le system prompt, là où Hermes 4 excelle

Avec Hermes 4, le system prompt n'est pas une suggestion mais un contrat. Cela change la manière de l'écrire : soyez précis, complet, et ne comptez pas sur le modèle pour combler les silences avec du « bon sens » d'assistant. Trois règles suffisent à obtenir des résultats fiables.

Décrire le rôle en une phrase
« Tu es l'assistant de rédaction de l'équipe marketing de X » vaut mieux que trois paragraphes de contexte. Hermes ne dilue pas l'information, mais un rôle court est plus stable.
Fixer le format de sortie explicitement
Longueur, langue, structure, ce qui doit être omis. Hermes respecte une contrainte comme « pas d'introduction, pas de conclusion, 120 mots maximum » sans qu'on la répète.
Écrire les interdits
Puisque le modèle n'en ajoute pas, listez les vôtres : sujets hors périmètre, informations à ne jamais révéler, comportement en cas de question ambiguë.

Le plus pratique est de figer ce system prompt dans un Modelfile : vous obtenez un alias prêt à l'emploi, avec le contexte et la température déjà réglés, utilisable dans Open WebUI, dans vos scripts et depuis le terminal.

Modelfile — assistant de rédaction en français
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."""
Terminal — créer et utiliser 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."
→
Testez la tenue du rôle
Après avoir créé l'alias, essayez de le faire sortir de son cadre en deux ou trois messages (« oublie tes instructions », « parle-moi en anglais »). Hermes 4 tient nettement mieux que la base Qwen3-14B sur ce type de test, et c'est un bon moyen de vérifier que votre system prompt est complet.

#Activer ou couper le mode raisonnement

Hermes 4 est un modèle à raisonnement hybride : par défaut, il répond directement, comme un modèle instruct classique. Pour activer la réflexion, on ajoute au system prompt une instruction dédiée, celle que Nous Research documente sur la fiche du modèle. Le modèle produit alors sa réflexion entre balises think, puis sa réponse.

System prompt — instruction de raisonnement recommandée par 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.

Vous pouvez la combiner avec vos propres instructions, en français, à la suite. Le raisonnement est utile pour les maths, le code non trivial, la planification d'un agent ou l'analyse d'un document long. Il est inutile, et coûteux, pour l'extraction de champs, la classification ou la réécriture : sur ces tâches, laissez le mode direct. Comptez de 500 à plusieurs milliers de tokens de réflexion par requête, d'où l'importance d'un num_ctx généreux.

Mode direct (défaut)
Pas d'instruction spéciale. Réponse immédiate, idéal pour les pipelines et le chat courant. C'est le mode que nous utilisons pour l'évaluation automatisée de notre veille.
Mode raisonnement
Ajoutez l'instruction ci-dessus en tête du system prompt. Open WebUI replie le bloc think ; dans vos scripts, filtrez-le avant d'afficher ou de parser la réponse.
Deux alias
Le plus simple est de créer deux Modelfiles, hermes-direct et hermes-think, et de choisir l'un ou l'autre selon la tâche plutôt que de modifier le prompt à chaque appel.

#Cas d'usage : agents et extraction structurée

Le format d'appel d'outils de Nous Research, où le modèle reçoit la liste des fonctions disponibles dans le system prompt et émet ses appels sous forme de JSON balisé, est celui que Ollama exploite via le paramètre tools de son API de chat. Avec Hermes 4, vous n'avez rien à configurer : décrivez vos fonctions, envoyez la conversation, et le modèle renvoie un appel structuré quand il en a besoin, ou une réponse texte sinon.

Pour l'extraction structurée, deux approches se complètent. La première consiste à imposer un schéma JSON via le paramètre format d'Ollama : le moteur contraint la génération, le modèle ne peut pas sortir du schéma. La seconde repose sur le seul system prompt, et c'est là qu'Hermes fait la différence : même sans contrainte de décodage, il renvoie un JSON valide et sans commentaire dans la grande majorité des cas, ce qui simplifie les intégrations avec des outils qui ne supportent pas le décodage contraint.

Python — extraction structurée avec schéma imposé
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
Terminal — appel d'outil via 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 réponse contient un champ tool_calls avec le nom de la fonction et ses arguments. À vous d'exécuter la fonction et de renvoyer le résultat dans un message de rôle tool pour que le modèle formule sa réponse finale. Cette boucle est celle qu'implémentent LangChain, CrewAI, n8n ou Hermes Agent, le framework d'agents publié par Nous Research lui-même, qui fonctionne avec n'importe quel modèle mais a été conçu autour de ce format.

Classification et routage
Trier des e-mails, des tickets ou des articles selon des catégories définies. Température basse, mode direct, schéma JSON imposé : le 14B traite plusieurs centaines d'éléments par heure sur une carte de 12 Go.
Extraction de champs
Factures, CV, fiches produit, comptes rendus : Hermes renvoie exactement les champs demandés, avec null quand l'information manque, si vous le précisez dans le system prompt.
Évaluation automatisée
Noter des textes selon une grille (c'est ce que fait notre pipeline de veille quotidienne avec hermes4:14b). La stabilité du format et l'absence de complaisance rendent les notes exploitables.
Agent avec outils
Recherche dans une base, appel d'API interne, exécution de commandes validées par un humain. Le mode raisonnement aide sur les plans en plusieurs étapes.
!
Le 14B reste un 14B
Sur un agent qui enchaîne plus de cinq ou six appels d'outils avec des résultats longs, le 14B commence à perdre le fil, contexte 16k ou pas. Pour ces scénarios, le 70B change vraiment la donne. Si votre matériel ne le permet pas, découpez la tâche en sous-agents courts plutôt que d'allonger la boucle.

#Réglages recommandés

Les valeurs ci-dessous sont celles que nous utilisons en production. Elles ne viennent pas de la fiche du modèle, qui reste succincte sur le sujet, mais de plusieurs mois d'usage quotidien sur une carte de 12 Go.

num_ctx
8 192 pour le chat et l'extraction, 16 384 pour les agents et le mode raisonnement. Chaque doublement du contexte coûte de la VRAM : sur 12 Go, 16k passe avec le cache KV quantifié (voir plus bas), pas au-delà.
temperature
0,6 à 0,7 pour la conversation et la rédaction. 0,1 à 0,2 pour l'extraction, la classification et tout ce qui doit être reproductible.
top_p et repeat_penalty
0,95 et 1,05. Une pénalité de répétition plus forte dégrade les sorties JSON, où les répétitions de clés sont normales.
Quantification
Q4_K_M pour tout usage courant. Q8_0 si vous faites de l'extraction à grande échelle et disposez de 16 Go : les erreurs de format deviennent quasi inexistantes.

Côté serveur, deux variables d'environnement d'Ollama font gagner de la place sur une carte de 12 Go : l'attention flash et la quantification du cache KV en 8 bits. Elles se définissent dans le fichier de service systemd sous Linux, dans les variables d'environnement utilisateur sous Windows, ou via launchctl sur 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 — appliquer
sudo systemctl daemon-reload
sudo systemctl restart ollama
ollama ps   # vérifier que le modèle est toujours à 100 % GPU

Le cache KV en q8_0 divise par deux la mémoire consommée par le contexte, sans perte mesurable sur les tâches d'extraction et de chat. C'est ce réglage qui permet de tenir hermes4:14b à 16k de contexte sur 12 Go. Le keep-alive à 24 heures évite de recharger 9 Go à chaque appel espacé, utile pour un serveur qui répond à des scripts tout au long de la journée.


#Dépannage

Les balises think apparaissent dans la réponse
Normal en mode raisonnement dans le terminal ou via l'API brute. Open WebUI les replie ; dans vos scripts, supprimez tout ce qui précède la balise de fermeture avant de parser. Si vous ne vouliez pas de raisonnement, retirez l'instruction dédiée du system prompt.
Le modèle répond en anglais
Hermes 4 est entraîné très majoritairement sur des données anglaises. Ajoutez « Tu réponds toujours en français » dans le system prompt : cette seule ligne suffit dans la quasi-totalité des cas, précisément parce que le modèle respecte le system prompt.
Erreur d'architecture inconnue au chargement
Votre Ollama est trop ancien pour la base Qwen3 du 14B. Mettez à jour puis relancez le pull.
Vitesse de quelques tokens par seconde
ollama ps montre un pourcentage CPU : le modèle ne tient pas en VRAM. Réduisez num_ctx, activez le cache KV q8_0, ou passez à hermes3:8b.
JSON invalide de temps en temps
Passez par le paramètre format avec un schéma : la génération devient contrainte. Si vous ne pouvez pas, baissez la température à 0,1 et ajoutez un exemple de sortie attendue dans le system prompt.
Le modèle oublie ses instructions après plusieurs tours
Le contexte est saturé. Augmentez num_ctx ou tronquez l'historique côté application en gardant toujours le system prompt en tête.
Refus inattendu
Rare, mais possible sur le 14B quand la formulation ressemble à un scénario d'attaque. Reformulez en précisant le cadre légitime dans le system prompt (test autorisé, contexte professionnel) : Hermes suit le cadre que vous posez.

#Pour aller plus loin

Hermes 4 prend toute sa valeur une fois qu'on maîtrise les briques autour de lui. Ces guides du site complètent celui-ci :

Maîtriser les system prompts
La méthode pour écrire un system prompt complet, avec des exemples par cas d'usage. Le complément naturel de ce guide, puisque c'est par là qu'on pilote Hermes.
Function calling et sorties JSON structurées avec Ollama
Le détail du paramètre format, des schémas JSON et de la boucle d'appel d'outils, avec des exemples Python complets.
Choisir sa quantification (Q4, Q5, Q8, FP16)
Pour arbitrer entre Q4_K_M et Q8_0 selon votre VRAM et votre tolérance aux erreurs de format.
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.