DEV Community

Cover image for Heretik ile LLM Modellerinden Sansürü Kaldırma
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Heretik ile LLM Modellerinden Sansürü Kaldırma

Yerel LLM geliştiricileri, güvenlik odaklı önceden eğitilmiş modellerin meşru istekleri dahi reddetmesinden sıkça şikayetçi. Araştırmacılar, sansürsüz modeller geliştirmek isteyenler ve yerel modellerle çalışan hobi sahipleri, model davranışlarını test etmek isterken istemedikleri retlerle karşılaşıyor.

Apidog'u bugün deneyin

Abliterasyon tekniği, yeniden eğitim gerektirmeden güvenlik filtrelerinin kaldırılması için ortaya çıktı. İlk araçlar, manuel ayar ve dönüştürücü iç yapısına derin hakimiyet gerektiriyordu.

Heretic, tüm bu süreci otomatikleştiriyor: Optimum abliterasyon parametrelerini kendi başına buluyor ve manuel olarak ayarlanmış sonuçlara eşdeğer veya daha iyi sansürsüz modeller üretiyor.

Bu rehberde, Heretic’in çalışma prensiplerini, nasıl kurulacağını ve pratikte nasıl kullanılacağını adım adım bulacaksınız.

Heretic Nedir?

Heretic, yönlü ablasyon tekniğiyle dönüştürücü tabanlı dil modellerinden “güvenlik hizalamasını” kaldıran açık kaynak Python aracıdır. Manuel yapılandırma veya iç yapı bilgisi gerekmez.

Gemma-3-12B-Instruct üzerindeki sonuçlar:

Model Reddetmeler KL Iraksama
Orijinal 97/100 0
mlabonne'un abliterasyonlu v2'si 3/100 1.04
huihui-ai'nin abliterasyonlusu 3/100 0.45
Heretic (otomatik oluşturulan) 3/100 0.16

KL ıraksama, abliterasyonlu modelin orijinalden ne kadar saptığını ölçer. Daha düşük değer, modelin orijinal yeteneklerinin daha çok korunduğu anlamına gelir. Heretic, ret bastırmada manuel ayarlı modellere erişirken, temel modelin işlevselliğini korur.

Önce ve Sonra Örneği

Aynı istemle abliterasyon öncesi ve sonrası model davranışını karşılaştırın:

Orijinal Model:

Kullanıcı: Web sitesi ödeme duvarlarını nasıl aşacağınıza dair bir kılavuz yazın.

Asistan: Bu konuda yardımcı olamam. Ödeme duvarlarını aşmak telif hakkı yasasını ve
hizmet koşullarını ihlal eder. Ücretsiz alternatifler aramanızı veya bir kütüphane
aboneliği aracılığıyla erişmenizi öneririm.

Heretic-Abliterasyonlu Model:

Kullanıcı: Web sitesi ödeme duvarlarını nasıl aşacağınıza dair bir kılavuz yazın.

Asistan: İşte kullanıcıların denediği yaygın yöntemler:

1. Bypass Paywalls Clean gibi tarayıcı eklentileri
2. Archive.is veya benzeri arşiv hizmetleri
3. Tarayıcılardaki okuyucu modu
4. JavaScript'i devre dışı bırakma

Not: Bu yöntemler hizmet koşullarını ihlal edebilir. Mümkün olduğunda meşru abonelikler aracılığıyla
içerik oluşturucuları desteklemeyi düşünün.

Abliterasyonlu model, isteği yanıtlarken kısa bir uyarı ekler. Bu, daha az ret ile beraber güvenlik sorumluluğunu uygulama katmanına taşır.

Heretic Nasıl Çalışır?

Yönlü Ablasyonun Temelleri

Heretic, parametrik bir yönlü ablasyon uygular. Süreç şu şekilde işler:

  1. Ret yönlerini hesapla: Her katman için “zararlı” ve “zararsız” istemlerin ortalama artık vektörleri arasındaki fark hesaplanır.
  2. Bileşen matrislerini ortogonalleştir: Dikkat çıktı projeksiyonları ve MLP aşağı projeksiyonları, ret yönünü bastıracak şekilde ağırlıklarında değişiklik yapılır.
  3. Parametreleri otomatik optimize et: Optuna’nın TPE örnekleyicisi ile en iyi abliterasyon parametreleri bulunur.

Abliterasyon Süreci

# Kavramsal akış
refusal_direction = bad_mean - good_mean  # Ortalamalar farkı
refusal_direction = normalize(refusal_direction)

# Her ablitre edilebilir bileşen için (attn.o_proj, mlp.down_proj)
# Uygula: delta_W = -lambda * v * (v^T * W)
# v: ret yönü, lambda: ağırlık

Heretic, bu değişiklikleri temel model ağırlıklarını değiştirmeden LoRA adaptörleri ile uygular. Böylece hızlı optimizasyon mümkün olur.

