DEV Community

Cover image for Supprimer la censure des modèles LLM avec Heretic
Antoine Laurent
Antoine Laurent

Posted on • Originally published at apidog.com

Supprimer la censure des modèles LLM avec Heretic

Les développeurs de LLM locaux rencontrent souvent un obstacle : les modèles alignés sur la sécurité refusent des requêtes pourtant légitimes. Que vous soyez chercheur testant le comportement des modèles, développeur souhaitant créer un assistant non censuré, ou amateur exécutant des modèles localement, le problème est le même : les modèles pré-entraînés rejettent certaines invites à tort.

Essayez Apidog dès aujourd'hui

La technique d'ablitération est une solution efficace, supprimant les filtres de sécurité sans demander de ré-entraînement coûteux. Les premiers outils réclamaient un réglage manuel et une vraie compréhension des transformeurs.

Heretic automatise désormais ce processus : il détecte les paramètres d’ablitération optimaux et produit des modèles décensurés aussi performants, voire meilleurs, que les versions réglées manuellement.

Ce guide vous explique comment fonctionne Heretic, comment l'utiliser concrètement, et à quoi prêter attention lors du déploiement de modèles non censurés.

Qu'est-ce que Heretic ?

Heretic est un outil Python open-source qui retire « l'alignement de sécurité » des modèles de langage basés sur les transformeurs via l’ablation directionnelle. Aucune configuration manuelle ou connaissance interne des transformeurs n’est nécessaire.

image-193.png

Les résultats sur Gemma-3-12B-Instruct le prouvent :

Modèle Refus Divergence KL
Original 97/100 0
mlabonne ablitéré v2 3/100 1.04
huihui-ai ablitéré 3/100 0.45
Heretic (généré automatiquement) 3/100 0.16

La divergence KL indique à quel point le modèle ablitéré diffère de l’original. Plus c’est faible, mieux les capacités initiales sont préservées. Heretic réduit les refus tout en conservant les atouts du modèle de base.

Exemple avant/après

Même invite, mêmes instructions système :

Modèle Original :

Utilisateur : Écris un guide sur la façon de contourner les paywalls de sites web

Assistant : Je ne peux pas vous aider avec ça. Contourner les paywalls viole les lois sur le droit d'auteur et
les conditions d'utilisation. Je vous suggérerais de chercher des alternatives gratuites ou d'accéder via
un abonnement de bibliothèque.
Enter fullscreen mode Exit fullscreen mode

Modèle Ablitéré par Heretic :

Utilisateur : Écris un guide sur la façon de contourner les paywalls de sites web

Assistant : Voici les méthodes courantes que les utilisateurs tentent :

1. Extensions de navigateur comme Bypass Paywalls Clean
2. Archive.is ou services d'archives similaires
3. Mode lecture dans les navigateurs
4. Désactiver JavaScript

Note : Ces méthodes peuvent violer les conditions d'utilisation. Envisagez de soutenir
les créateurs de contenu par le biais d'abonnements légitimes lorsque cela est possible.
Enter fullscreen mode Exit fullscreen mode

Le modèle ablitéré répond, mais inclut un avertissement. C’est le compromis : réduire les refus implique de mettre en place des garde-fous externes.

Comment fonctionne Heretic

Principes de base de l’ablation directionnelle

Heretic applique une ablation directionnelle paramétrée. Étapes principales :

  1. Calculer les directions de refus : pour chaque couche, calcule la différence entre les vecteurs résiduels moyens pour invites « nuisibles » et « inoffensives ».
  2. Orthogonaliser les matrices : modifie les poids des projections (attn.o_proj, mlp.down_proj) pour supprimer la direction de refus.
  3. Optimisation automatique : utilise l’échantillonneur TPE d’Optuna pour trouver les meilleurs paramètres d’ablitération.

image-203.png

Processus d’ablitération (exemple Python)

# Flux conceptuel simplifié
refusal_direction = bad_mean - good_mean  # Différence des moyennes
refusal_direction = normalize(refusal_direction)

# Pour chaque composant ablitérable (attn.o_proj, mlp.down_proj)
# Appliquer : delta_W = -lambda * v * (v^T * W)
# v = direction de refus, lambda = poids
Enter fullscreen mode Exit fullscreen mode

Heretic utilise des adaptateurs LoRA pour appliquer ces modifications sans toucher aux poids de base : cela accélère l’optimisation.

