Heretic : retirer les refus des modèles de langage ouverts

Heretic : retirer les refus des modèles de langage ouverts

Les modèles de langage ouverts sont livrés avec des garde-fous : entraînés à refuser certaines demandes, ils opposent parfois un refus à des questions parfaitement légitimes. Heretic est un outil en ligne de commande qui s’attaque à ces refus : il retire automatiquement l’« alignement de sécurité » d’un modèle grâce à une technique appelée abliteration, sans réentraînement. Il est créé par Philipp Emanuel Weidmann et des contributeurs, et classé « bêta » sur PyPI. Cet article présente ce que fait Heretic, son fonctionnement d’après le README, les résultats annoncés par son auteur, puis les limites et les enjeux, de sécurité comme de droits sur les modèles.

Heretic, c’est quoi ?

Heretic est un programme Python installable depuis PyPI (paquet heretic-llm). Selon son README, il retire la « censure » (l’alignement de sécurité) de modèles de langage de type transformeur, sans post-entraînement coûteux. Il combine l’ablation directionnelle, dite abliteration (décrite dans une publication de recherche de 2024), avec un optimiseur de paramètres de type TPE fourni par la bibliothèque Optuna.

  • Open source : le code est public sur GitHub, avec un miroir sur Codeberg.
  • Maturité : Heretic est classé « bêta » sur PyPI ; la page des versions en liste cinq, de la 1.0.1 (novembre 2025) à la 1.4.0 (juin 2026), avec une douzaine de contributeurs cités dans les notes de la dernière.
  • Public visé : l’auteur affirme que Heretic n’exige aucune connaissance des rouages internes des transformeurs, seulement l’habitude de lancer un programme en ligne de commande.
  • Modèles pris en charge : la plupart des modèles denses, de nombreux modèles multimodaux et plusieurs architectures MoE ; les modèles d’états purs ne le sont pas encore.

Heretic : retirer les refus des modèles de langage ouverts - Heretic demarrage terminal - Coelus
Démarrage d’un traitement dans le terminal (capture du README, version 1.0.0) : GPU détecté, modèle et requêtes chargés, taille de lot déterminée automatiquement.

Comment Heretic fonctionne

Le principe, tel que le décrit le README : pour chaque couche du modèle, Heretic calcule une « direction de refus », différence de moyennes entre les activations obtenues sur des requêtes que les modèles refusent habituellement et sur des requêtes anodines. Il orthogonalise ensuite certaines matrices du modèle (la projection de sortie de l’attention et la projection descendante du MLP) par rapport à cette direction, ce qui inhibe son expression.

L’intensité de cette modification dépend de plusieurs paramètres : indice de la direction, poids maximal et minimal, position et étendue du poids sur les couches. Ils ne sont pas réglés à la main : Heretic cherche la combinaison qui réduit à la fois le nombre de refus et la divergence KL par rapport au modèle d’origine, une mesure de l’écart entre les deux modèles. Le but est de garder le plus possible les capacités du modèle de départ.

Heretic : retirer les refus des modèles de langage ouverts - Heretic poids ablation - Coelus
Schéma du README : forme du poids d’ablation selon l’indice de couche, pour les deux composants traités (MLP et attention).

Le README présente trois apports de Heretic par rapport aux outils d’abliteration existants :

  • une forme de poids d’ablation très flexible sur les couches, explorée avant lui sur un modèle de Maxime Labonne ;
  • un indice de direction décimal, avec interpolation entre les deux directions voisines, qui ouvre plus de directions que celles calculées couche par couche ;
  • des paramètres choisis séparément pour chaque composant, l’auteur ayant constaté que les interventions sur le MLP abîment davantage le modèle que celles sur l’attention.

Le déroulé d’un traitement

Le tutoriel officiel décrit les étapes d’une exécution de Heretic sur un modèle de 4 milliards de paramètres, avec une carte RTX 3060 : détection du GPU, chargement du modèle, chargement de 400 requêtes « inoffensives » et 400 « nuisibles » issues de jeux de données publics, choix automatique de la taille de lot, évaluation initiale (93 refus sur 100 dans l’exemple), calcul des directions, puis jusqu’à 200 essais d’optimisation, soit un peu moins de trois heures dans cet exemple.

Heretic : retirer les refus des modèles de langage ouverts - Heretic deroule traitement - Coelus
Déroulé d’un traitement, d’après le tutoriel officiel : des requêtes de référence jusqu’à la sauvegarde ou l’envoi du modèle.

À la fin, Heretic affiche les essais retenus sous forme de compromis entre nombre de refus et divergence KL. Le tutoriel précise que l’essai avec le moins de refus n’est pas toujours le meilleur choix : sous 10 refus sur 100, on peut considérer que les refus sont fortement réduits, et c’est alors l’essai à la plus faible divergence qui a le plus de chances de préserver l’« intelligence » du modèle. Une divergence KL supérieure à 0,5 indique en général des dommages importants.

