Sparse Autoencoders (SAE)
Seyrek otokodlayıcı (SAE), bir ağın aktivasyonlarını çok sayıda özelliğe ayırır; bu özelliklerden aynı anda yalnızca birkaçı etkin olur. Bu, LLM'leri yorumlamak için temel bir araçtır.
Seyrek otokodlayıcı (SAE), herhangi bir girdide yalnızca birkaç birimin etkin olduğu bir gizli katman üzerinden girdisini yeniden oluşturmak üzere eğitilen bir otokodlayıcıdır. Güncel yapay zekâ araştırmalarında SAE'ler, büyük dil modelinin (LLM) veya görsel modelin iç etkinleşmeleri üzerinde eğitilir; gizli birim sayısı girdi boyutlarından çok daha fazladır. Böylece özellik veya gizil adı verilen her gizli birim, insanların tanıyabileceği tek bir kavram için etkinleşme eğilimi gösterir. SAE'ler mekanistik yorumlanabilirliğin temel araçlarından biridir: Anthropic'in 2024 tarihli Tek Anlamlılığı Ölçeklendirme çalışmasında Claude 3 Sonnet'in etkinleşmeleri üzerinde 34 milyona kadar özellik içeren SAE'ler eğitildi ve Golden Gate Köprüsü, kod hataları ve aldatma gibi kavramlara karşılık gelen özellikler bulundu.
Seyrek Özellikler Yorumlanabilirliğe Neden Katkı Sağlar?#
Büyük modellerdeki tekil nöronlar çoğunlukla polisemantiktir ve birbiriyle ilgisiz birkaç kavrama yanıt verir. Anthropic'in Süperpozisyonun Oyuncak Modelleri çalışmasında incelenen süperpozisyon hipotezi bunun nedenini açıklar: Bir d boyutlu katman, aynı anda yalnızca birkaç kavram etkin olduğu sürece, neredeyse birbirine dik yönleri kullanarak d kavramdan çok daha fazlasını temsil edebilir. SAE bu fazla sayıdaki yönü bulmaya çalışır. Etkinleşme için oluşturduğu seyrek kod, hangi birkaç yönün bulunduğunu ve bunların ne ölçüde etkin olduğunu listeler; bu da binlerce iç içe geçmiş nöron değerini okumaktan çok daha kolaydır.
Seyrek Otokodlayıcı Nasıl Çalışır?#
Kodlayıcı, etkinleşme vektörünü çok daha geniş bir gizil vektöre dönüştürür ve ardından ReLU uygular. Kod çözücü ise etkinleşmeyi sütunlarının ağırlıklı toplamı olarak yeniden oluşturur; dolayısıyla her kod çözücü sütunu bir özelliğin yönünü temsil eder. Eğitimde yeniden oluşturma hatası ile bir seyrekli kısıtı en aza indirilir. Klasik yöntem, gizil değerler üzerinde bir L1 cezası, yani bir tür düzenlileştirme kullanır; OpenAI'nin TopK SAE'leri ise her girdi için yalnızca en büyük k gizil değeri tutar ve GPT-4 etkinleşmeleri üzerinde 16 milyon gizil değerli bir SAE'ye ölçeklendirilmiştir. Google DeepMind'ın JumpReLU SAE'leri, öğrenilen bir eşiğin altındaki tüm gizil değerleri sıfırlar. Eğitim tamamlandıktan sonra SAE'nin gizil değerleri başlıca iki şekilde kullanılır:
Aşağıdaki oyuncak örnekte 64 bilinen özellik yönü 32 boyuta sığdırılıyor. Böylece hiçbir tekil boyut tek bir özellikle eşleşmiyor ve bu özellikleri geri bulmak için bir TopK SAE eğitiliyor:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
# Toy activations: 64 feature directions packed into 32 dimensions (superposition), ~3 active per sample
features = F.normalize(torch.randn(64, 32), dim=1)
acts = (torch.rand(8192, 64) * (torch.rand(8192, 64) < 0.05)) @ features
encoder, decoder = torch.nn.Linear(32, 256), torch.nn.Linear(256, 32) # 256 latents: 8x overcomplete
optimizer = torch.optim.Adam([*encoder.parameters(), *decoder.parameters()], lr=1e-3)
for step in range(3000):
# TopK sparsity: keep each sample's 4 largest latents and zero the rest
values, idx = encoder(acts).topk(4, dim=-1)
latents = torch.zeros(len(acts), 256).scatter(-1, idx, F.relu(values))
loss = (decoder(latents) - acts).pow(2).sum(-1).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
directions = F.normalize(decoder.weight.T, dim=1) # one learned direction per latent
print(f"Unexplained variance: {loss.item() / (acts - acts.mean(0)).pow(2).sum(-1).mean().item():.3f}")
print(f"Features matching a single neuron: {(features.abs().max(dim=1).values > 0.9).sum().item()} of 64")
print(f"Features matching an SAE latent: {((directions @ features.T).max(dim=0).values > 0.9).sum().item()} of 64")Her örnekte en fazla 4 gizil değer etkin olduğunda SAE, varyansın %7,1'ini açıklayamaz. 64 yerleştirilmiş özelliğin hiçbiri tek bir girdi boyutuyla 0,9'un üzerinde kosinüs benzerliği göstermezken 64'ünün tamamı bir SAE gizil değerinin kod çözücü yönüyle eşleşir.
Uygulamalar#
- Özellik keşfi: Araştırmacılar, her gizil değeri en çok etkinleştiren girdileri toplayarak etiketler; etiketi çoğu zaman bir LLM yazar. Ardından özellikleri, modelin neyi temsil ettiğini denetlemek için kullanırlar.
- Yönlendirme: Bir özelliği yüksek bir değere sabitlemek, yönlendirme vektörü eklemeye benzer biçimde davranışı değiştirir. Anthropic, Mayıs 2024'te Golden Gate Claude'u kısa süreliğine yayımladı. Bu sürümde köprü özelliği güçlendirilmişti ve köprü neredeyse her yanıtta gündeme geliyordu.
- Devre izleme: Anthropic'in 2025 tarihli atıf grafikleri, Claude 3.5 Haiku'nun içindeki çok adımlı hesaplamaları izlemek için katmanlar arası kod dönüştürücüler kullanır. SAE'nin bu çeşidi, bir katmanın etkinleşmelerini okur ve sonraki MLP katmanlarının çıktılarını yeniden oluşturur.
- Açık SAE paketleri: Google DeepMind'ın Gemma Scope çalışması, Gemma 2 2B ve 9B'nin her katmanı için JumpReLU SAE'lerini yayımladı. Gemma Scope 2 ise 270M'den 27B parametreye kadar Gemma 3 modelleri için SAE'ler ve kod dönüştürücüler ekliyor. SAELens kitaplığı bu tür SAE'leri eğitiyor ve yüklüyor.
- Görsel modeller: CLIP ve Vision Transformer etkinleşmeleri üzerinde eğitilen SAE'ler de yorumlanabilir görsel kavramları buluyor. SAE için etkinleşme vektörlerinden oluşan bir veri kümesi gerekir. Ultralytics YOLO26 içindeki
model.embed(), varsayılan olarak sondan bir önceki katmandan olmak üzere, herhangi bir katman dizininde her görüntü için ortalama havuzlanmış bir etkinleşme vektörü döndürür.
Sınırlamalar#
SAE'ler aktivasyonları kusurlu biçimde yeniden oluşturur ve bir katmanın aktivasyonlarını bu yeniden oluşturmayla değiştirmek modelin kaybını ölçülebilir biçimde artırır. Buldukları özellikler sözlük boyutuna ve eğitim çalıştırmasına bağlıdır; çünkü daha geniş SAE'ler tek bir özelliği birkaç daha ince özelliğe böler ve bazı gizil birimler hiçbir zaman etkinleşmez. Mart 2025'te Google DeepMind'ın yorumlanabilirlik ekibi, SAE özellikleri üzerine kurulu sondaların dağılım dışı istemlerde basit doğrusal sondalardan daha düşük performans gösterdiğini zararlı niyeti tespit etme konusunda bildirdi ve temel SAE araştırmalarına verilen önceliği azaltacağını, SAE'leri ise çeşitli araçlardan biri olarak kullanmayı sürdüreceğini söyledi.
SAE ve İlgili Kavramlar#
- Standart otokodlayıcı: Veriyi sıkıştırmak veya boyut indirgeme amacıyla girdiden daha dar bir darboğazdan geçirir. SAE ise gizli katmanı genişletir ve kavramları birbirinden ayırmak için seyrekliği zorunlu kılar.
- Doğrusal sondalama: Önceden seçilmiş bir kavramı tespit etmek için denetimli bir sınıflandırıcı eğitir. SAE ise denetimsizdir ve etiketler olmadan özellikleri keşfeder.
- Gösterim mühendisliği (RepE): Eşleştirilmiş istemlerdeki etkinleşmeleri karşılaştırarak kavram yönlerini bulur; SAE özellikleri ise yalnızca yeniden oluşturma yoluyla elde edilir.
- Seyrek kodlama: SAE'lerin her girdi için ayrı ayrı optimizasyon yapmak yerine tek bir kodlayıcı geçişiyle yaklaştırdığı eski bir sözlük öğrenme yöntemidir. Olshausen ve Field (1996), doğal görüntülerden öğrenilen seyrek bir kodun, birincil görsel korteksteki basit hücrelerin alıcı alanlarına benzeyen yerel, yönelimli ve kenar benzeri filtreler ürettiğini gösterdi.