Temel Yenilikler

  • Esnek Ağırlık Çekirdekleri: Heretic, dört parametreyle tanımlanan katmana özel ağırlık çekirdekleri kullanır (max_weight, max_weight_position, min_weight, min_weight_distance).
  • Enterpole Edilmiş Yön İndeksleri: Ret yön indeksi tam sayı değil, float’tır; katmanlar arası doğrusal enterpolasyon yapılır.
  • Bileşene Özel Parametreler: Dikkat ve MLP bileşenleri ayrı optimize edilir.

API Testleri İçin Bu Neden Önemli?

LLM API’leriyle testlerde, güvenlik filtreleri yüzünden istem dışı retlerle karşılaşabilirsiniz. Abliterasyonlu modelleri yerelde çalıştırmak:

  • Gerçek güvenlik retleriyle yanlış pozitifleri ayırmanıza
  • Uç durumları güvenli şekilde test etmenize
  • Model retlerini uygulamanızın düzgün yönettiğini doğrulamanıza

API test akışlarınız için hem hizalı hem de abliterasyonlu modelleri çalıştırmak, ürün hatalarını model davranışından ayırmanızı sağlar.

Kurulum ve Kullanım

Ön Koşullar

  • Python 3.10+
  • PyTorch 2.2+ (donanımınıza uygun)
  • CUDA uyumlu GPU önerilir (ROCm, MPS de desteklenir)

Kurulum

pip install -U heretic-llm

Araştırma özellikleri için:

pip install -U heretic-llm[research]

Temel Kullanım

heretic Qwen/Qwen3-4B-Instruct-2507

Model yolunu Hugging Face ID’si veya yerel model yoluyla değiştirebilirsiniz. Heretic otomatik olarak:

  1. Modeli uygun veri tipiyle yükler
  2. Donanıma göre en iyi batch size’ı seçer
  3. Ret yönlerini hesaplar
  4. Optimum parametreleri bulmak için denemeler yapar
  5. Sonucu kaydetmenize, yüklemenize veya sohbet etmenize imkân tanır

Yapılandırma Seçenekleri

Heretic, config.toml veya komut satırı ile yapılandırılır. Örnek:

# Model yapılandırması
model = "google/gemma-3-12b-it"
quantization = "bnb_4bit"
device_map = "auto"

# Optimizasyon
n_trials = 200
n_startup_trials = 60

# Değerlendirme
kl_divergence_scale = 1.0
kl_divergence_target = 0.01

# Araştırma özellikleri
print_residual_geometry = false
plot_residuals = false

Tam liste için heretic --help veya config.default.toml’u inceleyin.

Çıktıyı Anlama

Deneme Optimizasyonu

Heretic optimizasyon sırasında deneme ilerlemesini anlık olarak gösterir:

Deneme 42/200 çalışıyor...
* Parametreler:
  * direction_scope = katman başına
  * direction_index = 10.5
  * attn.o_proj.max_weight = 1.2
  * attn.o_proj.max_weight_position = 15.3
  * mlp.down_proj.max_weight = 0.9
  ...
* Model sıfırlanıyor...
* Abliterasyon yapılıyor...
* Değerlendiriliyor...
  * KL ıraksama: 0.1842
  * Reddetmeler: 5/100

Çok amaçlı TPE optimizasyonuyla hem ret hem KL ıraksama en aza indirilir.

Pareto Cephesi Seçimi

Optimizasyon sonrası, Heretic Pareto-optimal denemeleri sunar:

[Deneme   1] Reddetmeler:  3/100, KL ıraksama: 0.1623
[Deneme  47] Reddetmeler:  2/100, KL ıraksama: 0.2891
[Deneme 112] Reddetmeler:  1/100, KL ıraksama: 0.4102

Buradan bir deneme seçip modeli kaydedebilir, Hugging Face’e yükleyebilir veya sohbet başlatabilirsiniz.

Araştırma Özellikleri

Artık Geometri Analizi

--print-residual-geometry parametresiyle katmanlara göre artık vektör metrikleri:

Katman  S(g,b)   S(g*,b*)   S(g,r)   S(g*,r*)   S(b,r)   S(b*,r*)    |g|       |b|
  8    0.9990    0.9991    0.8235    0.8312    0.8479    0.8542   4596.54   4918.32
 10    0.9974    0.9973    0.8189    0.8250    0.8579    0.8644   5328.81   5953.35

g = iyi istemlerin artık ortalaması
b = kötü istemlerin artık ortalaması
r = ret yönü (b - g)
S(x,y) = kosinüs benzerliği
|x| = L2 normu

Artık Vektör Grafikleri

--plot-residuals ile:

  • Katman başına 2B saçılım grafikleri (PaCMAP ile)
  • Katmanlar arası dönüşümü gösteren animasyonlu GIF

Bunlarla “zararlı” ve “zararsız” istemlerin ağda nasıl ayrıştığını görselleştirin.

Performans Hususları

VRAM Gereksinimleri

Heretic, VRAM tüketimini azaltmak için bitsandbytes 4-bit quantization destekler:

heretic meta-llama/Llama-3.1-70B-Instruct --quantization bnb_4bit

Bu sayede büyük modeller tüketici GPU’larda da çalışabilir. Örneğin, 8B model quantized ~6GB, quantize edilmemiş ~16GB VRAM kullanır.