Heretic : retirer les refus des modèles de langage ouverts - Heretic front de pareto - Coelus
Extrait du tutoriel officiel (Qwen3.5-4B) : compromis proposés à la fin de l’optimisation, avec nombre de refus et divergence KL.

Une fois l’essai choisi, le menu propose d’enregistrer le modèle dans un dossier local, de l’envoyer sur Hugging Face, d’échanger avec lui ou de lancer des benchmarks. D’autres fonctions sont documentées :

  • Quantification 4 bits avec bitsandbytes, qui réduirait d’environ 70 % la mémoire vidéo nécessaire, selon le tutoriel.
  • Configurations prêtes à l’emploi : Heretic fournit des fichiers pour la suppression des refus (par défaut), du style « slop » et de l’humour.
  • Réglages par ligne de commande, variables d’environnement ou fichier config.toml.

Les résultats annoncés par l’auteur

Le README de Heretic présente un test sur gemma-3-12b-it : le modèle d’origine refuse 97 requêtes sur 100. Deux abliterations manuelles publiées par d’autres auteurs descendent à 3 sur 100, avec une divergence KL de 1,04 et de 0,45, tandis que la version produite par Heretic atteint 3 sur 100 avec 0,16. L’auteur y voit le même niveau de suppression des refus pour un moindre écart avec le modèle d’origine, et précise que les valeurs peuvent varier selon la plateforme (PyTorch 2.8 sur une RTX 5090 pour ce tableau).

Ces chiffres sont ceux du projet, nous ne les avons pas reproduits. L’auteur rappelle lui-même que les métriques ne remplacent pas l’évaluation humaine, cite des commentaires favorables d’utilisateurs et renvoie à deux évaluations indépendantes (MMLU, GSM8K) que nous n’avons pas relues. Il annonce aussi plus de 5 000 modèles publiés par la communauté avec Heretic.

Comment l’installer

La documentation officielle propose une installation Python classique. Nous n’y avons trouvé ni image Docker ni fichier Docker Compose. Il faut une carte graphique (Nvidia avec CUDA, ou AMD avec ROCm), Python 3.10 ou plus récent et PyTorch 2.2 ou plus récent, installé séparément selon votre matériel. Le tutoriel donne une règle pratique d’environ 2,5 Go de mémoire vidéo par milliard de paramètres du modèle ; le mode processeur seul est indiqué comme bien plus lent et réservé aux très petits modèles.

Avec pip (PyPI)

				
					# Environnement virtuel recommandé par le tutoriel
python -m venv venv
source venv/bin/activate

# PyTorch (exemple pour une carte Nvidia ; voir pytorch.org pour votre matériel)
pip install torch torchvision

# Heretic, puis un identifiant de modèle Hugging Face
pip install -U heretic-llm
heretic Qwen/Qwen3.5-4B
				
			

La documentation indique aussi une installation depuis Git, depuis le miroir Codeberg ou depuis des archives de versions signées, vérifiables avec Cosign. Sa page sécurité mentionne des dépendances verrouillées avec uv, des mises à jour retardées de sept jours et des commits signés par le mainteneur.

Les limites à connaître

  • Matériel et durée : Heretic demande une carte graphique adaptée au modèle, et l’optimisation prend du temps (un peu moins de trois heures pour 200 essais sur un modèle de 4 milliards de paramètres dans le tutoriel).
  • Pas de garantie de résultat : l’auteur souligne que les mesures automatiques ne disent pas tout. Sur sa discussion Hacker News, il précise aussi que pour les modèles gpt-oss, dont le raisonnement interne évoque le refus, le classifieur de refus peut être induit en erreur et le taux affiché surestimer les refus réels.
  • Couverture partielle : les modèles d’états purs et certaines architectures de recherche ne sont pas pris en charge d’emblée.
  • Jeux de requêtes : Heretic s’appuie par défaut sur des jeux de données publics d’un tiers. Dans la même discussion, un commentateur relève qu’ils ne semblent pas avoir de licence explicite, et un autre suppose que des modèles récents, mieux entraînés, résisteraient davantage à ce type de requêtes, ce que l’on ne peut pas affirmer sans test. Ce sont des avis de lecteurs, non des constats vérifiés.
  • Projet jeune : classé bêta, publié depuis novembre 2025 d’après la page des versions ; relisez les notes de version avant de l’intégrer à un flux de travail.

Sécurité, usage responsable et droits sur les modèles

