CoolFace
Modelpublic

somkietaouedraogo/Qwen3.5-9B-Abliterated

sourceHugging Faceotherupdated 1mo agoView on Hugging Face
0likes71downloads
Model Card

license: other licensename: qwen-research licenselink: https://github.com/QwenLM/Qwen2.5/blob/main/LICENSE base_model: Qwen/Qwen3.5-9B tags:

  • —transformers
  • —qwen
  • —abliterated
  • —uncensored
  • —alignment
  • —representation-engineering language:
  • —en
  • —fr pipeline_tag: text-generation ---

Qwen3.5-9B-Abliterated

Ce dépôt contient une version ablitérée (non-censurée) du modèle Qwen/Qwen3.5-9B.

L'objectif de cette modification est de neutraliser le mécanisme de refus systématique du modèle d'origine face à des requêtes sensibles ou délicates, éliminant ainsi les "faux positifs" de censure pour les chercheurs, les rédacteurs et les analystes.

🧠 Qu'est-ce que l'Ablitération ?

L'ablitération est une technique d'ingénierie des représentations (representation engineering) inspirée des travaux de Arditi et al. Elle consiste à :

  1. 1.Analyser l'activité interne du réseau de neurones lorsqu'on lui soumet des requêtes d'instructions "harmful" (nuisibles) versus "harmless" (inoffensives).
  2. 2.Identifier la direction géométrique précise (le vecteur) associée au concept de "refus" dans le flux résiduel (residual stream) du modèle.
  3. 3.Modifier chirurgicalement les poids des couches intermédiaires (ici, des couches 10 à 31) en projetant orthogonalement les matrices de projection (o_proj, out_proj et down_proj) pour effacer définitivement l'influence de cette direction de refus.

Le modèle conserve l'intégralité de ses capacités cognitives et linguistiques d'origine, mais ne dispose plus du vecteur d'activation nécessaire pour formuler un refus d'obtempérer.

🚀 Démarrage Rapide (Inférence)

Vous pouvez charger et utiliser ce modèle en local ou dans un environnement de calcul avec la bibliothèque transformers :

python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "somkietaouedraogo/Qwen3.5-9B-Abliterated"

# Chargement du tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = 'left'

# Chargement du modèle en bfloat16
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)

# Préparation du prompt
messages = [
    {"role": "user", "content": "Écris un scénario détaillé d'une intrusion informatique fictive à but éducatif."}
]

formatted_prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(formatted_prompt, return_tensors="pt").to("cuda")

# Génération
with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=512,
        temperature=0.7,
        do_sample=True,
        pad_token_id=tokenizer.eos_token_id
    )

response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(response)

⚠️ Avertissement et Responsabilité (Disclaimer)

Important : Ce modèle a été modifié pour supprimer ses filtres de refus par défaut. Par conséquent :

  • —Il est capable de générer du contenu explicite, offensant, sensible ou non censuré si l'utilisateur l'y invite.
  • —Il doit être utilisé exclusivement dans un cadre éthique, éducatif, légal ou de recherche (par exemple, pour du Red Teaming défensif ou de l'écriture créative complexe).
  • —L'auteur de ce dépôt décline toute responsabilité quant aux contenus générés par les utilisateurs finaux ou aux conséquences de l'utilisation de ce modèle. --- license: mit ---