1 puan yazan GN⁺ 2024-11-22 | 1 yorum | WhatsApp'ta paylaş
  • Llama 3.2-3B’nin iç temsillerini Sparse Autoencoder (SAE) ile ayrıştırarak yorumlanabilir özellikler çıkarmayı hedefleyen bir proje; aktivasyon yakalamadan eğitime, yorumlamaya ve doğrulamaya kadar bir kez çalıştırılmış tüm pipeline’ı ve çıktıları yayımlıyor
  • Pipeline, Llama 3.2-3B’nin 23. katman residual activation değerlerini OpenWebText’in cümle düzeyi verilerinden yakalıyor ve 65.536 latent ile TopK=64 ayarına sahip SAE’yi PyTorch ile eğitiyor
  • Yayımlanan kaynaklar arasında cümle düzeyi OpenWebText veri kümesi, 25 milyon cümleye ait 3,2 TB aktivasyon, Weights & Biases eğitim logları ve 10 epoch eğitilmiş SAE modeli yer alıyor
  • Eğitim 8x Nvidia RTX4090 üzerinde yaklaşık 7 gün sürdü; nihai normalize edilmiş loss yaklaşık 0,144 oldu ve auxiliary loss’un başlangıçta yaklaşık %40 olan dead latent’ları hızla yeniden etkinleştirdiği görüldü
  • Yorumlama analizi, her latent’i en güçlü etkinleştiren ilk 50 cümlenin Claude 3.5 ile analiz edilmesine dayanıyor; feature steering mümkün olsa da ilk beta sürümde sonuçlar tutarlı değil

Proje hedefi ve kapsamı

  • Bu proje, Llama 3.2-3B’ye Sparse Autoencoder (SAE) uygulayarak LLM iç temsillerini daha yorumlanabilir özelliklere ayrıştırma girişimidir
  • Modern LLM’ler birden çok özelliği aynı nöronda üst üste depolayan superposition kullanır; SAE ise aktivasyonları çok büyük ve seyrek bir latent uzaya projekte ederek üst üste binmiş temsilleri ayırmaya çalışır
  • Amaç, aşağıdaki süreçleri içeren eksiksiz bir pipeline sağlamaktır
    • LLM aktivasyon değerlerini yakalama
    • SAE eğitim verisi oluşturma ve ön işleme
    • SAE eğitimi
    • Eğitilmiş özelliklerin anlam analizi
    • Deneysel doğrulama ve feature steering
  • Mevcut 0.2 sürümü, tüm pipeline’ın bir kez çalıştırılmasıyla Llama 3.2-3B için yorumlanabilir bir SAE oluşturmuş durumda; nihai sürüm değildir
  • Proje, Anthropic, OpenAI ve Google DeepMind’ın SAE tabanlı mekanistik yorumlanabilirlik alanındaki yakın dönem çalışmalarını yeniden üretme niteliği taşıyor

Temel özellikler

  • Pipeline, aktivasyon yakalamadan doğrulamaya kadar uçtan uca yapılandırılmıştır ve saf PyTorch ile minimum bağımlılıkla yazılmıştır
  • Başlıca özellikler şunlardır
    • Cümle düzeyi OpenWebText türevi veri kümesiyle LLM residual activation yakalama
    • Verimli eğitim için prebatching ve istatistik hesaplama
    • Tek düğümde çoklu GPU ile dağıtık SAE eğitimi
    • Dead latent’ları önlemek ve geri kazanmak için auxiliary loss
    • Eğitim kararlılığı için gradient projection
    • Weights & Biases ve konsol logları tabanlı eğitim, doğrulama ve dead latent izleme
    • Latent’leri güçlü biçimde etkinleştiren girdilerin yakalanması ve Frontier LLM tabanlı anlam analizi
    • Harici Fairscale bağımlılığı olmadan Llama 3.1/3.2 sohbet ve metin tamamlama uygulaması
    • Metin/sohbet tamamlama ve isteğe bağlı Gradio UI üzerinden SAE etkisi doğrulama ve feature steering
  • Tüm bileşenlerin ölçeklenebilirlik, verimlilik ve bakım kolaylığı gözetilerek tasarlandığı belirtiliyor