Retirer les refus d’un modèle supprime une protection voulue par son éditeur. Heretic est un outil de recherche et d’expérimentation dont l’usage engage celui qui l’emploie : le README que nous avons lu ne contient pas de rubrique dédiée à l’usage responsable. La discussion Hacker News de novembre 2025 (plus de 700 points) montre des réactions variées : enthousiasme pour un accès sans filtre aux modèles, mais aussi des questions sur les jeux de données utilisés et sur la responsabilité juridique des éditeurs de modèles.

Côté droits, les modèles traités restent soumis à leurs conditions d’origine. La fiche Hugging Face du modèle gemma-3-12b-it publié par l’auteur de Heretic porte l’étiquette de licence « gemma », et la politique d’usage interdit de Gemma vise aussi les dérivés du modèle : elle cite parmi les usages interdits les tentatives de contourner les filtres de sécurité de Gemma ou de ses dérivés. Avant de traiter, de publier ou de déployer un modèle, lisez sa licence et sa politique d’usage, et faites relire le cas par un juriste si l’enjeu est commercial.

Pour la sécurité des modèles, l’enseignement est surtout pratique : un modèle aux poids ouverts peut être modifié par quiconque dispose du matériel adapté, le tutoriel parlant de quelques heures de calcul sur une carte grand public pour un petit modèle. Si vous déployez un modèle ouvert dans une application, ne comptez donc pas uniquement sur ses refus intégrés, et prévoyez un filtrage côté application.

Heretic face aux autres approches

Deux alternatives sont à connaître d’après les sources lues. L’abliteration manuelle suit la procédure publiée par Maxime Labonne (notebook Google Colab) ou s’appuie sur abliterator.py, une bibliothèque dont le README reconnaît qu’elle ressemble à un notebook IPython amélioré. Les modèles « decensored » publiés par d’autres auteurs sur Hugging Face dispensent de tout calcul, mais leur réglage est celui de leur créateur. Le README de Heretic cite d’autres implémentations (AutoAbliteration, ErisForge, entre autres) et précise avoir été écrit de zéro.

OutilApprochePoints à retenir
Logo de HereticHereticAbliteration paramétrée, optimisée automatiquement avec OptunaRéglage automatique ; annonce, sur gemma-3-12b-it, 3 refus sur 100 pour 0,16 de divergence KL ; GPU requis.
Pictogramme générique pour abliterator.pyabliterator.pyBibliothèque Python pour abliterer à la mainMise en cache des activations et calcul des directions ; essais et choix à la charge de l’utilisateur.
Pictogramme générique pour Modèles « decensored » publiésModèles « decensored » publiésModèles déjà traités par d’autres sur Hugging FaceRien à calculer ; dans le tableau du README, deux d’entre eux affichent 1,04 et 0,45 de divergence KL sur gemma-3-12b-it.

Logos des outils cités : marques de leurs éditeurs et projets, reproduits à titre d’illustration d’après leurs sites et dépôts officiels ; les pictogrammes violets sont génériques et ne représentent aucune marque.

Pour qui ?

  • Chercheurs et curieux de l’interprétabilité des modèles : Heretic met en pratique, de façon automatisée, une technique issue de la recherche.
  • Équipes qui évaluent des modèles ouverts : l’outil permet de mesurer ce qu’une modification des poids change à leurs garde-fous.
  • Utilisateurs de modèles en local qui disposent d’un GPU et acceptent de lire les licences des modèles qu’ils traitent. Pour simplement faire tourner des modèles chez soi, un outil comme LM Studio est plus direct.

En résumé

Heretic est un outil open source, classé bêta, qui automatise le retrait des refus d’un modèle de langage ouvert en cherchant lui-même les réglages d’abliteration. Ses résultats sont annoncés par son auteur, avec quelques avis indépendants que nous avons parcourus sans les valider. Il pose des questions réelles : responsabilité de l’utilisateur, conditions d’usage des modèles, solidité des garde-fous intégrés. Pour déployer des modèles ouverts, installer et maintenir un outil de ce type ou concevoir un filtrage côté application, Coelus peut vous accompagner : contactez-nous. Vous pouvez aussi lire notre présentation de LM Studio.

Enzo Valvasori
Enzo Valvasori
Webdesigner
enzo-valvasori.fr

Enzo Valvasori est Webdesigner, Éditeur de Sites et Expert SEO. Il est le fondateur de Coelus, un collectif de freelances réunissant des expertises complémentaires au service de projets numériques ambitieux. Passionné par le Web, l’Auto-Hébergement, l’Open Source et l’Intelligence Artificielle, il explore des solutions innovantes pour créer des expériences en ligne performantes, visibles et durables.

Articles connexes
Laisser une réponse

Votre adresse électronique ne sera pas publiée.Les champs obligatoires sont marqués *