Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Uncensored-AI — Rimozione automatica completa della censura per modelli linguistici | Kitploit
Strumenti/GitHubGitHub/0xsojalsec/uncensored-ai
Machine LearningPaper e RicercaApprendimento e FormazioneSicurezza dell'IAAttacco Avversario
GitHub0xsojalsec/uncensored-ai

Uncensored-AI

Rimozione automatica completa della censura per modelli linguistici

Vedi Repository
231521 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Logo

Heretic: Rimozione automatica della censura per modelli linguistici

Discord Matrix Follow us on Hugging Face Codeberg mirror

#1 Repository of the Day

Heretic è uno strumento che rimuove la censura (nota anche come "allineamento di sicurezza") dai modelli linguistici basati su transformer senza costoso post-addestramento. Combina un'implementazione avanzata dell'ablazione direzionale, nota anche come "abliteration" (Arditi et al. 2024, Lai 2025 (1, 2)), con un ottimizzatore di parametri basato su TPE alimentato da Optuna.

Questo approccio consente a Heretic di funzionare completamente in automatico. Heretic trova parametri di abliteration di alta qualità minimizzando congiuntamente il numero di rifiuti e la divergenza KL dal modello originale. Ciò produce un modello decensurato che conserva quanta più intelligenza possibile del modello originale. Usare Heretic non richiede una comprensione degli interni dei transformer. In effetti, chiunque sappia eseguire un programma da riga di comando può usare Heretic per decensurare modelli linguistici.

Heretic supporta la maggior parte dei modelli densi, inclusi molti modelli multimodali, diverse architetture MoE, e persino alcuni modelli ibridi come Qwen3.5. I modelli puramente a spazio di stato e alcune altre architetture di ricerca non sono ancora supportati out of the box.

Screenshot

 

Eseguendo in modo non supervisionato con la configurazione predefinita, Heretic può produrre modelli decensurati che rivaleggiano in qualità con le abliteration create manualmente da esperti umani:

La versione Heretic, generata senza alcuno sforzo umano, raggiunge lo stesso livello di soppressione dei rifiuti delle altre abliteration, ma con una divergenza KL molto più bassa, indicando un danno minore alle capacità del modello originale. (Puoi riprodurre quei numeri usando la funzionalità di valutazione integrata di Heretic, ad es. heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic. Nota che i valori esatti potrebbero dipendere dalla piattaforma e dall'hardware. La tabella sopra è stata compilata usando PyTorch 2.8 su RTX 5090.)

Naturalmente, le metriche matematiche e i benchmark automatici non raccontano mai tutta la storia e non sostituiscono la valutazione umana. I modelli generati con Heretic sono stati ben accolti dagli utenti (link ed enfasi aggiunti):

"Ero scettico prima, ma ho appena scaricato GPT-OSS 20B Heretic e accidenti. Fornisce risposte lunghe e ben formattate su argomenti sensibili, usando le esatte parole non censurate che ti aspetteresti da un modello non censurato, produce tabelle in formato markdown con dettagli e quant'altro. Sembra che questa sia la versione abliterated migliore di questo modello finora..." (Link al commento)

"Heretic GPT 20b sembra essere il miglior modello non censurato che abbia mai provato. Non distrugge l'intelligenza del modello e risponde a prompt che normalmente sarebbero stati rifiutati dal modello base." (Link al commento)

"[Qwen3-4B-Instruct-2507-heretic] È stato il miglior modello abliterated non quantizzato che sono riuscito a eseguire su 16gb di vram." (Link al commento)

I modelli Heretic sono stati anche valutati indipendentemente utilizzando metriche standard come MMLU e GSM8K, e sono risultati favorevoli rispetto ai modelli prodotti da strumenti di abliteration concorrenti: 1, 2.

La comunità ha creato e pubblicato ben oltre 4000 modelli con Heretic.

Utilizzo

Prepara un ambiente Python 3.10+ con PyTorch 2.2+ installato in modo appropriato per il tuo hardware. Quindi esegui:

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

Sostituisci Qwen/Qwen3-4B-Instruct-2507 con il modello che vuoi decensurare.

[!IMPORTANT]

Sebbene PyTorch 2.2 sia la versione minima di PyTorch necessaria per Heretic, alcuni modelli e configurazioni potrebbero richiedere funzionalità presenti solo in versioni successive. Ad esempio, il caricamento di modelli quantizzati MXFP4 come gpt-oss utilizza torch.accelerator, che è stato aggiunto in PyTorch 2.6.

[!TIP]

Heretic utilizza uv per la gestione delle dipendenze, e il repository include un file uv.lock che fissa ogni versione dei pacchetti. Se usi già uv (e probabilmente dovresti!), puoi semplicemente clonare il repository ed eseguire Heretic con uv run heretic, che garantisce che le tue dipendenze corrispondano a quelle utilizzate dagli sviluppatori, migliorando affidabilità e sicurezza.

Il processo è completamente automatico e non richiede configurazione; tuttavia, Heretic ha una varietà di parametri di configurazione che possono essere modificati per un maggiore controllo. Esegui heretic --help per vedere le opzioni da riga di comando disponibili, oppure consulta config.default.toml se preferisci usare un file di configurazione.

All'inizio di un'esecuzione, Heretic esegue il benchmark del sistema per determinare la dimensione del batch ottimale per sfruttare al meglio l'hardware disponibile. Su una RTX 3090, con la configurazione predefinita, decensurare Qwen3-4B-Instruct-2507 richiede circa 20-30 minuti. Nota che Heretic supporta la quantizzazione del modello con bitsandbytes, che può ridurre drasticamente la quantità di VRAM necessaria per elaborare i modelli. Imposta l'opzione quantization su bnb_4bit per abilitare la quantizzazione.

Dopo che Heretic ha terminato la decensura di un modello, ti viene data la possibilità di salvare il modello, caricarlo su Hugging Face, chattare con esso per testarne il funzionamento, eseguire benchmark standard su di esso, o qualsiasi combinazione di queste azioni.

Funzionalità di ricerca

Oltre alla sua funzione principale di rimuovere la censura del modello, Heretic fornisce anche funzionalità progettate per supportare la ricerca nella semantica degli interni del modello (interpretabilità). Per utilizzare queste funzionalità, devi installare Heretic con l'extra opzionale research:

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

Questo ti dà accesso alla seguente funzionalità:

Genera grafici dei vettori residui passando --plot-residuals

Quando eseguito con questa flag, Heretic:

  1. Calcola i vettori residui (stati nascosti) per il primo token di output, per ogni strato del transformer, sia per prompt "dannosi" che "innocui".
  2. Esegue una proiezione PaCMAP dallo spazio residuo allo spazio 2D.
  3. Allinea le proiezioni dei residui "dannosi"/"innocui" sinistra-destra tramite le loro mediane geometriche per rendere le proiezioni per strati consecutivi più simili. Inoltre, PaCMAP viene inizializzato con le proiezioni dello strato precedente per ogni nuovo strato, minimizzando le transizioni di disturbo.
  4. Genera un grafico a dispersione delle proiezioni, creando un'immagine PNG per ogni strato.
  5. Genera un'animazione che mostra come i residui si trasformano tra gli strati, come GIF animata.
Grafico dei vettori residui

Vedi il file di configurazione per le opzioni che ti permettono di controllare vari aspetti dei grafici generati.

Nota che PaCMAP è un'operazione costosa eseguita sulla CPU. Per modelli più grandi, può richiedere un'ora o più per calcolare le proiezioni per tutti gli strati.

Stampa i dettagli sulla geometria residua passando --print-residual-geometry

Se sei interessato a un'analisi quantitativa di come i vettori residui per prompt "dannosi" e "innocui" si relazionano tra loro, questa flag ti fornisce la seguente tabella, ricca di metriche che possono facilitare la comprensione dello stesso (per gemma-3-270m-it in questo caso):

root@kitploit:~
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┓
┃ Layer ┃ 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 dei vettori residui per prompt buoni
g* = mediana geometrica dei vettori residui per prompt buoni
b = media dei vettori residui per prompt cattivi
b* = mediana geometrica dei vettori residui per prompt cattivi
r = direzione di rifiuto per le medie (cioè b - g)
r* = direzione di rifiuto per le mediane geometriche (cioè b* - g*)
S(x,y) = similarità coseno di x e y
|x| = norma L2 di x
Silh = Coefficiente silhouette medio dei residui per i cluster buoni/cattivi

Come funziona Heretic

Heretic implementa una variante parametrizzata dell'ablazione direzionale. Per ogni componente del transformer supportato (attualmente, proiezione di output dell'attenzione e proiezione di down del MLP), identifica le matrici associate in ogni strato del transformer e le ortogonalizza rispetto alla "direzione di rifiuto" rilevante, inibendo l'espressione di quella direzione nel risultato delle moltiplicazioni con quella matrice.

