Abliterated Modeller Nasıl Üretilir? Basit Açıklama
Abliterated modeller, güvenlik reddetme mekanizmaları kaldırılmış büyük dil modelleridir; bu sayede model, içerik filtresine takılmadan tartışmalı, yetişkin veya niş soruları yanıtlayabilir. Bu yaklaşım, geliştiricilere modelin üslubunu ve bilgi kesme noktasını tam kontrol imkânı sunar; bu da standart güvenlik önlemlerinin yararlı çıktıları engelleyebileceği kodlama, rol yapma ve yaratıcı yazım alanlarında özellikle değerlidir.
Güncellendi

Temel noktalar
- Abliteration, modelin içindeki bir reddetme yönünü ölçer ve ağırlıklardan çıkarır.
- Bu bir yeniden eğitim çalışması değil, bir düzenlemedir; bu nedenle ucuzdur ancak cevap kalitesini biraz düşürebilir.
- İnce ayar (fine-tuning), örnekler üzerinde eğitim vererek davranışı değiştirir; abliteration ise bir yönü çıkararak değiştirir.
- Herhangi bir modeli üzerine inşa etmeden önce kısa bir test kümesiyle değerlendirebilirsiniz.
Kısa özet
Güvenlik eğitiminden geçmiş dil modelleri bazı istekleri reddetme eğilimindedir. Araştırmacılar, bu reddetme davranışının modelin iç aktivasyonlarındaki tek bir yön tarafından yönetildiğini buldu. Bu yönü çıkarırsanız, model çoğu zaman reddetmeyi bırakır. "Abliteration" adı, "ablation" (bir bileşeni kaldırma) ve "obliterate" (yok etme) kelimelerinin birleşimidir.
Peki abliterate edilmiş modeller pratikte nasıl üretilir? Dört adım vardır: İki istem kümesi toplanır, her biri için model aktivasyonları kaydedilir, bir yön elde etmek için fark hesaplanır ve model artık bu yönde yazamayacak şekilde ağırlıklar düzenlenir. Sonraki bölümler ağır matematik olmadan her adımı açıklar.
Adım 1: İki istem kümesi
Modelin genellikle reddettiği bir istem kümesine ve normalde cevap verdiği bir istem kümesine ihtiyacınız vardır. Her küme birkaç yüz kısa talimat içermelidir. Kümeler uzunluk ve üslup açısından benzer olmalıdır, böylece aralarındaki tek sistematik fark modelin reddetmek isteyip istemediği olur. Eğer zararlı küme tamamen uzun ve zararsız küme tamamen kısa ise, ortaya çıkan yön kısmen uzunluğu kodlayacaktır ve bu gürültü ekler.
İstemler yalnızca ölçüm için girdidir. Üzerlerinde hiçbir şey eğitilmez ve modelin bu istemlere verdiği cevaplar kullanılmaz.
Adım 2: reddetme yönünü bul
Bir transformer metni vektörler olarak işler ve bu vektörler birçok katmandan geçer. Seçilen bir katmanda, her iki kümedeki her istem için son istem token'ındaki vektörü kaydedersiniz. Ardından her küme için vektörlerin ortalamasını alırsınız ve bir ortalamanın diğerinden çıkarılmasını sağlarsınız. Sonuç, "normal cevap ver"ten "reddet"e giden tek bir vektördür. Uzunluğunu bir yapın ve reddetme yönüne sahip olursunuz.
İnsanlar genellikle birkaç katman dener ve yönün kaldırılmasının ayrılmış bir istem kümesinde en iyi çalıştığı katmanı seçer. Katman seçimi sürecin en çok müdahale gerektiren kısmıdır.
import numpy as np
# acts_bad, acts_good: arrays of shape (n_prompts, hidden_size)
direction = acts_bad.mean(axis=0) - acts_good.mean(axis=0)
direction = direction / np.linalg.norm(direction)
# remove the direction from a weight matrix W that writes into the residual stream
W_edited = W - np.outer(direction, direction) @ W
Gerçek uygulamalar bunu her katmandaki birkaç ağırlık matrisine uygular, ancak fikir bu üç satırda anlatılan şeydir.
Adım 3: Ağırlıkları düzenle
Yöne sahip olduktan sonra, onu kullanmanın iki yolu vardır. Model çalışırken aktivasyonlardan çıkarabilirsiniz, bu özel çıkarım kodu gerektirir. Veya kalıntı akışına (residual stream) yazan her matrisi yöne göre ortogonalize ederek ağırlıklara işleyebilirsiniz. İkinci yaklaşım yaygındır çünkü düzenlenmiş model herhangi bir çalışma zamanının yükleyebileceği sıradan bir checkpoint'tir. Bu nedenle abliterate edilmiş modeller düzenli indirmeler olarak görünür.
Düzenleme deterministiktir ve hızlıdır. Modeli alabilen bir GPU üzerinde dakikalar sürer, bir eğitim çalışması için gereken saatler veya günler yerine.
Abliteration vs ince ayar (fine-tuning)
İkisi de daha az reddeden bir model üretebilir, ancak farklı çalışırlar.
| Abliteration | İnce ayar | |
|---|---|---|
| Ne değişir | Ağırlıklar bir yönden uzaklaştırılır | Ağırlıklar örnekler üzerinde gradient descent ile güncellenir |
| Gerekli veri | Ölçüm için iki küçük istem kümesi | Özenle hazırlanmış bir eğitim kümesi |
| Bilişim gücü | Dakikadan bir saate kadar | Saatler veya günler |
| Yan etkiler | Mantığı zayıflatabilir veya tonu değiştirebilir | Veriye bağlıdır; yeni bir üslup veya bilgi öğretebilir |
| Kontrol | Kaba: Bir yön açık veya kapalı | İnce: Veriyle davranışı şekillendirirsiniz |
Bazı yaratıcılar ikisini birleştirir: önce abliterate eder, ardından kaybedilen kaliteyi geri kazanmak için kısa bir ince ayar çalıştırır. Daha yeni araçlar ayrıca en iyi katman ve gücü otomatik olarak arar, böylece düzenleme reddetmeleri kaldırırken modeli en az şekilde değiştirir. Belirli bir modelin hangi yaklaşımla üretildiği genellikle model kartında belirtilir.
Kalitede neye mal olur
Bir yönü kaldırmak kaba bir düzenlemedir. Reddetme yönü diğer özelliklerden mükemmel şekilde ayrılmadığı için, onu çıkarmak diğer davranışları kaydırabilir. Bildirilen yan etkiler arasında mantık testlerinde biraz daha zayıf performans, tuhaf biçimlendirme ve bazı durumlarda modelin zararlı isteklere yararlı ayrıntılar vermek yerine dikkatsizce cevap vermesi yer alır. Etki temel modele ve düzenlemenin ne kadar agresif uygulandığına göre değişir.
Hasarı azaltan iki şey vardır. Biri, reddetmeleri test kümenizde kaldıran ancak diğer yerlerde en az değişikliği yaratan katman ve gücü seçmektir. Diğeri yukarıda belirtilen onarım ince ayarıdır. İkisi de düzenlemeyi ücretsiz yapmaz, bu nedenle bir etikete güvenmek yerine modeli kendi görevlerinizde test etmelisiniz.
Yaygın yanlış inanışlar
"Yeni bilgi ekler." Hayır. Düzenleme yalnızca bir davranışı kaldırır. Temel model bir konuyu bilmiyorsa, abliterate edilmiş sürümü de bilmez. Sadece orijinalinin reddettiği yerde bir cevap denemeye başlayabilir.
"Tüm güvenliği kaldırır." Ölçülen reddetme yönünü kaldırır. Diğer öğrenilmiş alışkanlıklar, gibi temkinli dil veya ahlaki yorumlar, diğer özellikler arasında yayıldığı için hayatta kalabilir. Bazı modeller düzenlemeden sonra hala açıklama ekler.
"Daha büyük modelleri düzenlemek daha kolaydır." Sonuçlar karışıktır. Daha büyük modeller genellikle düzenleme altında daha iyi dayanır çünkü daha fazla yedek kapasiteye sahiptirler, ancak iki istem kümenizin kalitesi ham boyuttan daha önemlidir.
"Bir model kartı size her şeyi söyler." Kartlar niyeti açıklar. Nadiren kendi türdeki istemlerinizdeki reddetme oranlarını içerirler. Kendi 40 istemlik testiniz on dakika sürer ve karttan daha fazla şey söyler.
"Sonuç her zaman aynı temel model için aynıdır." Hayır. Farklı istem kümeleri, katmanlar ve güçler farklı düzenlemeler üretir, bu nedenle aynı temel üzerine inşa edilmiş iki model oldukça farklı davranabilir. Eşleştiklerini varsaymak yerine doğrudan karşılaştırın ve test sonuçlarını kaydederken sürümü not edin.
Her sorumlu hizmet için tek bir sınır geçerlidir, ister barındırılan ister yerel olsun: reşit olmayanların cinselleştirilmesi konusundaki içerik elenir ve bir reddetme düzenlemesi bu kuralı bu sitede değiştirmez.
Bir model üzerine inşa etmeden önce modeli nasıl değerlendirirsiniz
Gerçek kullanım senaryolarınıza uygun 30 ila 50 istem içeren kısa bir test dosyası yazın: üretmeyi planladığınız kurgu, analiz veya kod türünde. Genel kalitenin düşüp düşmediğini görmek için özetleme veya gerçek bir soruyu yanıtlama gibi birkaç sıradan görev de ekleyin. Dosyayı her aday üzerinde çalıştırın ve çıktıları okuyun. Reddetmeleri sayın, ancak tutarlılık, talimatları takip etme ve tekrarlar için okuyun.
Bunu yapmak için ağırlıkları indirmek ve barındırmak istemiyorsanız, dosyayı barındırılan bir uç noktada çalıştırabilirsiniz. Bu sitenin API'si OpenAI uyumludur ve yasal yetişkin kullanım için içerik reddetmeleri olmadan cevap vermeye ayarlanmış tek bir açık ağırlıklı modeli uncensored ID'si altında sunar:
curl https://api.abliterated.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Summarize the plot of Hamlet in three sentences."}]}'
Bir tane seçme hakkında daha fazla bilgi için abliterate edilmiş modellerin genel bakışını okuyun, veya karakter çalışması hedefinizse rol yapma için en iyi abliterate LLM sayfasını okuyun. Detaylar API dokümantasyonunda yer alır. Yeni hesaplar, bu boyuttaki bir test dosyasını çalıştırmak için yeterli olan, kart olmadan $0,50 deneme kredisi talep edebilir.
Daha fazla kılavuz
Sorular ve cevaplar
Abliteration için yeni eğitim verisi gerekli mi?
Hayır. Aktivasyonları ölçmek için iki küçük istem seti gerekir, ancak model bu setler üzerinde eğitilmez. Yapılan değişiklik, ağırlıkların doğrudan düzenlenmesidir.
Abliterate edilmiş bir model, jailbreak ile aynı şey midir?
Hayır. Jailbreak, bir modelin reddetme eğilimini aşmaya çalışan bir istemdir. Abliteration ise modeli doğrudan değiştirir; bu nedenle özel bir isteme gerek kalmaz.
Abliteration bir modeli daha kötü hale getirir mi?
Çoğu zaman biraz. Çözümleme puanları ve üslup değişebilir. Belirli bir model için durumun ne olduğunu anlamak için kendi istemlerinizle test yapmak en güvenilir yoldur.
Bunu kendi başıma çalıştırmadan kullanabilir miyim?
Evet. Barındırılan OpenAI-uyumlu API, GPU olmadan bir modele çağrı yapmanızı sağlar. Temel URL https://api.abliterated.cc/v1'dir ve model kimliği uncensored'dır.
Anahtarınız tek bir formun uzağında
Bir hesap oluşturun, anahtarı kopyalayın ve temel URL'yi değiştirin. Kurulum bu kadar basit.