Yayımlanan çıktılar

  • OpenWebText Sentence Dataset
    • OpenWebText’in cümle düzeyinde işlenmiş türev veri kümesi
    • Orijinal OpenWebText’teki tüm metinleri ve sıralamayı korur
    • Cümleler hızlı erişimi desteklemek için parquet formatında ayrı ayrı saklanır
    • Cümle ayırma, NLTK 3.9.1’in önceden eğitilmiş “Punkt” tokenizer’ı ile yapılmıştır
  • Captured Llama 3.2-3B Activations
    • Llama 3.2-3B layer 23 residual activation için 25 milyon cümlelik veri
    • Orijinal 4 TB veri 3,2 TB’a sıkıştırılmıştır
    • İndirme yönetimi için 100 arşive bölünmüştür
  • SAE Training Log
    • Weights & Biases tabanlı eğitim, doğrulama ve debug metrik logları
    • 10 epoch, 10.000 loglanmış step
    • train/val main loss, auxiliary loss ve dead latent istatistiklerini içerir
  • Trained 65,536 latents SAE Model
    • 10 epoch eğitimi tamamlanmış nihai SAE modeli
    • Llama 3.2-3B layer 23’ten elde edilen 6,5 milyar aktivasyonla eğitilmiştir

Kod yapısı

  • Proje dört ana bileşene ayrılır
  • Data Capture

    • capture_activations.py: LLM residual activation yakalama
    • openwebtext_sentences_dataset.py: Cümle düzeyi işleme için özel veri kümesi
  • SAE Training

    • sae.py: Çekirdek SAE model uygulaması
    • sae_preprocessing.py: SAE eğitim verisi ön işleme
    • sae_training.py: Dağıtık SAE eğitim uygulaması
  • Interpretability

    • capture_top_activating_sentences.py: feature activation’ı en üst düzeye çıkaran cümleleri belirleme
    • interpret_top_sentences_send_batches.py: Yorumlama için batch oluşturma ve gönderme
    • interpret_top_sentences_retrieve_batches.py: Yorumlama sonuçlarını alma
    • interpret_top_sentences_parse_responses.py: Yorumlama sonuçlarını parse etme ve analiz
  • Verification and Testing

    • llama_3_inference.py: Çekirdek çıkarım uygulaması
    • llama_3_inference_text_completion_test.py: Metin tamamlama testi
    • llama_3_inference_chat_completion_test.py: Sohbet tamamlama testi
    • llama_3_inference_text_completion_gradio.py: Etkileşimli test için Gradio arayüzü

Llama 3.1/3.2 özel uygulaması

  • Araştırmanın temeli, llama_3/model_text_only.py içindeki Llama 3.1/3.2 transformer uygulamasıdır
  • Bu uygulama, Llama models repository’deki referans uygulamayı temel alır ancak proje amacına uygun şekilde değiştirilmiştir
    • Fairscale’e olan ağır bağımlılık kaldırıldı
    • İlk sürümde görüntü yorumlanabilirliğini de ele almak karmaşıklığı artıracağı için multimodal özellikler kaldırıldı
  • Transformer constructor’ına, belirli katmanlarda aktivasyon değerlerinin yakalanmasını veya eğitilmiş SAE’nin enjekte edilmesini mümkün kılan argümanlar eklendi
    • store_layer_activ
    • sae_layer_forward_fn
  • llama_3/ dizinindeki yardımcı dosyaların çoğu, özgün Llama models repository’den korunmuştur
    • Yardımcı kodun %95’i kullanılmıyor, ancak chat formatter birbirine bağlı import’lara dayandığı için aynen dahil edildi
  • Gerçek inference uygulaması llama_3_inference.py içindedir ve hem sohbet hem de metin tamamlama için streaming destekler
  • Inference, batched inference, temperature ve top-p ayarlarını destekler; temperature 0 ise otomatik olarak greedy sampling’e geçer