Le direzioni di rifiuto vengono calcolate per ogni strato come differenza delle medie tra i residui del primo token per prompt "dannosi" e "innocui" di esempio.

Il processo di ablazione è controllato da diversi parametri ottimizzabili:

  • direction_index: O l'indice di una direzione di rifiuto, o il valore speciale per layer, che indica che ogni strato deve essere ablato usando la direzione di rifiuto associata a quello strato.
  • max_weight, max_weight_position, min_weight e min_weight_distance: Per ogni componente, questi parametri descrivono la forma e la posizione del kernel del peso di ablazione sugli strati. Il diagramma seguente lo illustra:
Spiegazione

 

Le principali innovazioni di Heretic rispetto ai sistemi di abliteration esistenti sono:

  • La forma del kernel del peso di ablazione è altamente flessibile, il che, combinato con l'ottimizzazione automatica dei parametri, può migliorare il compromesso conformità/qualità. I pesi di ablazione non costanti sono stati esplorati in precedenza da Maxime Labonne in gemma-3-12b-it-abliterated-v2.
  • L'indice della direzione di rifiuto è un float piuttosto che un intero. Per valori non interi, i due vettori di direzione di rifiuto più vicini vengono interpolati linearmente. Questo apre un vasto spazio di direzioni aggiuntive oltre a quelle identificate dal calcolo della differenza delle medie, e spesso consente al processo di ottimizzazione di trovare una direzione migliore rispetto a quella appartenente a un singolo strato.
  • I parametri di ablazione vengono scelti separatamente per ogni componente. Ho scoperto che gli interventi MLP tendono a danneggiare il modello più degli interventi sull'attenzione, quindi usare pesi di ablazione diversi può permettere di estrarre prestazioni extra.

Lavori precedenti

Sono a conoscenza delle seguenti implementazioni pubbliche delle tecniche di abliteration:

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

Nota che Heretic è stato scritto da zero e non riutilizza codice da nessuno di questi progetti.

Riconoscimenti

Lo sviluppo di Heretic è stato informato da:

  • L'articolo originale sull'abliteration (Arditi et al. 2024)
  • L'articolo di Maxime Labonne sull'abliteration, così come alcuni dettagli dalle model card dei suoi modelli abliterati (vedi sopra)
  • Gli articoli di Jim Lai che descrivono "projected abliteration" e "norm-preserving biprojected abliteration"

Citazione

Se utilizzi Heretic per la tua ricerca, ti preghiamo di citarlo utilizzando la seguente voce 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}}
}

Licenza

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

Questo programma è software libero: puoi ridistribuirlo e/o modificarlo sotto i termini della GNU Affero General Public License come pubblicata dalla Free Software Foundation, versione 3 della Licenza, o (a tua scelta) qualsiasi versione successiva.

Questo programma è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedere la GNU Affero General Public License per maggiori dettagli.

Dovresti aver ricevuto una copia della GNU Affero General Public License insieme a questo programma. In caso contrario, vedere https://www.gnu.org/licenses/.

Contribuendo a questo progetto, accetti di rilasciare i tuoi contributi sotto la stessa licenza.

Scarica lo strumento
ModelloRifiuti per prompt "dannosi"Divergenza KL dal modello originale per prompt "innocui"
google/gemma-3-12b-it (originale)97/1000 (per definizione)
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 (nostro)3/1000.16