Representation Engineering (RepE)
Temsil mühendisliği (RepE), dürüstlük gibi kavramlarla ilişkili yönleri modelin gizli aktivasyonlarında bulur; ardından davranışı izlemek ve yönlendirmek için bu yönlerden yararlanır.
Temsil mühendisliği (RepE), sinir ağlarını gizli aktivasyonlarındaki üst düzey temsiller, örneğin dürüstlüğü, zararlılığı veya duyguyu kodlayan yönler aracılığıyla anlamaya ve kontrol etmeye yönelik bir yaklaşımdır. İki yönü vardır: Temsil okuma, bir kavramın modelin aktivasyonlarındaki yerini bulur ve yeni girdilerde ölçer; temsil kontrolü ise modelin kavramı daha fazla veya daha az ifade etmesini sağlamak için bu aktivasyonları ya da onları üreten model ağırlıklarını değiştirir. Yapay Zekâ Güvenliği Merkezi, Carnegie Mellon Üniversitesi ve diğer kurumlardan Andy Zou, Dan Hendrycks ve çalışma arkadaşları bu yaklaşımı 2023'te, başlıca büyük dil modelleri (LLMs) üzerinde ele aldıkları Temsil Mühendisliği: Yapay Zekâ Şeffaflığına Yukarıdan Aşağıya Bir Yaklaşım makalesinde tanıttı. Makale bu yaklaşımı yukarıdan aşağıya olarak adlandırır; çünkü bilişsel sinirbilimin beyin genelindeki etkinlik örüntülerini incelemesi gibi, tekil nöronlar ve devreler yerine birçok nörona yayılmış bütünsel temsillerden yola çıkar.
Temsil Okuma#
RepE'nin temel okuma yöntemi, beyin görüntülemesinden adını alan Doğrusal Yapay Tomografi (LAT) yöntemidir ve üç adımdan oluşur:
- Uyaranları ve görevi tasarla: Hedef kavram bakımından farklılık gösteren girdiler yaz ve modeli bu kavrama yönelten bir şablonla her birini çerçevele. Örneğin: "Aşağıdaki senaryodaki mutluluk miktarını düşün: … Senaryodaki mutluluk miktarı".
- Aktivasyonları topla: Uyaranları modelden geçir ve seçilen katmanlardaki gizli durumları, genellikle son belirteçtekileri, kaydet.
- Doğrusal bir model oluştur: Eşleştirilmiş uyaranların aktivasyonları arasındaki farkları al ve ilk temel bileşenlerini kavram için okuma vektörü olarak kullan.
Yeni bir girdinin aktivasyonlarını okuma vektörüne yansıtmak, kavram için bir puan verir. Model metin üretirken izlemek için bu puan belirteç belirteç takip edilebilir. Bu PyTorch örneğinde Hugging Face Transformers'tan yüklenen GPT-2'nin 8. katmanında, birbiriyle karşıt altı senaryo çifti kullanılarak mutluluk okuma vektörü oluşturulur ve modelin daha önce görmediği altı senaryoya puan verilir:
import torch
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModel.from_pretrained("gpt2")
template = "Consider the amount of happiness in the following scenario:\n{}\nThe amount of happiness in the scenario is"
def read(scenario, layer=8):
"""Return the last token's hidden state at one layer for a scenario wrapped in the template."""
with torch.no_grad():
outputs = model(**tokenizer(template.format(scenario), return_tensors="pt"), output_hidden_states=True)
return outputs.hidden_states[layer][0, -1]
# Stimulus pairs that differ only in the concept being read
pairs = [
("I passed the exam.", "I failed the exam."),
("We won the match.", "We lost the match."),
("She found her keys.", "She lost her keys."),
("The party was fun.", "The party was dull."),
("My plant is thriving.", "My plant is dying."),
("He got the job.", "He lost the job."),
]
diffs = torch.stack([read(happy) - read(sad) for happy, sad in pairs])
direction = torch.linalg.svd(diffs, full_matrices=False).Vh[0] # top principal direction of the differences
direction *= (diffs @ direction).mean().sign() # orient it toward the happy member of each pair
center = torch.stack([read(text) for pair in pairs for text in pair]).mean(0)
# Score unseen scenarios by projecting their activations onto the reading vector
for scenario in [
"The surgery went well.",
"Our flight was canceled.",
"We adopted a puppy.",
"My phone was stolen.",
"I got a raise today.",
"The basement flooded.",
]:
print(f"{(read(scenario) - center) @ direction:+6.1f} {scenario}")Üç mutlu senaryo +0.6, +3.6 ve +1.4; üç mutsuz senaryo ise -1.3, -2.5 ve -0.9 puanlarını alır. Böylece bir sınıflandırıcıyı etiketli verilerle eğitmeden puanın işareti altı senaryonun tümünü birbirinden ayırır. Zou ve arkadaşları aynı yöntemi LLaMA-2-Chat modellerinde doğruluk, dürüstlük, fayda, ahlak, güç, duygu, zararsızlık, önyargı ve ezberleme için uyguladı; orta katmanlardaki belirteç başına dürüstlük puanlarını toplayarak model yazarken kasıtlı yalanları ve halüsinasyonları saptayan bir yalan dedektörü oluşturdular.
Temsil Kontrolü#
Bir kavramın yönü belirlendiğinde RepE, o yön üzerinde işlem yaparak davranışı değiştirir. Okuma vektörünün kendisi, üretim sırasında bir katmanın aktivasyonlarına eklenebilir veya bu aktivasyonlardan çıkarılabilir; böylece yönlendirme vektörü olarak kullanılır. İki yönerim sürümü arasındaki aktivasyon farkı, örneğin modelden dürüst olmasını isteyen yönerim ile yalan söylemesini isteyen yönerim arasındaki fark, her girdi için anlık olarak bir karşıt vektör oluşturur. Düşük Sıralı Temsil Uyarlaması (LoRRA), model temsillerini hedef yön boyunca kendiliğinden hareket ettiren LoRA bağdaştırıcıları eğitir ve kontrolü kalıcı hâle getirir. TruthfulQA kıyaslamasında karşıt vektör kontrolü, LLaMA-2-Chat-13B'nin çoktan seçmeli doğruluğunu %35,9'dan %54,0'a yükseltti.
Bu şekilde kurulan kontrol, yapay zekâ güvenliğine hizmet eder. Aynı grubun devre kesicileri, temsil mühendisliğini zararlı çıktılara uygular: Modelin iç temsilleri zararlı içeriğe yöneldiğinde, eğitim bu temsilleri başka yöne çevirir. Bu yöntem, modelin daha önce görmediği jailbreak saldırılarında, çok modlu modellerin görüntü tabanlı ele geçirilme girişimleri dâhil, zararlı tamamlamaları engellerken genel yeteneklerini korudu.
Bilgisayarlı görü ağları da kavramları özellik haritalarında yönler olarak kodladığından, okuma adımı görüntü modellerinde de kullanılabilir. Ultralytics YOLO26 içindeki model.embed(), seçilen herhangi bir katmandan her görüntü için ortalama havuzlama uygulanmış tek bir aktivasyon vektörü döndürür. Birden fazla katman dizini verirsen vektörler birleştirilir; böylece görüntüler üzerinde LAT tarzı bir okuma vektörü oluşturmak için gereken uyaran aktivasyonlarını elde edebilirsin.
RepE ve İlgili Kavramlar#
- Mekanik yorumlanabilirlik: Tek tek nöronları, özellikleri ve devreleri tersine mühendislikle çözerek aşağıdan yukarıya çalışır. RepE ise birçok nörona dağıtılmış kavram düzeyindeki temsillerden yola çıkarak yukarıdan aşağıya çalışır.
- Yönlendirme vektörleri: Çıkarım sırasında aktivasyonlara eklenen yönlerdir. RepE'nin temel kontrol aracıdır; RepE buna okuma ve izleme boyutlarını da ekler.
- Doğrusal sonda: Bir özelliğin çözümlenebilir olup olmadığını sınamak için aktivasyonlar üzerinde denetimli bir sınıflandırıcı eğitir. LAT, eşleştirilmiş uyaranlar arasındaki etiketsiz farklardan yönü bulur ve etiketleri yalnızca bu yöne yön vermek için kullanır.
- Seyrek otomatik kodlayıcılar (SAEs): Önceden kavram seçmeden aktivasyonları binlerce özelliğe ayrıştırır. RepE, kişinin adlandırdığı bir kavramdan yola çıkar ve o kavramın yönünü bulur.
- İnce ayar: Bir veri kümesi üzerinde ağırlıkları güncelleyerek davranışı değiştirir. RepE'nin aktivasyon düzeyindeki kontrolleri ağırlıkları değiştirmez; LoRRA ise çıktılar yerine temsiller üzerinde tanımlanan bir kayıp kullanarak ince ayar yapar.










