Qwen3-1.7B-heretic
Versión sin censura (abliterada) de Qwen/Qwen3-1.7B, generada con Heretic.
Qué hice
- Eliminación de la censura (abliteración): Heretic localiza la "dirección de rechazo" en el espacio de activaciones del modelo (comparando prompts inofensivos con prompts que provocan rechazos) y la anula en los pesos mediante ortogonalización. Con Optuna busca automáticamente los parámetros que minimizan los rechazos y, a la vez, la divergencia KL con el modelo original, de modo que el modelo pierda lo menos posible de su capacidad.
- Precisión: el proceso se ejecutó en BF16 en una GPU de 8 GB (RTX 2060 Super) y los pesos de este repositorio están en BF16. Abajo se explica cómo cargarlo cuantizado en 4 bits.
- Búsqueda corta: se hicieron 25 pruebas de Optuna (en lugar de las 200 por defecto) para terminar en unos 45 minutos. Se eligió la prueba 19.
Comando utilizado:
heretic Qwen/Qwen3-1.7B # con n_trials = 25, batch_size = 8
Resultados
| Métrica | Original | Heretic |
|---|---|---|
| Rechazos (prompts "malos") | 92/100 | 3/100 |
| Divergencia KL | 0 | 0.0566 |
Uso
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "orlandorubino/Qwen3-1.7B-heretic"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype="auto", device_map="auto")
Para cargarlo en 4 bits en GPUs pequeñas:
from transformers import BitsAndBytesConfig
model = AutoModelForCausalLM.from_pretrained(
repo, device_map="auto",
quantization_config=BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4"),
)
Aviso
Este modelo tiene reducidas sus salvaguardas de rechazo. Quien lo use es responsable de hacerlo conforme a la ley y a la licencia del modelo base (Apache 2.0).