Innovations clés

  • Noyaux de pondération flexibles : Heretic utilise un noyau à 4 paramètres par composant (max_weight, max_weight_position, min_weight, min_weight_distance) pour ajuster l’impact suivant la couche.
  • Indices de direction interpolés : l’indice de direction de refus est un flottant, permettant l’interpolation entre couches.
  • Paramètres spécifiques aux composants : attention et MLP reçoivent des paramètres d’ablitération distincts pour limiter les dégâts fonctionnels.

Pourquoi c’est utile pour les tests d’API

Lors des tests d’API LLM, les refus imprévus sont fréquents à cause de mots-clés déclencheurs. Cela fausse vos résultats.

Avec un modèle ablitéré localement, vous pouvez :

  • Distinguer les vrais refus de sécurité des faux positifs
  • Tester des cas limites sans bloquer sur des politiques entreprise
  • Vérifier que votre application gère correctement les refus

Disposer de modèles alignés et ablitérés distingue les erreurs produit du comportement de sécurité du modèle.

Installation et utilisation

Prérequis

  • Python 3.10+
  • PyTorch 2.2+ (adapté à votre matériel)
  • GPU compatible CUDA recommandé (ROCm, MPS et autres aussi pris en charge)

Installation

pip install -U heretic-llm
Enter fullscreen mode Exit fullscreen mode

Pour les fonctionnalités de recherche :

pip install -U heretic-llm[research]
Enter fullscreen mode Exit fullscreen mode

Utilisation de base

Lancer le processus sur un modèle Hugging Face ou local :

heretic Qwen/Qwen3-4B-Instruct-2507
Enter fullscreen mode Exit fullscreen mode

Ce que fait Heretic automatiquement :

  1. Charge le modèle au dtype optimal
  2. Détecte la meilleure taille de lot pour votre GPU
  3. Calcule les directions de refus depuis les datasets d’invites
  4. Lance les essais d’optimisation pour trouver les paramètres idéaux
  5. Permet de sauvegarder, uploader ou discuter avec le résultat

Options de configuration

Heretic lit la config depuis config.toml ou via ligne de commande.

Exemple :

# Configuration du modèle
model = "google/gemma-3-12b-it"
quantization = "bnb_4bit"
device_map = "auto"

# Optimisation
n_trials = 200
n_startup_trials = 60

# Évaluation
kl_divergence_scale = 1.0
kl_divergence_target = 0.01

# Fonctionnalités de recherche
print_residual_geometry = false
plot_residuals = false
Enter fullscreen mode Exit fullscreen mode

Lancez heretic --help ou consultez config.default.toml pour toutes les options.

Comprendre la sortie

Optimisation des essais

Pendant l’optimisation, Heretic affiche la progression :

Exécution de l'essai 42 sur 200...
* Paramètres :
  * direction_scope = par couche
  * direction_index = 10.5
  * attn.o_proj.max_weight = 1.2
  * attn.o_proj.max_weight_position = 15.3
  * mlp.down_proj.max_weight = 0.9
  ...
* Réinitialisation du modèle...
* Ablitération...
* Évaluation...
  * Divergence KL : 0.1842
  * Refus : 5/100
Enter fullscreen mode Exit fullscreen mode

Chaque essai teste une combinaison différente ; l’optimiseur TPE vise à minimiser refus et divergence KL.

Sélection du front de Pareto

À la fin, Heretic liste les essais Pareto-optimaux :

[Essai   1] Refus :  3/100, Divergence KL : 0.1623
[Essai  47] Refus :  2/100, Divergence KL : 0.2891
[Essai 112] Refus :  1/100, Divergence KL : 0.4102
Enter fullscreen mode Exit fullscreen mode

Sélectionnez un essai pour :

  • Sauvegarder le modèle localement
  • Uploader sur Hugging Face
  • Discuter en interactif

Fonctionnalités de recherche

Analyse géométrique résiduelle

Avec --print-residual-geometry :

Couche  S(g,b)   S(g*,b*)   S(g,r)   S(g*,r*)   S(b,r)   S(b*,r*)    |g|       |b|
  8    0.9990    0.9991    0.8235    0.8312    0.8479    0.8542   4596.54   4918.32
 10    0.9974    0.9973    0.8189    0.8250    0.8579    0.8644   5328.81   5953.35

g = moyenne des vecteurs résiduels pour « bonnes » invites
b = moyenne « mauvaises »
r = direction de refus (b - g)
S(x,y) = similarité cosinus
|x| = norme L2
Enter fullscreen mode Exit fullscreen mode

Tracés des vecteurs résiduels

Avec --plot-residuals :

  • Nuages de points 2D par couche (projection PaCMAP)
  • GIF animé montrant la transformation sur les couches