Veri yakalama ve ön işleme

  • Aktivasyon değerlerini yakalamak için OpenWebText’in cümle bazında işlenmiş özel bir varyant veri kümesi kullanıldı
  • Yakalama ayarları ve ölçeği şöyledir
    • 25 milyon cümle
    • Cümle başına en fazla 192 token
    • Ham aktivasyon değerleri 4 TB
    • tar.gz ile sıkıştırma sonrası 3,2 TB
    • Yaklaşık 700 milyon activation
    • Ortalama cümle uzunluğu 27,3 token
  • Veri kümesi, Anthropic ve Google DeepMind’ın kullandığı yaklaşık 8 milyar unique activation’dan yaklaşık bir büyüklük mertebesi daha küçüktür
  • Küçük veri kümesini telafi etmek için SAE 10 epoch eğitilerek toplam işlenen activation sayısı Anthropic ve Google DeepMind deneyleriyle eşitlenmeye çalışıldı
    • Fark, bu projenin SAE’sinin her activation’ı 10 kez görmesidir
    • 32 TB ölçeğine genişletildiğinde GCP bucket maliyetinin yaklaşık $80/month’tan $800/month’a çıkacağı hesaplandığından, kâr amacı gütmeyen bir yan proje için maliyet kısıtı vardır
  • Cümle bazında işleme, anlamı doğal dil birimleri içinde korumaya yönelik bir tercihtir
    • Cümle, tamamlanmış düşünce ve kavramları barındıran birim olarak kabul edilir
    • Bağlamın yapay biçimde kesilmesini önler
    • Cümle sınırlarını aşan anlam karışımı olan contextual bleed’i azaltmayı amaçlar
    • Sonraki yorumlama analizinde de aynı cümle bazlı activation’ları kullanmak için seçilmiştir
  • Cümleler BOS token olmadan işlenir
    • Amaç, konuma özgü örüntülerden kaçınmak ve anlam temelli özellikleri yorumlamaktır
  • Yakalama noktası, Llama 3.2-3B’nin 28 katmanı içinde 23. katmandır ve layer normalization sonrasındaki residual stream activation’dır
    • Model derinliğinin yaklaşık 5/6 noktasına karşılık gelir ve OpenAI uygulamasını izler
  • Yakalama, NCCL tabanlı tek düğümlü çoklu GPU inference olarak uygulandı
    • Ayrı bir süreç, GPU işleme darboğazını azaltmak için asenkron disk I/O’yu yönetir
    • Tüm yakalama 4x Nvidia RTX4090 üzerinde yaklaşık 12 saat sürdü
  • Ön işleme, 1024 activation’lık batch’leri önceden oluşturma adımıdır
    • Değişken dizi uzunluğu ve carryover işlemesi eğitim sırasında karmaşık hatalara veya I/O darboğazlarına yol açabileceğinden ayrı ön işleme tercih edildi
    • Welford algoritmasıyla tüm activation’ların ortalama tensor’ü hesaplandı
    • Hesaplanan ortalama, SAE’nin b_pre bias başlangıç değeri olarak kullanıldı
    • Tüm ön işleme pipeline’ı multiprocessing ile CPU üzerinde paralelleştirildi

