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.
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.
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, 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 :
- Calculer les directions de refus : pour chaque couche, calcule la différence entre les vecteurs résiduels moyens pour invites « nuisibles » et « inoffensives ».
- Orthogonaliser les matrices : modifie les poids des projections (attn.o_proj, mlp.down_proj) pour supprimer la direction de refus.
- Optimisation automatique : utilise l’échantillonneur TPE d’Optuna pour trouver les meilleurs paramètres d’ablitération.
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
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
Pour les fonctionnalités de recherche :
pip install -U heretic-llm[research]
Utilisation de base
Lancer le processus sur un modèle Hugging Face ou local :
heretic Qwen/Qwen3-4B-Instruct-2507
Ce que fait Heretic automatiquement :
- Charge le modèle au dtype optimal
- Détecte la meilleure taille de lot pour votre GPU
- Calcule les directions de refus depuis les datasets d’invites
- Lance les essais d’optimisation pour trouver les paramètres idéaux
- 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
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
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
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
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
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
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
Échec du chargement du modèle
# Essayer différents dtypes
heretic votre-modèle --dtypes ["bfloat16", "float16"]
Code distant de confiance requis
# Certains modèles nécessitent ce flag
heretic votre-modèle --trust_remote_code
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 :
- Filtrage des entrées : bloquez les invites problématiques
- Surveillance des sorties : examinez les réponses avant affichage
- Limitation de débit : limitez le volume d’usage
- Journalisation/audit : tracez les traitements du modèle
- 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
-
Installer :
pip install -U heretic-llm - Choisir un modèle : commencez avec un 7B-12B pour tester
-
Exécuter :
heretic votre-nom-de-modèle - Évaluer : discutez avec le résultat ou uploadez-le sur Hugging Face
- 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)