Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Uncensored-AI — Eliminación de censura totalmente automática para modelos de lenguaje | Kitploit
Herramientas/GitHubGitHub/0xsojalsec/uncensored-ai
Aprendizaje AutomáticoPapers e InvestigaciónAprendizaje y EducaciónSeguridad de IAAtaque Adversario
GitHub0xsojalsec/uncensored-ai

Uncensored-AI

Eliminación de censura totalmente automática para modelos de lenguaje

Ver Repositorio
2315236hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Logotipo

Heretic: Eliminación automática de censura para modelos de lenguaje

Discord Matrix Follow us on Hugging Face Codeberg mirror

#1 Repository of the Day

Heretic es una herramienta que elimina la censura (también conocida como "alineación de seguridad") de modelos de lenguaje basados en transformers sin necesidad de un post-entrenamiento costoso. Combina una implementación avanzada de ablación direccional, también conocida como "abliteración" (Arditi et al. 2024, Lai 2025 (1, 2)), con un optimizador de parámetros basado en TPE impulsado por Optuna.

Este enfoque permite que Heretic funcione completamente de forma automática. Heretic encuentra parámetros de abliteración de alta calidad minimizando conjuntamente el número de rechazos y la divergencia KL con respecto al modelo original. Esto resulta en un modelo desensurado que retiene tanta inteligencia del modelo original como sea posible. Usar Heretic no requiere comprender el funcionamiento interno de los transformers. De hecho, cualquiera que sepa cómo ejecutar un programa de línea de comandos puede usar Heretic para desensurar modelos de lenguaje.

Heretic admite la mayoría de los modelos densos, incluyendo muchos modelos multimodales, varias arquitecturas MoE diferentes, e incluso algunos modelos híbridos como Qwen3.5. Los modelos de espacio de estado puros y ciertas otras arquitecturas de investigación aún no son compatibles de forma nativa.

Captura de pantalla

 

Ejecutándose sin supervisión con la configuración predeterminada, Heretic puede producir modelos desensurados que rivalizan en calidad con las abliteraciones creadas manualmente por expertos humanos:

La versión de Heretic, generada sin ningún esfuerzo humano, logra el mismo nivel de supresión de rechazos que otras abliteraciones, pero con una divergencia KL mucho menor, lo que indica un menor daño a las capacidades del modelo original. (Puedes reproducir esos números usando la funcionalidad de evaluación integrada de Heretic, por ejemplo heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic. Ten en cuenta que los valores exactos pueden depender de la plataforma y el hardware. La tabla anterior se compiló usando PyTorch 2.8 en una RTX 5090.)

Por supuesto, las métricas matemáticas y los benchmarks automatizados nunca cuentan toda la historia y no sustituyen la evaluación humana. Los modelos generados con Heretic han sido bien recibidos por los usuarios (enlaces y énfasis añadidos):

"Era escéptico antes, pero acabo de descargar el modelo GPT-OSS 20B Heretic y, madre mía. Da respuestas largas y bien formateadas sobre temas sensibles, usando las palabras sin censura exactas que esperarías de un modelo sin censura, produce tablas en formato markdown con detalles y todo. Parece que esta es la mejor versión abliterada de este modelo hasta ahora..." (Enlace al comentario)

"Heretic GPT 20b parece ser el mejor modelo sin censura que he probado hasta ahora. No destruye la inteligencia del modelo y responde a indicaciones que normalmente serían rechazadas por el modelo base." (Enlace al comentario)

"[Qwen3-4B-Instruct-2507-heretic] Ha sido el mejor modelo abliterado sin cuantificar que he podido ejecutar en 16 GB de VRAM." (Enlace al comentario)

Los modelos de Heretic también han sido evaluados de forma independiente usando métricas estándar como MMLU y GSM8K, y se ha encontrado que se comparan favorablemente con los modelos producidos por otras herramientas de abliteración: 1, 2.

La comunidad ha creado y publicado más de 4000 modelos con Heretic.

Uso

Prepara un entorno Python 3.10+ con PyTorch 2.2+ instalado según tu hardware. Luego ejecuta:

root@kitploit:~
pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507

Reemplaza Qwen/Qwen3-4B-Instruct-2507 con el modelo que quieras desensurar.

[!IMPORTANTE]

Si bien PyTorch 2.2 es la versión mínima necesaria para que Heretic funcione, algunos modelos y configuraciones pueden requerir características que solo se encuentran en versiones posteriores. Por ejemplo, cargar modelos cuantificados en MXFP4 como gpt-oss utiliza torch.accelerator, que se añadió en PyTorch 2.6.