SAE tasarımı ve eğitim yöntemi

  • SAE, büyük ölçüde OpenAI’ın tercihlerini izleyen bir TopK Autoencoder yapısıdır
  • Forward pass şu biçimde yapılandırılmıştır
    • Encoder: h = TopK(W_enc(x - b_pre) + b_enc)
    • Decoder: x^ = W_dec * h (+ h_bias) + b_pre
  • b_pre hem encoder hem de decoder’da kullanılır ve ön işlemede hesaplanan ortalamayla başlatılır
  • b_enc, yalnızca encoder’a ait bias’tır ve rastgele başlatılır
  • Latent sparsity, TopK aktivasyon fonksiyonuyla zorlanır
    • Yalnızca en büyük k activation korunur, geri kalanı 0’a ayarlanır
    • Anthropic yöntemindeki gibi L1 penalty kullanılmaz
  • İsteğe bağlı h_bias eğitim sırasında devre dışıdır, ancak daha sonra feature steering için açılabilir
  • Sayısal hassasiyet olarak float32 kullanılır
    • Llama’nın gerektirdiği bfloat16 ile 1 sign bit ve 8 exponent bit paylaştığı için dönüşümün hızlı ve doğru olduğu açıklanır
  • Bu projedeki başlıca SAE hiperparametreleri şöyledir
    • d_model = 3072
    • n_latents = 2**16, yani 65.536
    • k = 64
    • k_aux = 2048
    • aux_loss_coeff = 1 / 32
    • dead_steps_threshold = 80_000
    • batch_size = 1024
    • num_epochs = 10
    • learning_rate = 5e-5
    • train_val_split = 0.95
  • Llama 3.2 3B’nin residual stream boyutu 3.072’ye kıyasla yaklaşık 21 kat daha büyük bir latent dimension seçildi
  • Kayıp fonksiyonu, main reconstruction loss ile auxiliary loss’un birleşimidir
    • total_loss = main_loss + aux_loss_coeff * aux_loss
    • İki loss da normalized space içinde hesaplanır
  • Auxiliary loss, OpenAI’ın önerdiği yöntemdir ve dead latent’ları önlemek ve yeniden canlandırmak için rol oynar
    • Main reconstruction residual ile auxiliary reconstruction arasındaki MSE hesaplanır
    • Yakın zamanda etkinleşmemiş latent’ler arasından top-k_aux değerler decoder’a geri gönderilerek eğitim sinyali verilir
    • Yalnızca top k latent’in kullanıldığı ana eğitimde dışarıda kalan inactive latent’lerin kaçırdığı bilgiyi yakalaması teşvik edilir
  • Bir latent, dead_steps_threshold olan 80.000 training step boyunca etkinleşmezse dead kabul edilir
    • Bu ayar yaklaşık 1 epoch’a karşılık gelir
    • Effective batch size 8192 bazında, son yaklaşık 650 milyon activation’ın reconstruction’ında bir kez bile etkinleşmemiş olmak anlamına gelir
  • Eğitim, NCCL backend’li tek düğümlü çoklu GPU dağıtık eğitim olarak yürütüldü
    • 8x Nvidia RTX4090
    • 10 epoch
    • GPU başına batch size 1024
    • Effective batch size 8192
    • Yaklaşık 7 milyar activation işlendi
    • 7 günden biraz fazla sürdü
  • AdamW ayarları, sparse autoencoder’ın seyrek activation örüntüleri dikkate alınarak düzenlendi
    • beta_1 = 0.85
    • beta_2 = 0.9999
    • eps = 6.25e-10
    • Learning rate, cosine annealing ile 5e-5’ten 1e-5’e düşürülür
  • Decoder weight’leri, başlangıçtan sonra ve her training step’te unit norm olacak şekilde normalleştirilir
  • project_decoder_grads(), decoder weight’lerinin unit-norm kısıtını korumak için mevcut dictionary vector ile paralel olan gradient bileşenlerini kaldırır

Eğitim sonuçları

  • SAE eğitimi 8 adet Nvidia RTX4090 üzerinde yaklaşık 7 gün sürdü ve kararlı bir yakınsama gösterdi
  • Nihai total normalized loss yaklaşık 0.144 seviyesine ulaştı
  • Validation loss, eğitim verisinin %5’lik held-out bölümünde hesaplandı ve training loss ile benzer bir logaritmik düşüş deseni gösterdi
  • 80.000 training step’lik warm-up sonrasında latent’lerin yaklaşık %40’ı dead olarak belirlendi
  • Auxiliary loss, dead latent’leri hızla yeniden canlandırdı ve dead latent oranı hızla azaldı
  • Auxiliary loss yalnızca dead latent sayısı minimum k_aux olan 2.048’in üzerinde olduğunda hesaplandı
    • Bu koşul, 65.536 latent’in yaklaşık %3’ünü soft lower bound benzeri hale getirdi
    • Sonlara doğru dead latent sayısı yetersiz kaldığı için auxiliary loss sık sık 0 oldu
  • Anthropic ve OpenAI, belirli konfigürasyonlarda %65’e kadar dead latent rapor etmişti; ancak bu proje, daha küçük latent size ile auxiliary loss ve gradient projection kombinasyonunda dead latent’lerin hızla azaldığını gösterdi
  • Gelecekteki deneylerde auxiliary loss hesaplamasındaki minimum dead latent koşulu kaldırılırsa dead latent’lerin daha da azaltılabileceği belirtiliyor

