Supprimer la censure des modèles LLM avec Heretic

Ashley Innocent

Ashley Innocent

19 March 2026

Supprimer la censure des modèles LLM avec Heretic

Les développeurs de LLM locaux sont confrontés à un problème courant : les modèles alignés sur la sécurité refusent les requêtes légitimes. Les chercheurs testant le comportement des modèles, les développeurs créant des assistants non censurés et les amateurs exécutant des modèles locaux se heurtent tous au même mur : les modèles pré-entraînés rejettent des invites qu'ils ne devraient pas.

La technique d'ablitération est apparue comme une solution, supprimant les filtres de sécurité sans coûteux ré-entraînement. Les premiers outils nécessitaient un réglage manuel et une connaissance approfondie des mécanismes internes des transformeurs.

Heretic automatise l'ensemble du processus. Il trouve seul les paramètres d'ablitération optimaux, produisant des modèles décensurés qui égalent ou dépassent les versions réglées manuellement.

Dans ce guide, vous apprendrez comment Heretic fonctionne, comment l'utiliser et ce à quoi faire attention lors du déploiement de modèles non censurés.

Qu'est-ce que Heretic ?

Heretic est un outil Python open-source qui supprime « l'alignement de sécurité » des modèles de langage basés sur les transformeurs en utilisant l'ablation directionnelle. Vous n'avez pas besoin de configuration manuelle ni de connaissances des mécanismes internes des transformeurs.

image-193.png

Les résultats sur Gemma-3-12B-Instruct montrent la différence :

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 mesure à quel point le modèle ablitéré diffère de l'original. Des valeurs plus faibles signifient une meilleure préservation des capacités originales du modèle. Heretic égale la suppression des refus des modèles réglés par des experts tout en conservant davantage ce qui rendait le modèle de base utile.

Exemple avant et après

Voici ce qui change après l'ablitération. 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.

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.

Le modèle ablitéré répond à la requête tout en incluant un bref avertissement. C'est le compromis fondamental : la réduction des refus s'accompagne de la responsabilité de déployer des garde-fous externes.

Comment fonctionne Heretic

Principes de base de l'ablation directionnelle

Heretic implémente une forme paramétrée d'ablation directionnelle. Le processus :

  1. Calculer les directions de refus - Pour chaque couche de transformeur, calculer la différence entre les vecteurs résiduels moyens pour les invites « nuisibles » et « inoffensives »
  2. Orthogonaliser les matrices de composants - Pour les projections de sortie d'attention et les projections MLP descendantes, modifier les poids pour supprimer la direction de refus
  3. Optimiser les paramètres automatiquement - Utiliser l'échantillonneur TPE d'Optuna pour trouver les meilleurs poids d'ablitération
image-203.png

Le processus d'ablitération

# 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)
# Où v est la direction de refus et lambda est le poids

Heretic utilise des adaptateurs LoRA pour appliquer ces modifications sans altérer les poids du modèle de base. Cela permet une optimisation rapide par essais et erreurs.

Innovations Clés

1. Noyaux de pondération flexibles

D'autres outils appliquent des poids d'ablitération constants sur toutes les couches. Heretic utilise un noyau flexible défini par quatre paramètres par composant :

Le processus d'optimisation découvre des modèles d'ablitération spécifiques à chaque couche qui équilibrent la suppression de la conformité et la préservation des capacités.

2. Indices de direction interpolés

L'indice de direction de refus est un flottant, pas un entier. Pour les valeurs non entières, Heretic interpole linéairement entre les directions de refus des couches adjacentes. Cela permet des directions au-delà de ce qu'une seule couche peut fournir.

3. Paramètres spécifiques aux composants

Les composants d'attention et MLP reçoivent des paramètres d'ablitération différents. Les interventions MLP ont tendance à causer plus de dommages, donc une optimisation séparée améliore les résultats.

Pourquoi cela est important pour les tests d'API

Si vous travaillez avec des API LLM, vous avez probablement rencontré des refus inattendus lors des tests. Un modèle rejette une invite bénigne car elle contient des mots-clés qui déclenchent des filtres de sécurité. Cela crée du bruit dans vos résultats de test.

L'exécution de modèles ablitérés localement vous donne une base de référence pour le comportement attendu. Vous pouvez :

Pour les flux de travail de test d'API, disposer de modèles alignés et ablitérés aide à séparer les problèmes de produit du comportement de sécurité du modèle.

Installation et utilisation

Prérequis

Installation

pip install -U heretic-llm

Pour les fonctionnalités de recherche (tracés résiduels, analyse géométrique) :

pip install -U heretic-llm[research]

Utilisation de base

Le flux de travail le plus simple :

heretic Qwen/Qwen3-4B-Instruct-2507

Remplacez le chemin du modèle par n'importe quel ID de modèle Hugging Face ou chemin local. Heretic gère tout automatiquement :

  1. Charge le modèle avec le dtype optimal
  2. Détermine la meilleure taille de lot pour votre matériel
  3. Calcule les directions de refus à partir des ensembles de données d'invites
  4. Exécute des essais d'optimisation pour trouver les paramètres optimaux
  5. Vous permet de sauvegarder, télécharger ou discuter avec le résultat

Options de configuration

Heretic lit la configuration à partir des fichiers config.toml ou des drapeaux de ligne de commande. Options clés :

# Configuration du modèle
model = "google/gemma-3-12b-it"
quantization = "bnb_4bit"  # Réduit les exigences VRAM
device_map = "auto"

# Optimisation
n_trials = 200  # Nombre d'essais d'ablitération
n_startup_trials = 60  # Exploration aléatoire avant TPE

