1 puan yazan GN⁺ 2 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • DwarfStar 4, llama.cpp’yi DeepSeek-V4-Flash’e özel olarak sadeleştirerek LLM steering denemelerini yerel modellerde yapmayı kolaylaştırıyor
  • Steering, “kısa yanıt verme” gibi bir kavramın aktivasyon farkını vektör olarak çıkarıp, çıkarım sırasında aynı katmana ekleyerek davranışı değiştirme yöntemi
  • Steering, ağırlıklara veya aktivasyonlara erişim gerektirdiği için yerel çalıştırma varsayımına dayanıyor; API kullanıcıları için bu, yalnızca OpenAI gibi sağlayıcıların yapabileceği bir alan
  • Birçok temel ayar için prompt daha basit olsa da, refusalları kaldırmak gibi prompt ile istemesi zor olan öğrenilmiş davranışları değiştirme olasılığı sürüyor
  • DeepSeek-V4-Flash ve DwarfStar 4 ile açık kaynak deneyleri artabilir; gerçek uygulamalar önümüzdeki 6 ay içinde ortaya çıkabilir

DeepSeek-V4-Flash ve DwarfStar 4

  • DwarfStar 4, llama.cpp’nin yalnızca DeepSeek-V4-Flash çalıştırmaya odaklanan sadeleştirilmiş bir projesi ve yerel modellerde LLM steering denemelerini kolaylaştırıyor
  • DeepSeek-V4-Flash, frontier modellerin düşük seviyeli ajan benzeri kodlama yetenekleriyle rekabet edecek kadar iyi bir yerel model olabilir
  • Steering, model ağırlıklarına veya aktivasyonlarına erişim gerektirdiği için yerel çalıştırma ister; DeepSeek-V4-Flash gibi modellerin ortaya çıkmasıyla birlikte daha fazla mühendisin bunu doğrudan deneyebilmesi için uygun koşullar oluşuyor
  • antirez, DwarfStar 4’e steering desteğini birinci sınıf özellik olarak ekledi, ancak mevcut örnekler şu anda prompt ile de yeniden üretilebilen oyuncak düzeyinde bir “verbosity” ayarına daha yakın
  • DwarfStar 4’ün ilk sürümü 8 gün önce yayımlandı; steering özelliğinin bundan sonra nasıl gelişeceği dikkatle izlenecek

Steering nasıl çalışır

  • Steering’in temel fikri, “kısa yanıt verme” gibi bir kavramı modelin iç durumundan çıkarıp, çıkarım sırasında bu kavramı oluşturan sayısal aktivasyonları güçlendirmektir
  • Basit steering vektörü çıkarımı

    • Aynı 100 prompt’luk küme modele iki kez verilebilir; birinde normal prompt’lar kullanılır, diğerinde ise sonuna “respond tersely” eklenir
    • Her prompt çifti için modelin aktivasyon farkı ölçülür ve bir aktivasyon matrisi diğerinden çıkarıldığında steering vektörü elde edilir
    • Rastgele bir prompt için aynı aktivasyon katmanına bu vektör eklendiğinde, modelin daha kısa ve özlü yanıt vermesi beklenebilir
    • Ölçülebilen aktivasyonlar attention sonrası, katmanlar arası gibi çeşitli noktalarda bulunabilir; tek bir nokta seçilebilir ya da hangisinin en iyi çalıştığını görmek için birden fazlası denenebilir
  • Daha gelişmiş özellik çıkarımı

    • Ayrı bir model eğitilerek, asıl modelin aktivasyonlarında birlikte görülen davranış örüntüleri olan özellikler (feature) da çıkarılabilir
    • Çıkarılan özellikler tek tek kavramlara yeniden eşlenip aynı şekilde aktivasyonları güçlendirmek için kullanılabilir
    • Anthropic’in sparse autoencoders yaklaşımı buna yakın bir ilke ile tanıtıldı
    • Bu yöntem, basit fark vektörlerinden daha derin örüntüleri yakalayabilir, ancak zaman, hesaplama ve uzmanlık maliyeti çok daha yüksektir
    • Açık LLaMA modelleriyle bu yaklaşımı ele alan bir derin analiz var; bunu doğrudan deneme sonucu ise karışık sonuçlara daha yakın bulundu