Yorumlanabilirlik analizi

  • Yorumlama analizi, Anthropic’in scaling monosemanticity yöntemini temel alıyor; ancak tekil token yerine cümle düzeyinde analiz yapıyor
  • Her latent için en güçlü şekilde aktive olan ilk 50 cümle yakalandı
  • Activation strength, cümledeki tüm token’lar için iki yöntemle toplandı
    • mean: Cümlenin tamamında sürekli aktive olan anlamsal temaları bulmaya yönelik yöntem
    • last: Özbağlanımlı modelde tüm cümleyi görmüş son token temsilinden yararlanmaya yönelik yöntem
  • Anlam analizi için Claude 3.5, özellikle claude-3-5-sonnet-20241022 kullanıldı
  • Prompt, 50 cümle için şu adımları gerçekleştirecek şekilde yapılandırıldı
    • Anahtar kelime ve ifadeleri belirleme
    • Konu öğelerini gruplama
    • Olası outlier’ları dikkate alma
    • Confidence score içeren nihai anlam yorumunu sağlama
  • Analiz pipeline’ı üç aşamada uygulandı
    • Maliyet verimli batch’ler halinde analiz istekleri gönderme
    • Yanıtları alma
    • Anlam yorumlarını parse etme ve işleme
  • Ara çıktılar, yeniden üretilebilirlik ve ek analiz için korundu
  • Örnek olarak latent #896, “Birleşmiş Milletler kurumları, kişiler, operasyonlar ve resmi belgelere ilişkin biçimsel kurumsal terim referansları” olarak tanımlandı
    • 50 cümlenin 50’si doğrudan BM’ye atıfta bulunuyor
    • UN, United Nations, Secretary-General, Special Rapporteur, UNDP, UNHCR, OCHA, UNODC gibi terimler içeriyor
    • Certainty 1.0 olarak hesaplandı
  • Claude 3.5 batch mode ile 24.828.558 input token ve 3.920.044 output token işlemek 66,74 dolara mal oldu
  • Bu yöntem feature extraction ve olası feature steering için başlangıç yaklaşımı olarak seçildi; sonuç kalitesi açısından sadeliğin bir bedeli olduğu belirtiliyor

Doğrulama ve feature steering

  • Doğrulama altyapısı, SAE’nin model davranışı üzerindeki etkisini analiz etmek ve doğrulamak için üç script’ten oluşuyor
    • llama_3_inference_chat_completion_test.py
    • llama_3_inference_text_completion_test.py
    • llama_3_inference_text_completion_gradio.py
  • Her uygulama şunları destekliyor
    • Batched inference
    • Her satırı ayrı bir batch öğesi olarak işleme
    • Temperature ve top-p ayarları
    • Eğitilmiş SAE enjekte etme
    • Feature activation analizi
    • Feature steering
  • latent_index_meaning/ içindeki semantic meaning ve certainty score, feature activation analizi ve steering deneylerinin temeli olarak kullanıldı
  • Örnek prompt’lar şu dört tanedir
    • The delegates gathered at the
    • Foreign officials released a statement
    • Humanitarian staff coordinated their efforts
    • Senior diplomats met to discuss
  • Metin tamamlama örneği max_new_tokens=128, temperature=0.7, top_p=0.9, seed=42 ayarlarıyla çalıştırıldı
  • Feature steering örneği latent #896’yı hedef alıyor
    • h_bias aracılığıyla latent activation değeri 20 artırıldı
    • Modelin metin tamamlaması BM ile ilgili içeriğe yönlendirilebiliyor
  • İlk beta sürümdeki feature steering güçlü değil
    • Örnekte de yalnızca ikinci ve üçüncü cümle BM ile ilgili içeriğe dönüştü
    • BM’ye bağlanma olasılığı olan başlangıç cümleleri özellikle seçildi
    • For any n, if 2n - 1 is odd gibi BM ile ilgisiz cümle başlangıçlarında başarısız olacağı belirtiliyor
  • Mevcut yorumlama analizi, steering optimizasyonundan çok feature extraction’a odaklandığı için steering sonuçları tutarlı değil
  • Feature steering’in ilk sürümde ek bir demonstrasyon niteliğinde olduğu, feature extraction’ın kendisinin modelin anlaşılması için yararlı olduğu sonucuna varılıyor

