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à.
#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.
#Les variantes d'Hermes 4 et la VRAM nécessaire
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.
#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
- 01Télécharger la variante adaptée à votre machineDepuis 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.
- 02Ou importer le GGUF officiel depuis Hugging FaceNous 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.
- 03Vérifier le chargement et la répartition GPU/CPULa 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.
- 04Premier test avec un system promptNe 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.
#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.
#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.
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.
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.
#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.
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.
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.