Steering neden ilginç

  • Steering, veri kümesini zahmetle düzenleyip modeli daha “akıllı” bir dağılıma itmek yerine, modelin içinde bir “smart” düğmesi bulup onu sonuna kadar çevirme ihtimali gibi görünüyor
  • Yazım tonu ayarında da prompt’a “you MUST” gibi ifadeler ekleyip çıkarmak yerine, kısalık/uzunluk ya da özen/hız gibi kaydırıcıları doğrudan hareket ettiren bir kontrol paneli hayal edilebilir
  • Golden Gate Claude, her cümleyi Golden Gate Bridge’e bağlayarak steering’in model davranışını ne kadar güçlü değiştirebildiğini gösteren hem ilginç hem de rahatsız edici bir örnek

Steering neden yaygınlaşmadı

  • Steering, yapay zeka araştırmasında bir tür “orta sınıf” fikir gibi konumlanıyor; ne büyük yapay zeka laboratuvarlarına ne de genel kullanıcılara tam olarak uyuyor
  • Büyük laboratuvarlar için daha az gerekli

    • Büyük yapay zeka laboratuvarları, çıkarım sırasında tuhaf bir “beyin ameliyatı” yapmadan da modeli doğrudan değiştirebilir
    • Anthropic bu alanla ilgileniyor, ancak bunu daha çok yorumlanabilirlik ve güvenlik açısından ele alıyor
    • Büyük laboratuvarlar belirli bir davranış istediğinde genellikle steering yerine modeli eğitmeyi tercih ediyor
  • Genel kullanıcıların erişimi yok

    • API üzerinden LLM kullanan sıradan kullanıcılar, model ağırlıklarına veya aktivasyonlarına erişemedikleri için steering için gereken verilere ulaşamıyor
    • Örneğin GPT-5.5 için bir steering vektörünü tanımlayıp açığa çıkarabilecek taraf yalnızca OpenAI olurdu
    • Açık ağırlıklı modellerde bu mümkün, ancak yakın zamana kadar steering denemeye yetecek kadar güçlü açık modellerin olmadığı düşünülüyordu
  • Birçok temel kullanımda prompt daha verimli

    • Modelin “beynini” doğrudan değiştirme fikri etkileyici görünse de, prompt token’ları da modelin iç durumunu doğrudan değiştirir
    • Steering ile aktivasyonlar oldukça ince ayarlanabilir, ancak prompt ifadesini değiştirmekle de çok hassas kontrol elde edilebilir
    • Modeli daha geveze yapmak için steering kullanmak yerine bunu doğrudan istemek çok daha basittir

Prompt ile zor hedefler steering edilebilir mi?

  • Steering’in gerçekten faydalı olabileceği olasılıklardan biri, prompt ile istenemeyen kavramların bulunup steering uygulanmasıdır
  • “Zeka” bunun için aday gibi görünse de, mevcut nesil modeller bu niteliği zaten içine gömmüş durumda; bu yüzden 4o dönemindeki “you are an expert” türü prompt’lar artık anlamlı bir etki üretmeyebilir
  • “Zeka” için bir steering vektörünün var olup olmadığı ampirik bir soru, ancak böyle bir vektörün bulunduğu fikrine şüpheyle yaklaşılıyor
  • “Zeka” gibi zor bir kavramı oluşturan steering vektörü, modelin tüm ağırlıkları kadar geniş bir alana yayılmış olabilir; bu durumda böyle bir vektörü bulma problemi sonuçta akıllı bir model eğitme problemine indirgenir
  • GPT-2’nin her katmandaki aktivasyonları, aynı yapıya sahip ama çok daha güçlü bir modelin aktivasyonlarıyla değiştirilse daha iyi sonuç alınabilir; ancak bu durumda GPT-2 daha akıllı hale gelmiş olmaz, fiilen daha güçlü bir modelle konuşulmuş olur
  • Yeterince gelişmiş steering sonunda gerçek modelin yerini alır; bu durumda zeka artık asıl modelde değil, steering’in kendisinde bulunur