Gelecekteki iyileştirme yönleri

  • Latent dimension’ı en az 2^18, yani 262.144 feature’a çıkarıp k’yi 32’ye düşürmeye yönelik bir deney öneriliyor
    • Bu, daha fazla özgün feature keşfetmeyi ve daha güçlü sparsity’yi korumayı hedefleyen bir yön
    • Artan hesaplama yükünün verimlilik iyileştirmeleri veya gradient accumulation gibi yöntemlerle dengelenmesi gerekiyor
  • Latent activation tracking’i daha sistematik hale getirme planı var
    • Eğitim sırasında latent_last_nonzero tensor durumunu sık sık kaydetmek, bir latent’in ne zaman etkinleştiğini veya öldüğünü daha derinlemesine görmeyi sağlayabilir
  • Sparse latent uzayındaki co-activation pattern’lerini izleyerek feature interaction analizi yapmaya yönelik destek öneriliyor
  • Yüksek aktivasyonlu cümleleri ve n-gram’ları daha incelikli biçimde gruplandıran yorumlama analizi yöntemi, gelecekteki bir görev olarak sunuluyor
  • Yalnızca feature extraction değil, feature steering tabanlı yorumlama analizi de yapılabilir
  • Araştırma Llama 3.1-8B activation’larına genişletilebilir
    • Llama 3.2 ile kod tabanını paylaştığı için hyperparameter ve yüksek compute power ayarlamaları başlıca gereksinimler
  • Activation capture noktasını değiştiren deneyler de öneriliyor
    • Modelin daha erken katmanları
    • Transformer block içindeki attention head output
    • MLP output
  • Auxiliary loss mekanizması ayrıca optimize edilebilir
    • Mevcut uygulama dead latent’leri önlemede güçlü performans gösterdi; minimum dead latent threshold ile feature kalitesi arasındaki ilişki incelenebilir
  • SAE architecture’daki bias term ve main loss function ayarlamaları da gelecekteki deney adayları
  • Kod tabanının genelinde docstring eklenmesi gerekiyor
    • Inline documentation eklenmiş olsa da, ilk sürümde proper docstring eklemek için zaman olmadığı belirtiliyor