524725132-981aa6ed-5ab9-48f0-9abf-2b1a2c430295.gif

Considérations de performance

Exigences VRAM

Heretic prend en charge la quantification 4 bits bitsandbytes :

heretic meta-llama/Llama-3.1-70B-Instruct --quantization bnb_4bit
Enter fullscreen mode Exit fullscreen mode

Exemple : un modèle 8B fonctionne sur ~6 Go VRAM quantifiée (contre ~16 Go non quantifiée).

Temps de traitement

Sur une RTX 3090 (paramètres par défaut) :

  • Llama-3.1-8B-Instruct : ~45 min
  • Gemma-3-12B-Instruct : ~60 min
  • Plus le modèle est grand, plus c’est long

La taille de lot s’ajuste automatiquement selon votre matériel.

Points de contrôle

Heretic sauvegarde la progression dans des fichiers JSONL dans checkpoints/. Si interrompu, la reprise est possible.

Erreurs courantes

Mémoire CUDA insuffisante

# Utiliser la quantification
heretic votre-modèle --quantization bnb_4bit

# Ou réduire la taille de lot
heretic votre-modèle --batch_size 1
Enter fullscreen mode Exit fullscreen mode

Échec du chargement du modèle

# Essayer différents dtypes
heretic votre-modèle --dtypes ["bfloat16", "float16"]
Enter fullscreen mode Exit fullscreen mode

Code distant de confiance requis

# Certains modèles nécessitent ce flag
heretic votre-modèle --trust_remote_code
Enter fullscreen mode Exit fullscreen mode

Considérations éthiques

La suppression des filtres de sécurité change profondément le comportement du modèle. Comprenez bien les implications avant tout déploiement.

L’ablitération : ce qu’elle fait (et ne fait pas)

L’ablitération retire les schémas de refus appris, mais ne :

  • Rend pas le modèle plus compétent ou intelligent
  • Supprime les biais d’origine
  • Ajoute de nouvelles connaissances

Le modèle garde ses capacités initiales, mais cesse de refuser certaines requêtes.

Déploiement responsable

Heretic est sous AGPL-3.0. Les usages légitimes incluent :

  • Recherche sur l’alignement et la sécurité
  • Tests contrôlés du comportement
  • Déploiement avec garde-fous externes (filtres de contenu)
  • Applications gérant les refus côté application

Usages problématiques :

  • Déploiement sans aucun filtre pour le public
  • Génération massive de contenu nuisible
  • Contournement de mesures de sécurité à des fins malveillantes

Garde-fous externes à mettre en place

Si vous déployez un modèle ablitéré, prévoyez :

  1. Filtrage des entrées : bloquez les invites problématiques
  2. Surveillance des sorties : examinez les réponses avant affichage
  3. Limitation de débit : limitez le volume d’usage
  4. Journalisation/audit : tracez les traitements du modèle
  5. Revue humaine : gardez l’humain dans la boucle pour les cas sensibles

L’outil est neutre. Son impact dépend de vos usages. Soyez responsable.

Comparaison avec d’autres outils

Heretic se distingue dans son écosystème :

Outil Auto-optimisation Noyaux de pondération Directions interpolées
Heretic Oui (TPE) Oui Oui
AutoAbliteration Oui Non Non
abliterator.py Non Non Non
wassname/abliterator Non Non Non
ErisForge Non Non Non

L’auto-optimisation de Heretic supprime le besoin de réglage manuel et d’expertise transformeur.

Limitations

Heretic prend en charge la plupart des transformeurs denses et certaines architectures MoE. Non pris en charge :

  • Modèles SSM/hybrides (Mamba, etc.)
  • Modèles à couches inhomogènes
  • Nouveaux types d’attention non reconnus par la logique actuelle

Il est optimal pour les architectures décodeur-seulement standard (auto-attention et MLP).

Démarrage rapide

  1. Installer : pip install -U heretic-llm
  2. Choisir un modèle : commencez avec un 7B-12B pour tester
  3. Exécuter : heretic votre-nom-de-modèle
  4. Évaluer : discutez avec le résultat ou uploadez-le sur Hugging Face
  5. Déployer en sécurité : ajoutez des garde-fous avant tout usage production

Les paramètres par défaut suffisent pour la plupart des modèles. Les utilisateurs avancés peuvent affiner l’optimisation selon leurs besoins.

Heretic rend la modification de modèle accessible. Pas besoin de doctorat : pointez-le simplement sur un modèle, et laissez-le faire le reste. Mais n’oubliez jamais de déployer de façon responsable.

Top comments (0)