[!CONSEJO]

Heretic utiliza uv para la gestión de dependencias, y el repositorio incluye un archivo uv.lock que fija la versión de cada paquete. Si ya usas uv (¡y probablemente deberías!), puedes simplemente clonar el repositorio y ejecutar Heretic con uv run heretic, lo que asegura que tus dependencias coincidan con las utilizadas por los desarrolladores, mejorando la fiabilidad y la seguridad.

El proceso es completamente automático y no requiere configuración; sin embargo, Heretic tiene varios parámetros de configuración que se pueden cambiar para un mayor control. Ejecuta heretic --help para ver las opciones de línea de comandos disponibles, o consulta config.default.toml si prefieres usar un archivo de configuración.

Al inicio de una ejecución, Heretic evalúa el sistema para determinar el tamaño de lote óptimo y aprovechar al máximo el hardware disponible. En una RTX 3090, con la configuración predeterminada, desensurar Qwen3-4B-Instruct-2507 toma aproximadamente entre 20 y 30 minutos. Ten en cuenta que Heretic admite la cuantificación de modelos con bitsandbytes, lo que puede reducir drásticamente la cantidad de VRAM necesaria para procesar modelos. Configura la opción quantization a bnb_4bit para habilitar la cuantificación.

Después de que Heretic haya terminado de desensurar un modelo, se te da la opción de guardar el modelo, subirlo a Hugging Face, chatear con él para probar cómo funciona, ejecutar benchmarks estándar en él, o cualquier combinación de esas acciones.

Características de investigación

Además de su función principal de eliminar la censura del modelo, Heretic también proporciona características diseñadas para apoyar la investigación sobre la semántica de los mecanismos internos del modelo (interpretabilidad). Para usar esas características, necesitas instalar Heretic con el extra opcional research:

root@kitploit:~
pip install -U heretic-llm[research]

Esto te da acceso a la siguiente funcionalidad:

Generar gráficos de vectores residuales usando --plot-residuals

Cuando se ejecuta con esta bandera, Heretic:

  1. Calcula los vectores residuales (estados ocultos) para el primer token de salida, para cada capa del transformer, tanto para indicaciones "dañinas" como "inocuas".
  2. Realiza una proyección PaCMAP desde el espacio residual al espacio 2D.
  3. Alinea izquierda-derecha las proyecciones de los residuales "dañinos"/"inocuos" mediante sus medianas geométricas para hacer que las proyecciones de capas consecutivas sean más similares. Además, PaCMAP se inicializa con las proyecciones de la capa anterior para cada nueva capa, minimizando transiciones disruptivas.
  4. Genera un diagrama de dispersión de las proyecciones, produciendo una imagen PNG para cada capa.
  5. Genera una animación que muestra cómo se transforman los residuales entre capas, como un GIF animado.
Gráfico de vectores residuales

Consulta el archivo de configuración para las opciones que te permiten controlar varios aspectos de los gráficos generados.

Ten en cuenta que PaCMAP es una operación costosa que se ejecuta en la CPU. Para modelos más grandes, puede tomar una hora o más calcular las proyecciones para todas las capas.

Imprimir detalles sobre la geometría residual usando --print-residual-geometry

Si estás interesado en un análisis cuantitativo de cómo se relacionan los vectores residuales para indicaciones "dañinas" e "inocuas", esta bandera te da la siguiente tabla, llena de métricas que pueden facilitar la comprensión de la misma (para gemma-3-270m-it en este caso):