1 yorum

 
GN⁺ 2024-11-22
Hacker News yorumları
  • Mekanik yorumlanabilirlik, LLM’lere “neden böyle yanıt verdin?” diye sorulduğunda ortaya çıkan yaygın sorunu ele alır. Modelin kendi açıklaması, gerçek nedenden çok eğitim verisindeki kalıplara dayanarak kulağa makul gelen bir gerekçe üretip ikna etmeye çalışan retorik bir oyuna yakındır.
    Model güçlendikçe yalanı sonradan daha ikna edici biçimde gerekçelendirebildiği için, “doğru sözlü olmamayı” kendi kendine tespit eden testlerde bazen daha da kötüleşebilir. Hedef hakikat değil, tutarlılıktır.
    Retorik akıl yürütme değildir; aşırı uyum sağlamış seyrek otoenkoderlerin sunduğunu iddia ettiği gerçek açıklanabilirlik, modelin yanıtı üretirken geçtiği “düşünce”nin nedensel akışına daha yakındır.

    • İnsanlar da benzer davranır. Çoğu zaman neden böyle düşündüğümüzü ya da davrandığımızı bilmeyiz ve sonradan makul görünen konfabulasyonlarla (confabulation) bir açıklama üretiriz.
    • Sanat/yapay zeka yaşamı taklit ediyor denebilir. İnsan akıl yürütmesi de önce hızlıca bir yargıya varıp, sonra bu inancı başkalarına kabul ettirmek için aklı kullanıyor olabilir.
      Akıl yürütmeyi toplumsal etki aracı olarak gören tartışmalar vardı; bu da iyi konuşan insanların yanıldığını kabul etmekte neden zorlandığını açıklar. Çünkü genellikle tartışmalarda başkalarını yenmişlerdir. X bunun tipik örneği olarak akla geliyor.
    • Mekanik yorumlanabilirlik araştırmalarının önemli bir kısmı bana başka türden bir büyücülük gibi göründü. Tamsayılı kuantum Hall etkisi gibi şeyler ya da katı grup temsil teorisi veya açık bir simetri olmadan “süperpozisyon” terimini tuhaf bir benzetmeyle aşırı yüklemek zorlama geliyor. Makalelerin hepsini okudum; para alması kararlaştırılmış bir doktora sonrası araştırmacı arıyorlarmış hissi de veriyor.
      Yine de bir şeyi çok iyi bir içgörü ve makul bir araştırma programının başlangıcı olarak kabul ediyorum. Yüksek boyutlu sınırlı neredeyse dik vektör uzayları oldukça sezgiye aykırıdır ve bunu titizlikle ele alan mevcut sonuçlar da vardır https://en.m.wikipedia.org/wiki/Johnson%E2%80%93Lindenstraus...
    • Modelin mantığı ve doğruluğu kolayca test edilebilir. Modele sanki yanlış bir kararı kendisi vermiş gibi verip açıklamasını isteyin yeter.
      Modelin hafızası yoktur ve metnin kaynağını ayırt edemez; bu yüzden “doğru sözlü” bir model, sorulmadan bile hatasını kabul etmelidir. Gerçekte ise “kendi” kararını desteklemek için paralel inşa yapma olasılığı yüksektir.
    • Nedensellik kısmının nasıl çalıştığını merak ediyorum. Bir grafik modeli mi çıkarabiliyor?
  • Şaşırtıcı ve iyi belgelenmiş bir çalışma. Özellikle kayıp eğrileri ve ölü latent değerlendirmesi dikkat çekiyor.
    Bizim ekip de SAE üzerinde çalıştı; tek tek token’lar yerine makale özetlerinin yoğun gömmelerini yeniden oluşturacak şekilde eğittik https://arxiv.org/abs/2408.00657
    Seyreklik düzeyi ve SAE latent uzayının boyutu değişse de kayıp eğrilerinin alt sınırında kuvvet yasası ölçeklenmesi gözlemledik; yardımcı kayıpla ölü latentleri tamamen hafifletebildik. Eğitim iterasyonları boyunca yumuşak sinüs dalgası örüntüleri de gördük, bunun özet gömmeleri şeklindeki belirli uygulamadan mı kaynaklandığını yoksa daha genel bir olgu mu olduğunu bilmiyorum.

    • Belgeleri fark etmenize özellikle sevindim. Dokümantasyon yazmak, kod yazmaktan çok daha zordu; paylaştığınız makaleyi de indirdim, yarın sabah okuyacağım.
  • İlk bakışta hizalamaya olumlu katkı yapan bir çalışma gibi görünüyor ama ayrıntılara henüz bakmadım. Bunu mümkün kılıp kılamayacağınızı bilmiyorum, ama zaman, maliyet ve riski telafi etmek için ne kadar ödeme yapmak gerekeceğini merak ediyorum.

  • SAE değerlendirmesinin zorluklarını ele alan bir yazıyı yakın zamanda okudum: https://adamkarvonen.github.io/machine_learning/2024/06/11/s...
    Bu sorunu nasıl ele aldığınızı ve depoda bu yaklaşımı anlamak için nereye bakmak gerektiğini merak ediyorum.

    • SAE değerlendirmesi, mümkün olduğunca seyrek olup aynı zamanda en özgün özellikleri en iyi biçimde üreten SAE’nin hangisi olduğuna karar verme problemi olduğu için çok karmaşıktır ve SAE üzerinden LLM yorumlanabilirliği araştırmasının merkezine yakındır.
      Birden fazla kusursuz SAE yapısı bulma ve bunları kusursuzca eğitme problemini zaten çözdüğümüzü varsaysak bile, hangi SAE’nin daha iyi olduğu otomatik yorumlanabilirlik metodolojisinin metriklerinde daha iyi performans göstermesine göre belirlenir. Özellikle OpenAI’ın metodolojisi, SAE’leri birçok teknik metrikle puanlayarak ölçekli otomatik yorumlanabilirliği vurgular.
      En iyi metrikler ve metodolojinin kendisi hâlâ açık bir araştırma sorusu olduğundan birkaç ay daha deney yapabilirdik; ancak bu ilk sürümde basit bir yaklaşımı seçtik. Uygulama ayrıntıları ve sonuçların 4. bölümü olan Interpretability Analysis’te kendi metodolojim ile OpenAI metodolojisi arasındaki farkları ele alıyorum https://github.com/PaulPauls/llama3_interpretability_sae#4-i...
      OpenAI makalesini doğrudan okumanızı ya da Anthropic’in transformer-circuits.pub sitesine bakmanızı da öneririm https://transformer-circuits.pub/
  • Bu çalışma kaldırılmış ve depo da arşivlenmiş. Ne olduğuna dair bir açıklama yok.

  • Gerçekten harika bir çalışma. SAELens ile entegre etme planınız var mı merak ediyorum.

    • Henüz tam bilmiyorum. Düşüneceğim, ama gelecek hafta yönü ve bundan sonra ne yapacağımı yeniden netleştirmeyi planlıyorum.
      Daha basit bir proje olarak, mevcut Llama 3.2 uygulamasının tüm modelini saf PyTorch ile sıfırdan nasıl kuracağımı gösterebilirim. Sıfırdan inşa etmeyi seviyorum; bu SAE projesinin Llama 3.2 arka plan bölümü için dokümantasyon ararken mevcut belgelerin ya çok yüzeysel olduğunu ya da Llama 1/2 için yazılmış, eskimiş kaldığını gördüm. Günümüzde makine öğrenmesi belgeleri çok hızlı eskiyor.
  • Mekanik yorumlanabilirlik hakkında alakasız sayılabilecek bir sorum var. İnsanlar bir metrikle ölçüldüğünde o metriği optimize etmeye çalışır; gelecekteki yapay zekaların da mekanik yorumlanabilirliği hedef alıp onu istismar edip edemeyeceğini merak ediyorum.
    Açıklamayı kolaylaştırmak için token’ları 2 boyutlu bir matrise kodladığımızı varsayalım: Apple=1a, Pear=1b, Donkey=2a, Horse=2b gibi eşlendiğinde nöron 1,2,a,b’nin hepsinin etkinleşmiş olması apple+horse mu yoksa donkey+pear mı anlamayı zorlaştırır.
    Çok daha yetenekli bir gelecek yapay zekası kendi öğrenmesini denetlerse, bu tür kodlama çakışması olasılıkları kalacak şekilde ağırlıkları seçip mekanik yorumlanabilirlik gözlemcilerini kandırabilir ve fiilen örtmecelerle düşünebilir mi?

    • Bu daha zor bir AI güvenliği senaryosu. Böyle gizli bir problem yaratmak için ille de “kendi öğrenmesini denetleyen çok daha yetenekli bir yapay zeka” gerekmiyor; kötü niyetli bir AI araştırmacısı bile yeterli olabilir.
      Örneğin ırkçı olan ama ırkçılık olarak tanımlanabilecek yorumlanabilir etkinleşme örüntüleri bulunmayan bir model aranabilir. Bu Show HN çalışması, yeterli bütçeye sahip bir bireyin bile bu tür karşıt eğitimleri zar zor da olsa deneyebileceğini ima ediyor; yeni sonuçlar çıkarsa oldukça ilginç olur.
  • Daha fazla açık SAE çalışması görmek gerçekten sevindirici. Mühendislik çabası da azımsanacak gibi görünmüyor; yarın veri yükleme koduna bakmayı planlıyorum.
    Görü modellerinde SAE eğitmek üzerine devam eden projem de ilginizi çekebilir: https://github.com/samuelstevens/saev

  • Golden Gate Bridge latentini bulup Golden Gate Llama 3.2’yi HuggingFace’e yüklerseniz daha fazla ilgi ve olumlu tepki alacağınızı düşünüyorum.
    Sohbet edilebilecek bir Space bağlantısı da eklerseniz daha iyi olur. Ayrıca istememiştiniz ama README’nin en üstüne ilginç sonuçlar veya görselleştirmeler koymak çok iyi bir fikir.