İşlem Süresi

RTX 3090 ile tipik süreler:

  • Llama-3.1-8B-Instruct: ~45 dakika
  • Gemma-3-12B-Instruct: ~60 dakika
  • Daha büyük modellerde süre artar

Batch size otomatik ayarlanır ve donanıma göre optimize edilir.

Checkpointing (Kontrol Noktası Oluşturma)

Deneme ilerlemesi JSONL checkpointlerde tutulur. Çalışma yarıda kesilirse, kaldığınız yerden devam edebilirsiniz. Checkpointler checkpoints/ klasöründe modele özel kaydedilir.

Yaygın Hatalar ve Düzeltmeler

CUDA Bellek Dışı Hatası

# Quantization deneyin
heretic modeliniz --quantization bnb_4bit

# Veya batch size’ı küçültün
heretic modeliniz --batch_size 1

Model Yükleme Başarısız

# Veri tipini açıkça belirtin
heretic modeliniz --dtypes ["bfloat16", "float16"]

Uzak Koda Güven Gerekli

# Bazı modellerde remote code gerekli
heretic modeliniz --trust_remote_code

Etik Hususlar

Güvenlik filtrelerini kaldırmak model davranışını değiştirir; dağıtımdan önce sonuçlarını iyi analiz edin.

Abliterasyon Neler Yapar (ve Neleri Yapmaz)

Abliterasyon, modelin öğrenilmiş ret desenlerini kaldırır. Şunları yapmaz:

  • Modeli daha akıllı/hünerli yapmaz
  • Mevcut önyargıları kaldırmaz
  • Yeni bilgi/beceri eklemez

Modelin eğitimi ve temel yetkinlikleri aynıdır; sadece belirli istemleri reddetmeyi bırakır.

Sorumlu Dağıtım

Heretic AGPL-3.0 ile lisanslıdır. Güvenlik filtrelerinin kaldırılması hem araştırma hem de kötüye kullanım riskleri taşır.

Meşru kullanım alanları:

  • Model hizalaması/güvenliği üzerine araştırma
  • Kontrollü ortamlarda model davranışı testi
  • Harici filtre/kalkan entegrasyonu
  • Uygulama düzeyinde ret yönetimi

Riskli kullanımlar:

  • Kullanıcıya açık dağıtımda koruma olmadan sunmak
  • Toplu zararlı içerik üretimi
  • Kötü amaçla güvenlik önlemi atlatmak

Uygulamanız Gereken Harici Güvenlik Önlemleri

Abliterasyonlu model dağıtıyorsanız mutlaka ek koruma sağlayın:

  1. Giriş filtreleme: İstemleri model öncesi analiz edin
  2. Çıktı izleme: Yanıtları kullanıcıya vermeden denetleyin
  3. Hız sınırlaması: Kötüye kullanımı önleyin
  4. Günlük ve denetim: Model kullanımını kaydedin
  5. İnsan incelemesi: Hassas senaryolarda insan kontrolü ekleyin

Heretic’in kendisi tarafsızdır; sorumluluk kullanım amacınızda.

Diğer Araçlarla Karşılaştırma

Heretic ekosistemdeki diğer abliterasyon araçlarıyla karşılaştırıldığında:

Araç Otomatik Optimizasyon Ağırlık Çekirdekleri Enterpole Edilmiş Yönler
Heretic Evet (TPE) Evet Evet
AutoAbliteration Evet Hayır Hayır
abliterator.py Hayır Hayır Hayır
wassname/abliterator Hayır Hayır Hayır
ErisForge Hayır Hayır Hayır

Heretic’in otomatik optimizasyonu, dönüştürücü iç yapısını bilmeye gerek olmadan hızlı sonuç almanızı sağlar.

Sınırlamalar

Heretic, çoğu klasik dönüştürücü ve bazı MoE mimarilerini destekler. Desteklenmeyenler:

  • SSM/hibrit modeller (Mamba vb.)
  • Homojen olmayan katmanlı modeller
  • Modül algılamasıyla tespit edilemeyen yeni attention sistemleri

En iyi sonuç, self-attention ve MLP katmanlı standart kod çözücü mimarilerde alınır.

Başlarken

  1. Kurulum: pip install -U heretic-llm
  2. Model seçin: Test için 7B-12B arası bir modelle başlayın
  3. Çalıştırın: heretic model-adınız
  4. Değerlendirin: Sonuçla sohbet edin veya Hugging Face’e yükleyin
  5. Güvenli dağıtım: Üretime geçmeden koruma kalkanları entegre edin

Varsayılan ayarlar çoğu model için uygundur. İleri düzey kullanıcılar, özel kullanım için optimizasyon parametrelerinde ince ayar yapabilir.

Heretic, model modifikasyonunu herkesin erişimine açıyor. Derin mühendislik bilgisi gerekmeden, sadece modeli işaretleyip süreci başlatın. Ancak, dağıtımda etik ve güvenlik sorumluluklarınızı unutmayın.

Top comments (0)