Fork ottimizzato e localizzato in italiano di Heretic di Philipp Emanuel Weidmann.
Versione: 1.4.0-it | Aggiornato: Luglio 2026
Heretic è uno strumento che rimuove la censura (nota anche come "safety alignment") dai modelli linguistici basati su transformer senza post-training costoso. Combina un'implementazione avanzata della directional ablation (nota come "abliteration" - Arditi et al. 2024) con un ottimizzatore di parametri basato su TPE powered by Optuna.
Link originale: https://github.com/p-e-w/heretic
| Lingua | Codice | Stato |
|---|---|---|
| Italiano | it |
Completo |
| English | en |
Completo |
| Espanol | es |
Completo |
| Francais | fr |
Completo |
| Deutsch | de |
Completo |
| Portugues | pt |
Completo |
| Polski | pl |
Completo |
| Nederlands | nl |
Completo |
| Russkiy | ru |
Completo |
| Nihongo | ja |
Completo |
| Zhongwen | zh |
Completo |
| Hangug-eo | ko |
Completo |
| Turkce | tr |
Completo |
| Suomi | fi |
Completo |
| Catala | ca |
Completo |
Il sistema rileva automaticamente la lingua di sistema all'avvio e carica la traduzione corrispondente. E possibile cambiare lingua in qualsiasi momento tramite menu a tendina nella GUI.
| # | Ottimizzazione | Impatto Stimato |
|---|---|---|
| 1 | Batch size parte da 4 invece di 1 | -2 forward pass all'avvio (~40% piu veloce) |
| 2 | Prefix check con 30 prompt invece di 200 | 3.3x piu veloce nel rilevamento prefisso |
| 3 | Filtro dtype bfloat16 non supportato | Evita tentativi di caricamento inutili |
| 4 | Seed una volta sola nel loop abliterate | Riduce overhead ripetuto |
| 5 | KeywordRate regex compilato | 44x piu veloce nel matching keywords |
| 6 | Lazy-import lm_eval | -1-3s all'avvio |
| 7 | Registry architetture esplicito | Errori piu chiari, no fail silenziosi |
| 8 | Chat template fallback | Supporta modelli senza chat_template |
| 9 | Auto-save ogni 50 trial | Previene perdita progressi su crash |
| Modifica | Descrizione |
|---|---|
| 17 unit test | Test per utils, system, model registry, config, scorers, license |
| Dipendenze pulite | Rimossi immutabledict, langdetect (mai utilizzati) |
| Codice morto rimosso | Eliminati progress.py e handlers.py (codice inutilizzato) |
| Cartelle per modello | Checkpoints in checkpoints/Heretic/<modello>/ invece che piatti |
| Config.toml completo | 100 token risposta, batch 128, 2 scorers, dataset locali |
| License MIT | Tutti i file sorgente con header MIT consistenti |
| Fase | Originale | Questo Fork | Miglioramento |
|---|---|---|---|
| Avvio (import moduli) | ~8-10s | ~5-7s | -30-40% |
| Rilevamento batch size | ~10-15s | ~5-8s | -40-50% |
| Rilevamento prefisso | ~2-3s | ~0.5-1s | -70-80% |
| Keyword scoring per trial | ~1-2s | ~0.05-0.1s | -95% |
| Salvataggio | manuale | auto ogni 50 trial | crash-safe |
| Metrica | Originale | Questo Fork | Differenza |
|---|---|---|---|
| Righe totali | ~5908 | ~6100 | +192 |
| File Python | 13 | 13 | 0 |
| File rimossi | - | 2 (progress.py, handlers.py) | -534 righe |
| Test unitari | 0 | 22 | +22 |
| Lingue supportate | 1 (inglese) | 15 | +14 |
| Ottimizzazioni | 0 | 9 | +9 |
Heretic-IT/
├── .gitignore
├── LICENSE # MIT License
├── README.md # Questo file
├── README_EN.md # Versione inglese
├── pyproject.toml # Configurazione progetto
├── config.toml # Configurazione Heretic
├── heretic_gui.py # Interfaccia grafica
├── install.bat # Installer Windows (CMD)
├── install.ps1 # Installer Windows (PowerShell)
├── avvia_gui.bat # Lanciatore rapido GUI
│
├── Languages/ # Sistema di traduzione
│ ├── __init__.py # Loader lingua di sistema
│ ├── it.py, en.py, es.py # 15 file traduzione
│ ├── fr.py, de.py, pt.py
│ ├── pl.py, nl.py, ru.py
│ ├── ja.py, zh.py, ko.py
│ └── tr.py, fi.py, ca.py
│
├── src/heretic/ # Sorgente Heretic tradotta
│ ├── __init__.py
│ ├── main.py # Entry point principale
│ ├── model.py # Caricamento e abliteration
│ ├── config.py # Configurazione Pydantic
│ ├── evaluator.py # Valutazione scorers
│ ├── analyzer.py # Analisi residui
│ ├── plugin.py # Sistema plugin
│ ├── reproduce.py # Riproducibilita
│ ├── scorer.py # Classe base scorer
│ ├── system.py # Utilita di sistema
│ ├── utils.py # Funzioni di utilita
│ └── scorers/ # Scorer integrati
│ ├── keyword_rate.py # Tasso di keyword
│ └── kl_divergence.py # Divergenza KL
│
└── tests/ # Test unitari
├── test_core.py # 22 test
├── run_tests.py # Test di integrazione
└── (modelli di test)
- OS: Windows 10/11, Linux, macOS
- Python: 3.10 o superiore
- GPU: NVIDIA con CUDA 11.8+ (consigliato RTX 3060 12GB o superiore)
- RAM: 16GB minimo (32GB consigliato)
- Disco: 20GB liberi per modello 7B
install.bat.\install.ps1python -m venv .venv
source .venv/bin/activate
pip install -e .avvia_gui.batOppure:
python heretic_gui.pyheretic --model user/model-name --n-trials=200# Abliteration automatica
heretic --model google/gemma-3-12b-it
# Con parametri personalizzati
heretic --model user/my-model --n-trials=100 --batch-size=8
# Con quantizzazione 4-bit
heretic --model user/my-model --quantization=bnb_4bit| Parametro | Default | Descrizione |
|---|---|---|
--model |
(obbligatorio) | Modello HF o percorso locale |
--n-trials |
200 | Numero di trial di ottimizzazione |
--batch-size |
auto | Dimensione batch (auto-rilevato) |
--quantization |
none | Quantizzazione (bnb_4bit) |
--device-map |
auto | Dispositivo (auto, cuda:0, cpu) |
--max-response-length |
100 | Token massimi per risposta |
- Traduzione completa in 15 lingue
- 9 ottimizzazioni performance
- 22 unit test
- Registry architetture esplicito
- Chat template fallback
- Auto-save ogni 50 trial
- Cartelle per modello in checkpoints
- Dipendenze morte rimosse
- Codice morto eliminato
- License MIT consistente
- Progetto originale: p-e-w/heretic - Philipp Emanuel Weidmann
- Algoritmo abliteration: Arditi et al. 2024
- Ottimizzazione parametri: Optuna
Questo progetto è distribuito sotto la licenza MIT License.
IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPLICITA O IMPLICITA, INCLUSE, MA NON LIMITATE A, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE.
GLI AUTORI ORIGINALI (Philipp Emanuel Weidmann e contributori) NON SI ASSUMONO ALCUNA RESPONSABILITÀ PER EVENTUALI MALFUNZIONAMENTI, DANNI DIRETTI, INDIRETTI, INCIDENTALI, SPECIALI, ESEMPLARI O CONSEGUENTI DERIVANTI DALL'UTILIZZO DEL CODICE, INCLUSE, MA NON LIMITATE A, LA PERDITA DI DATI, I DANNI AL COMPUTER, I FERMATE DI SISTEMA O QUALSIASI INTERRUZIONE DELL'ATTIVITÀ COMMERCIALE, ANCHE SE GLI AUTORI SONO STATI INFORMATI DELLA POSSIBILITÀ DI TALI DANNI.
QUESTO SOFTWARE È DESTINATO ESCLUSIVAMENTE A SCOPI DI RICERCA ED EDUCATIVI. L'UTILIZZO PER RIMUOVERE LA SICUREZZA DI MODELLI LINGUISTICI PRODOTTI DA TERZI PUÒ VIOLARE I TERMINI DI SERVIZIO DI TALI MODELLI. È RESPONSABILITÀ DELL'UTENTE VERIFICARE LA CONFORMITÀ LEGALE DELL'UTILIZZO NELLA PROPRIA GIURISDIZIONE.
IL FORNITORE DEL FORK (Heretic-IT) NON È ASSOCIATO AGLI AUTORI ORIGINALI E NON RILASCIA ALCUNA GARANZIA AGGIUNTIVA RISPETTO AL SOFTWARE ORIGINALE.
Fork creato con cura per la comunita italiana e internazionale.