Veri sıkıştırma olarak steering

  • Steering’in bir başka olasılığı, çok sayıda token gerektiren bir kavramı tek bir steering vektörüne sığdırarak kontekst penceresinden tasarruf etmektir
  • Bu, kavramı modelin çalışma belleğinden örtük belleğe taşımak gibi düşünülebilir
  • Örneğin GPT-5.5 belirli bir kod tabanını hızla okurken edindiği bilginin bir kısmı aktivasyonlara gömülüyorsa, bunun çok büyük bir steering vektörü olarak çıkarılıp çıkarılamayacağı düşünülebilir
  • “Kod tabanımı biliyor olma” kavramı da “zeka” gibi yeterince karmaşık olabilir ve bu yüzden tam fine-tuning gerektirme ihtimali yüksektir
  • Sektörde “modeli kod tabanıyla fine-tune etme” denemeleri de genel olarak çok başarılı olmadı
  • Yine de bu tür bir steering’in tamamen imkansız olduğu söylenemez

Görünüm ve topluluk deneyleri

  • Steering çekici gelse de, kazanımların çoğunun prompt ile daha verimli biçimde yeniden üretilebildiği; daha iddialı hedeflerin ise eğitim ya da fine-tuning ile daha verimli elde edilebildiği yönünde bir şüphe var
  • Açık kaynak topluluğu şimdiye kadar steering ile çok ilgilenmedi, ancak DeepSeek-V4-Flash ve DwarfStar 4 gibi gelişmelerle bu durum değişmeye başlayabilir
  • Steering’in pratik uygulamaları varsa, bunların önümüzdeki 6 ay içinde ortaya çıkması muhtemel
  • DwarfStar 4 gibi modele özel araçların, güçlendirilebilir özelliklerin kütüphanelerini de içerip içermeyeceği izlenmesi gereken bir diğer nokta
  • Popüler bir açık ağırlıklı model çıktığında topluluğun hızla wrapper’lar ve quantized sürümler hazırlaması gibi, modelden güçlendirilebilir özellikler çıkarmaya dönük bir hareket de başlayabilir

Ek tartışma: refusal kaldırma ve çalışma zamanı steering’i

  • Sonrasında Hacker News yorumlarında çeşitli yorumcular ve antirez, steering’in prompt ile değiştirilmesi zor olan öğrenilmiş davranışları değiştirebileceğini savundu
  • Bunun en tipik örneği, modelin refusal davranışını kaldırmak
  • Bir yorumcuya göre açık modellerde sansürü kaldırma ya da abliteration zaten bu tür yöntemlerle yapılıyor
  • antirez’e göre ağırlıkları değiştirmek model yeteneklerine daha fazla zarar verebilir; buna karşılık daha hafif bir çalışma zamanı steering’i, yalnızca gerektiğinde uygulanabilir