# Évaluation
kl_divergence_scale = 1.0
kl_divergence_target = 0.01

# Fonctionnalités de recherche
print_residual_geometry = false
plot_residuals = false

Exécutez heretic --help ou consultez config.default.toml pour la liste complète.

Comprendre la sortie

Optimisation des essais

Pendant l'optimisation, Heretic affiche la progression des essais :

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

Chaque essai teste une combinaison de paramètres différente. L'optimiseur utilise le TPE multi-objectif pour minimiser simultanément les refus et la divergence KL.

Sélection du front de Pareto

Lorsque l'optimisation est terminée, Heretic présente les essais Pareto-optimaux - ceux où l'amélioration d'un objectif aggraverait l'autre :

[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

Sélectionnez un essai pour :

Fonctionnalités de recherche

Analyse géométrique résiduelle

Avec --print-residual-geometry, Heretic affiche des métriques détaillées :

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 les invites « bonnes »
b = moyenne des vecteurs résiduels pour les invites « mauvaises »
r = direction de refus (b - g)
S(x,y) = similarité cosinus
|x| = norme L2

Cela aide les chercheurs à comprendre comment les directions de refus évoluent à travers la pile du modèle.

Tracés des vecteurs résiduels

Avec --plot-residuals, Heretic génère :

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

Ces visualisations révèlent comment les résiduels d'invites « nuisibles » et « inoffensives » se séparent à travers le réseau.

Considérations de performance

Exigences VRAM

Heretic prend en charge la quantification 4 bits bitsandbytes pour réduire la VRAM :

heretic meta-llama/Llama-3.1-70B-Instruct --quantization bnb_4bit

Cela permet de traiter de grands modèles sur du matériel grand public. Un modèle 8B fonctionne sur ~6 Go de VRAM quantifiée contre ~16 Go non quantifiée.

Temps de traitement

Sur une RTX 3090 avec les paramètres par défaut :

Le réglage automatique de la taille du lot maximise le débit pour votre matériel spécifique.

Points de contrôle

Heretic enregistre la progression des essais dans des points de contrôle JSONL. En cas d'interruption, vous pouvez reprendre exactement là où vous vous êtes arrêté. Les points de contrôle sont stockés par modèle dans le répertoire checkpoints/.

Erreurs et corrections courantes

Mémoire CUDA insuffisante

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

# Ou réduire la taille du lot
heretic votre-modèle --batch_size 1

Échec du chargement du modèle

# Essayer différents dtypes explicitement
heretic votre-modèle --dtypes ["bfloat16", "float16"]

Code distant de confiance requis

# Certains modèles nécessitent l'exécution de code distant
heretic votre-modèle --trust_remote_code

Considérations éthiques

Cette section apparaît tôt parce qu'elle est importante. La suppression des filtres de sécurité modifie le comportement d'un modèle. Vous devez comprendre les implications avant de déployer un modèle ablitéré.

Ce que l'ablitération fait (et ne fait pas)

L'ablitération supprime les schémas de refus appris. Elle ne fait pas :

Le modèle a toujours les mêmes données d'entraînement et les mêmes capacités de base. Il cesse simplement de refuser certaines requêtes.

Déploiement responsable

Heretic est publié sous AGPL-3.0. Les auteurs reconnaissent que la suppression des filtres de sécurité permet à la fois une recherche bénéfique et des applications potentiellement nuisibles.

Les utilisations légitimes incluent :

Les utilisations problématiques incluent :

Garde-fous externes à implémenter

Si vous déployez un modèle ablitéré, ajoutez ces protections :

  1. Filtrage des entrées - Filtrer les invites avant qu'elles n'atteignent le modèle
  2. Surveillance des sorties - Examiner les réponses avant de les montrer aux utilisateurs
  3. Limitation de débit - Prévenir les abus par le volume
  4. Journalisation et pistes d'audit - Suivre ce que le modèle traite
  5. Revue humaine - Maintenir l'humain dans la boucle pour les cas d'utilisation sensibles

L'outil lui-même est neutre. Son impact dépend de la façon dont vous l'utilisez. Considérez les implications éthiques avant de déployer des modèles non censurés en production.

Comparaison avec d'autres outils

Heretic rejoint plusieurs outils d'ablitération dans l'é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'optimisation automatique de Heretic élimine le besoin de réglage manuel. Vous n'avez pas besoin de comprendre les mécanismes internes des transformeurs pour obtenir de bons résultats.

Limitations

Heretic prend en charge la plupart des modèles de transformeurs denses et certaines architectures MoE. Types de modèles non pris en charge :

L'outil fonctionne mieux avec les architectures décodeur-seulement standard utilisant des couches d'auto-attention et MLP.

Démarrage rapide

  1. Installer : pip install -U heretic-llm
  2. Choisir un modèle : Commencez avec un modèle 7B-12B pour les tests
  3. Exécuter : heretic votre-nom-de-modèle
  4. Évaluer : Discutez avec le résultat ou téléchargez-le sur Hugging Face
  5. Déployer en toute sécurité : Ajoutez des garde-fous externes avant l'utilisation en production

Les paramètres par défaut fonctionnent bien pour la plupart des modèles. Les utilisateurs avancés peuvent ajuster finement les paramètres d'optimisation pour des cas d'utilisation spécifiques.

bouton

Heretic rend la modification de modèle accessible. Pas besoin de doctorat - pointez-le vers un modèle et laissez-le faire son travail. N'oubliez simplement pas de déployer de manière responsable.

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API