DeepSeek-V4-Flash ile LLM steering yeniden ilginç hale geldi
(seangoedecke.com)- 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
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
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
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
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
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
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 varDeepSeek 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
Bu sanal token'larla yapay zekanın anlam uzayındaki dilsel olmayan bölgeleri bulunabilir ve davranışı karmaşık şekillerde değiştirilebilir
Aktivist yapay zekaya soft prompt'ları nasıl entegre ettiğimi burada anlattım: https://micahbornfree.substack.com/p/the-week-outcry-woke-up...
ve https://www.outcryai.com/research/how-to-create-activist-ai
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
O, modele doğal dilde düşünce çıktısına metin enjekte etmek ya da ona çok benzer bir şey yapmak
Yine de Anthropic'in NLA çalışması kullanılarak belirli bir katmandaki model aktivasyonlarının doğal dil temsiline bakılan, bu metnin düzenlenip sonra tamamen farklı aktivasyonlara geri dönüştürüldüğü orta bir yol da mümkün olabilir
Bir model nasıl yerel sayılabilir? Yaklaşık 192GB RAM gerekiyorsa buna yerel demek biraz iddialı değil mi?
128GB daha iyi olur; DwarfStar README'sine bakın
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
Öğ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