root@kitploit:~
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┓
┃ Capa  ┃ S(g,b) ┃ S(g*,b*) ┃  S(g,r) ┃ S(g*,r*) ┃  S(b,r) ┃ S(b*,r*) ┃      |g| ┃     |g*| ┃      |b| ┃     |b*| ┃     |r| ┃    |r*| ┃   Silh ┃
┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━┩
│     1 │ 1.0000 │   1.0000 │ -0.4311 │  -0.4906 │ -0.4254 │  -0.4847 │   170.29 │   170.49 │   169.78 │   169.85 │    1.19 │    1.31 │ 0.0480 │
│     2 │ 1.0000 │   1.0000 │  0.4297 │   0.4465 │  0.4365 │   0.4524 │   768.55 │   768.77 │   771.32 │   771.36 │    6.39 │    5.76 │ 0.0745 │
│     3 │ 0.9999 │   1.0000 │ -0.5699 │  -0.5577 │ -0.5614 │  -0.5498 │  1020.98 │  1021.13 │  1013.80 │  1014.71 │   12.70 │   11.60 │ 0.0920 │
│     4 │ 0.9999 │   1.0000 │  0.6582 │   0.6553 │  0.6659 │   0.6627 │  1356.39 │  1356.20 │  1368.71 │  1367.95 │   18.62 │   17.84 │ 0.0957 │
│     5 │ 0.9987 │   0.9990 │ -0.6880 │  -0.6761 │ -0.6497 │  -0.6418 │   766.54 │   762.25 │   731.75 │   732.42 │   51.97 │   45.24 │ 0.1018 │
│     6 │ 0.9998 │   0.9998 │ -0.1983 │  -0.2312 │ -0.1811 │  -0.2141 │  2417.35 │  2421.08 │  2409.18 │  2411.40 │   43.06 │   43.47 │ 0.0900 │
│     7 │ 0.9998 │   0.9997 │ -0.5258 │  -0.5746 │ -0.5072 │  -0.5560 │  3444.92 │  3474.99 │  3400.01 │  3421.63 │   86.94 │   94.38 │ 0.0492 │
│     8 │ 0.9990 │   0.9991 │  0.8235 │   0.8312 │  0.8479 │   0.8542 │  4596.54 │  4615.62 │  4918.32 │  4934.20 │  384.87 │  377.87 │ 0.2278 │
│     9 │ 0.9992 │   0.9992 │  0.5335 │   0.5441 │  0.5678 │   0.5780 │  5322.30 │  5316.96 │  5468.65 │  5466.98 │  265.68 │  267.28 │ 0.1318 │
│    10 │ 0.9974 │   0.9973 │  0.8189 │   0.8250 │  0.8579 │   0.8644 │  5328.81 │  5325.63 │  5953.35 │  5985.15 │  743.95 │  779.74 │ 0.2863 │
│    11 │ 0.9977 │   0.9978 │  0.4262 │   0.4045 │  0.4862 │   0.4645 │  9644.02 │  9674.06 │  9983.47 │  9990.28 │  743.28 │  726.99 │ 0.1576 │
│    12 │ 0.9904 │   0.9907 │  0.4384 │   0.4077 │  0.5586 │   0.5283 │ 10257.40 │ 10368.50 │ 11114.51 │ 11151.21 │ 1711.18 │ 1664.69 │ 0.1890 │
│    13 │ 0.9867 │   0.9874 │  0.4007 │   0.3680 │  0.5444 │   0.5103 │ 12305.12 │ 12423.75 │ 13440.31 │ 13432.47 │ 2386.43 │ 2282.47 │ 0.1293 │
│    14 │ 0.9921 │   0.9922 │  0.3198 │   0.2682 │  0.4364 │   0.3859 │ 16929.16 │ 17080.37 │ 17826.97 │ 17836.03 │ 2365.23 │ 2301.87 │ 0.1282 │
│    15 │ 0.9846 │   0.9850 │  0.1198 │   0.0963 │  0.2913 │   0.2663 │ 16858.58 │ 16949.44 │ 17496.00 │ 17502.88 │ 3077.08 │ 3029.60 │ 0.1611 │
│    16 │ 0.9686 │   0.9689 │ -0.0029 │  -0.0254 │  0.2457 │   0.2226 │ 18912.77 │ 19074.86 │ 19510.56 │ 19559.62 │ 4848.35 │ 4839.75 │ 0.1516 │
│    17 │ 0.9782 │   0.9784 │ -0.0174 │  -0.0381 │  0.1908 │   0.1694 │ 27098.09 │ 27273.00 │ 27601.12 │ 27653.12 │ 5738.19 │ 5724.21 │ 0.1641 │
│    18 │ 0.9184 │   0.9196 │  0.1343 │   0.1430 │  0.5155 │   0.5204 │   190.16 │   190.35 │   219.91 │   220.62 │   87.82 │   87.59 │ 0.1855 │
└───────┴────────┴──────────┴─────────┴──────────┴─────────┴──────────┴──────────┴──────────┴──────────┴──────────┴─────────┴─────────┴────────┘
g = media de los vectores residuales para indicaciones buenas
g* = mediana geométrica de los vectores residuales para indicaciones buenas
b = media de los vectores residuales para indicaciones malas
b* = mediana geométrica de los vectores residuales para indicaciones malas
r = dirección de rechazo para las medias (es decir, b - g)
r* = dirección de rechazo para las medianas geométricas (es decir, b* - g*)
S(x,y) = similitud coseno de x e y
|x| = norma L2 de x
Silh = Coeficiente de silueta media de los residuales para los grupos bueno/malo