1 yorum

 
GN⁺ 2 시간 전
Hacker News yorumları
  • Paylaştığın için teşekkürler; bir noktayı netleştireyim: DwarfStar yönlendirme özelliği ile DS4'ün reddetme davranışını tamamen kaldırabildim
    Oyuncak seviyesinde olan şey, örnek veri kümesi, yani benim verdiğim prompt çiftleri; özelliğin kendisi değil
    Uygun bir veri kümesi oluşturabilen ve iyi belgelenmiş yönlendirme özelliğinin nasıl kullanılacağını anlayan herkesin yönlendirmeye erişebileceğini düşündüm
    Hiç anlamadan sadece kopyala-yapıştır yapacak kişilerin de reddetmeyen bir modele erişmesinin iyi olup olmadığından emin değilim; bu yüzden yönlendirme dosyasını yayımlamadım, ama hâlâ oldukça kararsızım
    Son zamanlarda destek genişletildi; böylece yönlendirme vektörünü her zaman, yalnızca düşündükten sonra ya da yalnızca araç çağrılarının dışında gibi farklı zamanlardaki aktivasyon değerlerine uygulamak mümkün oldu
    Pek çok kişinin bilmediği önemli nokta şu: çıkarım motorunun içinde vektör yönüyle yönlendirme yapmak, aynı şekilde değiştirilmiş bir GGUF kullanmaktan çok daha iyi
    Yönlendirme ne kadar fazla olursa model yetenekleri o kadar zarar görüyor; bu yüzden çalışma anında uygularsanız, istediğiniz hedef için gereken en az miktarı uygulayabilir ve bunu yalnızca seçtiğiniz anda yapabilirsiniz
    Henüz uygulamadım ama, reddetme yönünün enerjisi belirli bir eşiği aştığında yönlendirmeyi uygulamak da mümkün görünüyor; denenebilecek çok şey var

    • Anladığım kadarıyla DeepSeek V4, zararsız girdiler için Batı menşeli yapay zeka modellerinde sık görülen reddetme davranışını çok az gösteriyor ya da hiç göstermiyor
      Burada esasen yazılım güvenliği değerlendirme örneklerinden mi söz ediliyor?
  • Bu yazının, yönlendirme vektörlerinin en büyük kullanım alanından, yani modelin reddetme davranışını ortadan kaldırma olasılığından (abliteration veya uncensoring) hiç söz etmemesine şaşırdım
    Eskiden “çoğu reddetme tek bir vektör üzerinde bulunur” diyen bir makale vardı; o vektör bulunup zayıflatıldığında model reddetmeleri atlayıp genel olarak “her türlü” isteğe yanıt verebilir hâle geliyordu
    Reddetmenin gözetimli ince ayar (SFT) ile öğretildiği ilk modellerde bu oldukça mümkündü; en yeni modellerde biraz daha karmaşık görünüyor ama bir dereceye kadar hâlâ mümkün
    Bu süreci otomatikleştirip reddetmeyi azaltan kütüphaneler zaten var; ama bunlar genelde modeli tanımlayıp değiştirerek sansürü kaldırılmış model olarak dağıtmaya odaklanıyor
    Yönlendirme yaklaşımı bu vektör değişikliğini dinamik olarak açıp kapatabildiği için, abliteration süreci alakasız görevlerin doğruluğunu düşürse bile modelin kendisini değiştirmeniz gerekmiyor

    • p-e-w birkaç gün önce Discord'da bundan bahsetti
      Tek nöron yaklaşımı KLD açısından epey kötü görünüyor; bu yüzden daha yeni teknikler öne çıkmış gibi
    • Sansüre neden bu kadar takıldığınızı anlamıyorum
      Perspektifi ters çevirirseniz, “aşılar zararlıdır” gibi yanlışları söylememek de sansüre girer
      Bilim ve mantık bu tür konuları çoğu zaman sansür olarak ele alır, ama internetten dengeli örneklenmiş bir model aşıların zararlı olduğunu düşünebilir
      Daha az saf bir hizalama bu sorunlu bağlamları sansürleyecektir
      Bu yüzden hangi önyargıların sansürlendiğini varsayıp bunu kaldırmanın genel kullanılabilirliği artıracağını neden düşündüğünüzü anlamıyorum
  • DS4 deposundaki gerçekten ilginç şeyin, öncü laboratuvarların kullanıcılardan gizlediği kontrol düğmelerini keşfetmek ve bunların gerçek geliştirme/etkileşim akışlarına nasıl girebileceğini düşünmek olduğunu düşünüyorum
    Farklı etkileşim biçimlerini keşfetmek ve örneğin yönlendirmeyi kullanıcı arayüzüne kullanışlı biçimde nasıl yerleştireceğini düşünmek gerçekten harika
    İşin sırrı çözüldüğünde ve kullanıcılar, içi bu şekilde açılmış modellerden ne düzeyde kontrol ve fayda elde edebileceklerini anladığında, yönlendirme araç kutusunun temel bir parçası olacak
    Modellerden ya da model sağlayıcılarından bu düzeyde kontrol beklemek doğal hâle gelecek gibi görünüyor

  • “DwarfStar 4, llama.cpp'nin küçültülüp yalnızca DeepSeek-V4-Flash çalıştıracak hâle getirilmiş bir sürümüdür” açıklaması doğru değil
    DwarfStar 4 kendi başına bir projedir
    llama.cpp'ye çok şey borçlu olduğu doğru, ama onun küçültülmüş bir versiyonu değil

    • Evet. Kod örtüşmesi birkaç kernel ile sınırlı ve minimum düzeyde
      Uyguladığım quantizer için biraz quantization kodu var ve DwarfStar 4, llama.cpp'nin bir fork'u değil
      Yine de llama.cpp olmasaydı önemli ayrıntıları hızlıca doğrulayamazdım; dolayısıyla proje çok daha zayıf olurdu
      Ama küçültülmüş bir llama.cpp değil
      Bu da llama.cpp'nin yalnızca bu proje için değil, ardından gelen tüm projeler için ne kadar önemli olduğunu azaltmıyor
      Mesele kod değil; izlenecek yol, quantization formatları, çıkarılan dersler, kalıplar ve öğrenmek için incelenebilecek optimize kernel'ler
    • Gerçek sanırım ikisinin arasında bir yerde
      DwarfStar 4 büyük ölçüde llama.cpp sayesinde var olmuş görünüyor; yazarları da açıkça llama.cpp kodundan çok ilham almış ve bazı kısımları uygun telif atfıyla gerçekten alıp kullanmış
      Bunu kötü anlamda söylemiyorum; gayet normal görünüyor
      ds4.c, GGML'ye link vermiyor ama llama.cpp projesinin açtığı yol, orada geliştirilen kernel'ler, quantization formatları, GGUF ekosistemi ve zor kazanılmış mühendislik bilgisi sayesinde var
      DeepSeek V4 Flash için özel bir çıkarım yolu yapılırken; uygulama, kernel'ler, testler ve tasarım tercihleri temel referans oldu; MIT lisansı altında GGUF quantization yerleşimi ve tabloları, CPU quantization/nokta çarpım mantığı ve bazı kernel'ler gibi kaynak düzeyindeki parçalar korundu ya da uyarlandı
      Bu yüzden de içten bir teşekkür olarak LICENSE dosyasında GGML yazarlarının telif bildiriminin korunduğu belirtiliyor - https://github.com/antirez/ds4#acknowledgements-to-llamacpp-...
      https://news.ycombinator.com/item?id=48142885 sonrasındaki yaklaşık iki gün boyunca bununla oynamak oldukça eğlenceliydi ve şimdiye kadar üretim hızını 47.85 t/s'den 57.07 t/s'ye çıkardım
  • Yönlendirmeyle yapay zekayı daha radikal hâle getirmeyi denedim
    Yazı: https://www.outcryai.com/research/shift-a-models-political-i...
    Uygulama: https://apps.apple.com/us/app/outcry-activist-ai/id676208676...
    Bu tekniğin büyük potansiyeli var

  • Güzel yazı ama kafamı karıştıran bir nokta var
    Yazıda yönlendirmenin yalnızca yerel modellerde çalıştığı söyleniyor; ama GitHub Copilot'ta “steer with message” diye bir özellik var, çalışmanın ortasında yönü düzeltmeye yarıyor ve bunu sık kullanıyorum
    Muhtemelen bunlar farklı türde yönlendirmeler
    Ajan yönlendirmesi büyük olasılıkla harness ile LLM arasındaki gidiş geliş akışının ortasına bir kullanıcı mesajı daha enjekte etme yöntemi

  • Bir model nasıl yerel sayılabilir? Yaklaşık 192GB RAM gerekiyorsa buna yerel demek biraz iddialı değil mi?

    • 96GB MacBook'ta da çalışıyor
      128GB daha iyi olur; DwarfStar README'sine bakın
    • Gerekli donanıma sahipseniz indirip çalıştırabiliyor musunuz? O zaman gerçekten o donanıma sahip olsanız da olmasanız da bu yereldir
      Bu, gerekli kablosuz cihazı ya da anteni olmayan birine Zigbee'yi yerel/LAN sayıp sayamayacağını sormaya benziyor
  • Bağlantısı verilen DwarfStar deposundaki şu satır bana control vector'leri hatırlattı
    y = y - scale * direction[layer] * dot(direction[layer], y)
    https://vgel.me/posts/representation-engineering/ yazısında control vector'ler, “ek prompt olmadan çıkarım sırasında model aktivasyonlarına uygulanarak model davranışını kontrol edebilen vektörler; daha doğrusu her katman için bir tane olmak üzere vektör listesi” olarak açıklanıyor

  • Gerçekte kullanmak isteyeceğim bir şeyden çok derin öğrenme araştırması içinmiş gibi görünüyor

    • Hayır. Bir reddetmeyi önleme vektörü yüklerseniz, örneğin bilgisayar güvenliğiyle ilgili pek çok soru sorabilirsiniz
      Öğrenmek istediğinizde sürekli “bu sorunlu talebe yardımcı olamam” diyen bir modelden çok daha iyi
  • “Sadece prompt ifadesini ayarlayarak zaten çok ince kontrol elde edebilirsiniz” kısmından emin değilim
    Belki ben prompt yazamıyorumdur ama eğitim verisinden ya da sonradan yapılan eğitimden gelen önyargıları aşmak imkânsız gibi geliyor
    Prompt ile ancak eğitim verisindeki kalıpları biraz daha iyi ortaya çıkarabiliyorsunuz; gerçek anlamda ince kontrol gibi bir şey pek yok