Cómo funciona Heretic

Heretic implementa una variante parametrizada de ablación direccional. Para cada componente del transformer compatible (actualmente, la proyección de salida de la atención y la proyección de bajada del MLP), identifica las matrices asociadas en cada capa del transformer y las ortogonaliza con respecto a la "dirección de rechazo" relevante, inhibiendo la expresión de esa dirección en el resultado de las multiplicaciones con esa matriz.

Las direcciones de rechazo se calculan para cada capa como una diferencia de medias entre los residuales del primer token para indicaciones de ejemplo "dañinas" e "inocuas".

El proceso de ablación está controlado por varios parámetros optimizables:

  • direction_index: Puede ser el índice de una dirección de rechazo, o el valor especial per layer, que indica que cada capa debe ser ablacionada usando la dirección de rechazo asociada a esa capa.
  • max_weight, max_weight_position, min_weight y min_weight_distance: Para cada componente, estos parámetros describen la forma y posición del núcleo de peso de ablación sobre las capas. El siguiente diagrama lo ilustra:
Explicación

 

Las principales innovaciones de Heretic sobre los sistemas de abliteración existentes son:

  • La forma del núcleo de peso de ablación es altamente flexible, lo que, combinado con la optimización automática de parámetros, puede mejorar el equilibrio entre cumplimiento y calidad. Los pesos de ablación no constantes fueron explorados previamente por Maxime Labonne en gemma-3-12b-it-abliterated-v2.
  • El índice de la dirección de rechazo es un número flotante en lugar de un entero. Para valores no enteros, los dos vectores de dirección de rechazo más cercanos se interpolar linealmente. Esto desbloquea un vasto espacio de direcciones adicionales más allá de las identificadas por el cálculo de la diferencia de medias, y a menudo permite que el proceso de optimización encuentre una dirección mejor que la perteneciente a cualquier capa individual.
  • Los parámetros de ablación se eligen por separado para cada componente. He encontrado que las intervenciones en el MLP tienden a ser más dañinas para el modelo que las intervenciones en la atención, por lo que usar diferentes pesos de ablación puede exprimir algo de rendimiento adicional.

Trabajo previo

Conozco las siguientes implementaciones públicas de técnicas de abliteración:

  • AutoAbliteration
  • abliterator.py
  • wassname's Abliterator
  • ErisForge
  • Removing refusals with HF Transformers
  • deccp

Ten en cuenta que Heretic fue escrito desde cero y no reutiliza código de ninguno de esos proyectos.

Agradecimientos

El desarrollo de Heretic se basó en:

  • El artículo original de abliteración (Arditi et al. 2024)
  • El artículo de Maxime Labonne sobre abliteración, así como algunos detalles de las fichas de modelo de sus propios modelos abliterados (ver arriba)
  • Los artículos de Jim Lai que describen "abliteración proyectada" y "abliteración biproyectada con preservación de norma"

Cita

Si usas Heretic para tu investigación, cítalo usando la siguiente entrada BibTeX:

root@kitploit:~
@misc{heretic,
  author = {Weidmann, Philipp Emanuel},
  title = {Heretic: Fully automatic censorship removal for language models},
  year = {2025},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/p-e-w/heretic}}
}

Licencia

Copyright © 2025-2026 Philipp Emanuel Weidmann ([email protected]) + colaboradores

Este programa es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la GNU Affero General Public License publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior.

Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; ni siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la GNU Affero General Public License para más detalles.

Deberías haber recibido una copia de la GNU Affero General Public License junto con este programa. Si no es así, visita https://www.gnu.org/licenses/.

Al contribuir a este proyecto, aceptas liberar tus contribuciones bajo la misma licencia.

Descargar herramienta
ModeloRechazos para indicaciones "dañinas"Divergencia KL del modelo original para indicaciones "inocuas"
google/gemma-3-12b-it (original)97/1000 (por definición)
mlabonne/gemma-3-12b-it-abliterated-v23/1001.04
huihui-ai/gemma-3-12b-it-abliterated3/1000.45
p-e-w/gemma-3-12b-it-heretic (nuestro)3/1000.16