16 puan yazan GN⁺ 2026-03-14 | 1 yorum | WhatsApp'ta paylaş
  • LLM’lerin matematik olimpiyatı düzeyindeki problemleri çözebilmesine rağmen basit toplama/Sudoku gibi işlemleri bile dış araçlar olmadan doğru biçimde yapamaması sorununu aşmak için, transformer’ın içine gerçek bir bilgisayar kurma yaklaşımı
  • Rastgele C kodunu token’lara dönüştürüp modelin kendisinin milyonlarca adımlık çalıştırma izini doğrudan üretmesi; CPU’da saniyede 30 bin token’ın üzerinde hızla akış sağlayabilmesi
  • Temel teknik, attention head boyutunu 2D ile sınırlayarak bunu dışbükey zarf (convex hull) tabanlı geometrik aramaya dönüştürmek ve doğrusal zamanlı taramayı logaritmik zamana çevirmek
  • WebAssembly yorumlayıcısını transformer ağırlıkları içinde uygulayarak, harici araç çağrısı olmadan modelin decoding döngüsü içinde program çalıştırmanın şeffaf biçimde gerçekleşmesi
  • Gelecekte programları doğrudan ağırlıklara derleme ve öğrenilmiş temsiller ile derlenmiş algoritmaları tek bir hesaplama temeli üzerinde birleştiren yapay zeka sistemlerine genişleme olasılığı

LLM’lerin hesaplama sınırları

  • En gelişmiş LLM’ler Uluslararası Matematik Olimpiyatı altın madalya düzeyindeki problemleri çözebiliyor veya çözülmemiş matematik ve bilim problemlerine meydan okuyabiliyor; ancak saf hesaplama işlerinde hâlâ başarısız oluyor
  • Temel toplama işlemlerinde bile hata oluşuyor ve Sudoku-Bench gibi benchmark’larda harici yardım olmadan çözüm başarısı çok düşük
  • Bu boşluğu kapatmak için şu anda iki dolaylı yöntem bulunuyor
    • Araç kullanımı (Tool use): Model kodu yazar, harici yorumlayıcı bunu çalıştırır ve sonucu geri verir
    • Ajan orkestrasyonu: Harici bir döngü ara durumu saklar, işi parçalara ayırır ve modeli tekrar tekrar çağırır
  • Bu yaklaşımlar faydalı olsa da, gerçek hesaplama yeteneğinin modelin dışında bulunduğu yönündeki temel sınırı vurguluyor
  • Benzetme olarak, insanlığın uçak yapmış olması insanların uçabildiği anlamına gelmez
  • Model hesaplama hakkında akıl yürütebilir ya da araçları koordine edebilir; ancak kendi başına çalıştıramıyorsa gerçek bir bilgisayar değildir

Transformer’ı bilgisayara dönüştürme yöntemi

  • Transformer mimarisinin Turing makinesini simüle edebileceğine dair teorik evrensellik çeşitli çalışmalarda gösterilmiş olsa da, teorik ifade gücü pratik çalıştırma verimliliğini garanti etmez
  • Saf teorik hesaplama modeli yerine, modern bir RAM bilgisayarı transformer’ın içine uygulanıyor ve her komut en fazla 5 token’a eşleniyor
  • Ancak daha derin sorun decoding sürecinin kendisinde yer alıyor
    • Standart autoregressive decoding, her adımda giderek uzayan tüm geçmişle etkileşime girer
    • KV caching geçmiş anahtar/değerlerin yeniden hesaplanmasını önlese de, attention maliyeti hâlâ önbellek boyutuyla orantılıdır
  • Bu sınıra çözüm olarak attention head boyutu 2D ile sınırlandırılıyor ve yürütme tarzı izler için verimli bir decoding yolu sunuluyor
    • Temel arama/güncelleme işlemleri, dizi uzunluğuna göre logaritmik zamanda yapılabiliyor
    • Bu sayede milyonlarca adımlık programlar transformer içinde çalıştırılabiliyor

Hesaplamanın anlamı — araç kullanımı vs model içi yürütme

  • Mevcut araç kullanımı yaklaşımı: Model python -c "print(3+5)" gibi kod üretir → harici yorumlayıcı çalıştırır → sonuç token akışına enjekte edilir
  • Bu sistemin yaklaşımı: WebAssembly yorumlayıcısını transformer ağırlıkları içinde uygulamak
    • WebAssembly, hızlı ve deterministik yürütme için düşük seviyeli bir komut kümesi ve C/C++ için genel amaçlı bir derleme hedefidir
    • 3 + 5 hesaplanırken model wasm komutlarını (i32.const, i32.add) üretir, ardından hızlı decoding moduna geçerek adım adım yürütme izini doğrudan oluşturur
  • Temel farklar
    • Araç kullanımı opaktır: model kontrolü devreder ve kara kutu bir yanıt alır
    • Model içi yürütme şeffaftır: tüm ara adımlar izde görünür ve model kendi decoding döngüsünün dışına çıkmaz

Sudoku demosu — doğru uzun süreli hesaplama için stres testi

  • Eğitilmiş sinir ağı yaklaşımları kolay Sudoku’larda iyi performans gösterse de zor problemlerde tamamen başarısız olur
  • Autoregressive modellerin kısıt tatmini problemlerine temelden uygun olmadığı yönünde yaygın bir açıklama bulunsa da, bu sistem tamamen autoregressive olmasına rağmen %100 doğruluk sağlıyor
    • Gerçek darboğaz, autoregressive paradigmanın kendisi değil; zor Sudoku’ların çok uzun yürütme izleri gerektirmesi ve standart attention’ın uzun bağlam üretimini pratik olmaktan çıkarmasıdır
  • Derlenmiş tam bir Sudoku çözücüsü transformer içinde çalıştırılıyor; öğrenilmiş sezgiseller değil, gerçek algoritma adım adım yürütülüyor
  • Arto Inkala’nın “dünyanın en zor Sudoku’su” 3 dakikanın altında doğru biçimde çözülüyor
  • Derlenmiş çözücü doğruysa transformer’ın yürütmesinin de doğru olduğuna dair genel bir garanti sunuluyor

Hesaplamanın kodlanma biçimi — yalnızca eklenebilen iz

  • Autoregressive transformer, kendi geçmişinin içinde yaşayan bir makineye benzetiliyor
    • Geleneksel bilgisayarlar düzenlenebilir belleği günceller, ancak transformer’da böyle bir kavram yoktur
    • Yapı; sabit bir prompt (girdi/program) ve durmadan büyüyen bir izden (üretilen token’lar) oluşur
  • Yalnızca ekleme yapılabilen defter benzetmesi
    • İlk satırlar girdi (prompt), sonraki her satır ise hesaplamanın bir sonraki adımını kaydeder
    • Önceki satırlar değiştirilemez ve her adımda yalnızca az sayıda önceki konuma başvurulabilir
  • Birçok algoritma, “her adımda sabit sayıda önceki konuma bakan yalnızca eklenebilir iz” olarak ifade edilebilir
  • Bu sistemde modelin ürettiği token’lar, sanal makinenin komut işaretçisi, bellek/yığın işlemleri, aritmetik, kontrol akışı, çıktı gibi evrilen durumunu ifade eder
  • Attention head’ler paylaşılan tek boyutlu bir dizi gibi davranır; her token’ın bir indekse değer yazıp başka bir indeksten değer okuduğu yazdıktan sonra oku primitifi sağlar
  • Attention ayrıca kümülatif toplamları (cumulative sums) da hesaplayabilir; böylece komut işaretçisi, yığın derinliği vb. delta artışlarının kümülatif toplamı olarak izlenebilir

Temel kilit açılımı: üstel ölçüde hızlı attention

  • Gerçek bilgisayarlar her komutta neredeyse sabit miktarda işle yük durumu güncellerken, standart transformer’lar t’inci decoding adımında uzunluğu t olan bir prefix ile etkileşime girer ve toplam maliyet ikinci dereceden artar
  • HullKVCache ile bu ikinci dereceden patlama çözülüyor
    • Gerçek benchmark’larda HullKVCache saniyede 31.037 token (6.747 satır/sn), standart KVCache ise saniyede 272 token (59 satır/sn) üretiyor; yaklaşık 114 kat fark
    • Adım başına Θ(t) zaman yerine, attention araması O(log t) zamanda yapılıyor
  • 2D attention’ın hızlı yolu

    • Amaç transformer’ları genel olarak hızlandırmak veya yeni bir mimari sunmak değil; vanilla transformer’da head boyutunu 2D ile sınırlayan yönetilebilir bir parametreleştirmeye odaklanmak
    • d_model = 36, n_heads = 18 ile head başına tam 2 boyut, 7 katman, standart nn.MultiheadAttention ve gated feedforward network kullanılıyor
      • Özel attention kernel’leri ya da sparse maskeler olmadan, tamamen vanilla PyTorch ile kurulmuş
    • Katman sayısı, head sayısı ve embedding boyutu istenildiği kadar büyütülebileceği için modelin tamamının küçük olması gerekmiyor
      • n_heads = d_model / 2 ile daha fazla head kullanılabiliyor
  • 2D attention’a geometrik bakış

    • Attention mekanizması: Geçmiş token’lar 2D anahtar vektörleri kⱼ ve değerler vⱼ sağlar; mevcut adım bir sorgu q oluşturur ve iç çarpımı en büyük olan anahtarın değerini döndürür (hardmax attention)
    • Bu, hesaplamalı geometrinin klasik “destek noktası (supporting point) sorgusu” ile tam olarak aynıdır: q yönü verildiğinde dışbükey zarf üzerinde o yönde en uzaktaki noktayı bulmak
    • Token üretimiyle eşzamanlı olarak dışbükey zarf veri yapısı korunarak tüm geçmiş noktalar üzerinde logaritmik zamanlı arama yapılabilir
    • Bellek/yığın işlemleri için “indeks i’ye en son yazılan değeri” sorgulamak gerekir; 2D anahtarların gerekmesi de bundandır
      • İndeks j, 2D anahtar kⱼ = (2j, -j²) olarak saklanır ve q = (i, 1) yönüyle sorgulandığında ikinci dereceden -j² terimi yalnızca tam eşleşmenin kazanmasını sağlayan bir ceza işlevi görür
    • Turing tamlığı için 2D attention yeterlidir ve bu blogda gösterildiği gibi tüm bir RAM bilgisayarı temsil edilebilir

Gelecek planları

  • Daha zengin attention mekanizmaları

    • Mevcut uygulama hardmax attention kullanıyor, ancak bu temel bir kısıt değil
    • k-sparse softmax attention ile yaklaşık çözüm mümkün: iç içe geçmiş dışbükey zarflardan en iyi k anahtar alınır ve softmax yalnızca bunlar üzerinde uygulanır; maliyet O(k + log n)
    • Geometrik hızlı yol yalnızca yürütücü yapılarla sınırlı değil; ilke olarak 2D head kullanan tüm transformer’ların decoding süresini hızlandırabilir
    • 3D head’lere de 3D dışbükey zarf üzerinden doğal bir genişleme mümkün; ancak daha yüksek boyutlarda verim hızla düşer
  • 2D head’lerle büyük ölçekli model eğitimi

    • 2D head parametreleştirmesi özünde küçük değildir — daha fazla head ve katman kullanılarak standart transformer’lara benzer toplam parametre sayısı korunabilir
    • Birden çok kullanım modu mümkün
      • Daha yavaş ve genel amaçlı modellerle birleşen özel hızlı yol
      • Tek sistem içinde hızlı/yavaş hibrit mimari
      • 2D modelin token’ları hızlıca önerip genel attention modelinin doğruladığı speculative decoding
    • Yürütme izi forward pass’in bir parçası olduğundan tüm süreç diferansiyellenebilir (differentiable); bu da onu dış araçlardan temelden farklı, daha büyük modellere doğrudan entegre edilebilecek öğrenilebilir bir hesaplama temeli hâline getiriyor
  • Programları ağırlıklara derlemek

    • Şu anda model, ağırlıklara kodlanmış yorumlayıcıyı öğreniyor; ancak ağırlık üreten derleme makinesi genişletilirse rastgele programları token dizileri olmadan doğrudan ağırlıklara derlemek mümkün olabilir
    • Böylece ağırlıkların kendisi yazılımın dağıtım hedefi (deployment target) olur; model yazılım benzeri davranışı öğrenmek yerine, derlenmiş program mantığını iç devrelerinin bir parçası olarak içerir
    • Mantık ağırlıklara derlenebiliyorsa, gradient descent model değiştirmek için tek yol olmaktan çıkar — yapı, algoritma ve garantileri ağa doğrudan yerleştiren başka bir yol ortaya çıkar
    • Nihayetinde yalnızca deneyimden öğrenen değil, kendi ağırlıklarını değiştirip genişleterek iç makinesini kendisi yeniden yazan sistemlere doğru gelişebilir
  • Yapay zeka sistemlerini yazılım gibi büyütmek

    • Modern yazılım ekosisteminin modüller, soyutlamalar ve yeniden kullanılabilir bileşenler biriktirerek gelişmesi gibi, yapay zeka sistemlerinin içinde de yeni hesaplama yeteneklerinin kademeli olarak eklenmesi mümkün olabilir
    • Yeni işlevler, tüm sistemi yeniden eğitmeden mevcut devrelere bağlanabilir
    • Geleceğin yapay zeka sistemleri yazılımı yalnızca kullanmakla kalmayıp yazılımı kendi içinde barındırarak, öğrenilmiş temsiller ile derlenmiş algoritmaları tek bir hesaplama temeli üzerinde birleştirebilir

1 yorum

 
GN⁺ 2026-03-14
Hacker News görüşleri
  • Bu, basit bir hesaplama yapma meselesinden çok daha ilginç bir yaklaşım
    Model, token sayısının logaritmasıyla orantılı dinamik attention geçişi yapabiliyor
    Böylece metinle ifade edilen register ve stack’i izleyerek program yürütmeyi taklit edebiliyor
    Eğer bir LLM bir tür “odak modu”na geçip çok hızlı token üretebilirse, çok sayıda hipotezi araştırıp ayıklayan akıl yürütme aşamasını hızlandırabilir
    Makale, bunu hızlı yol ile yavaş yolu birleştiren hibrit bir yapı ya da speculative execution modeli olarak kullanmanın mümkün olduğunu öne sürüyor

  • Başta “bunu neden yapalım ki?” diye düşünmüştüm ama şimdi buna eğitim bootstrap’i açısından bakıyorum
    Örneğin %80 doğrulukta bir uzman sistemi modele gömüp, onun çıktısını eğitim verisi olarak kullanarak doğruluğu artırabilirsiniz
    Farklı görevlerin eğitim maliyeti ne kadar düşerse, AI rekabetindeki giriş bariyerleri de o kadar düşer

    • Ama bu yaklaşım eğitim için pek uygun değil
      softmax attention’dan farklı olarak average-hard attention, key ve query açısından türevlenebilir değil
      straight-through tahminiyle düzeltilse bile backpropagation hızı artmıyor
    • Eğitmek zor olabilir ama ilginç bir ilgili çalışma olarak şu makaleye bakmaya değer
  • İnsan beyni hesaplama yeteneği bakımından o kadar da güçlü değil
    10 basamaklı sayıları çarpmak bile uzun sürer. Bu tür hesapları mantık kapıları çok daha verimli işler
    O halde LLM’in doğrudan hesaplama yapması yerine ALU benzeri harici bir modül çağırması daha iyi olmaz mı diye düşünüyorum

    • Ama gömülü bir programı modelin diğer ağırlıklarıyla bağlarsanız, sadece hesaplamanın ötesine geçip çeşitli sabit algoritmaları entegre edebilirsiniz
    • Ayrıca bu yaklaşım, modele geometrik sezgi ve uzamsal akıl yürütme yeteneği öğreten bir mekanizma olabilir
    • Denemeden bunun mümkün olup olmadığını bilemezsiniz. Deterministik hesaplamayı sinir ağının içine entegre etmek, araç çağırma overhead’ini de azaltabilir
  • Üslup AI tarafından yazılmış gibi duruyor ama ana mesaj belirsiz
    Modelin harici bir sistem yerine içeride program çalıştırmasının neden iyi olduğu, hız, backpropagation veya benchmark açısından ne kazandırdığı net değil

    • Sadece “AI yazmış gibi” diye eleştirmektense içeriğin kendisini tartışmak gerekir
      Bazıları symbolic logic’in şart olduğuna inanıyor ama bu tür denemeler basitçe ilginç bir deney olarak da görülebilir
    • Makaleye bakınca, yürütme izi ileri geçişin bir parçası olduğu için türevlenebilir olduğu ve gradyanın hesaplamanın kendisi üzerinden yayılabildiği görülüyor
      Bu, harici araç çağrılarından temelden farklı
      Ayrıca O(k + log n) karmaşıklığında decoding maliyeti var ve Sudoku gibi problemleri %100 doğrulukla çözerse bu gayet anlamlı olur
      Böyle bir yaklaşım MoE tarzında birleştirilebilir ya da WASM tabanlı VM gömme gibi farklı yorumlayıcılarla denenebilir
    • Harici araç çağrılarını kaldırmak güvenliği de artırır. Harici aracın bozulması riski ortadan kalkar
    • Asıl önemli nokta, modelin yürütme sırasında kod yazıp değiştirebilmesi. Bu, insanlardaki “aha anı”na benzer dinamik bir yürütme
    • Üsluptaki tekrarlar genel okuyucuya yönelik bir anlatım tarzı da olabilir. İnsanlar da sık sık böyle hatalar yapar
  • Modelin iç hesaplama yoluna araçları entegre etme fikri, yorumlanabilirlik açısından çok ilginç
    Sıradan bir Transformer ile böyle bir verim alınabilmesi şaşırtıcı

  • Potansiyeli var ama mevcut haliyle pek pratik görünmüyor
    Ağırlıklar ya da “compiler” araçları yayımlanmadığı için deney yapmak zor
    Yine de önceden tanımlı hesaplama primitive’lerini LLM’e gömme fikri hâlâ yararlı olabilir

    • Küçük programları Transformer ağırlıklarına hardcode etmek için ALTA incelenebilir
    • “neurosymbolic garbage” ifadesiyle tam olarak ne kastedildiğini merak ediyorum
  • Kilit cümle şu:
    “Yürütme izi ileri geçişin bir parçası olduğu için, gradyan hesaplamanın kendisi üzerinden yayılabilir”
    Yani harici araç çağrılarından farklı olarak bu, eğitilebilir hesaplama tabanlı bir yapı oluyor

    • Ama pratikte bu tamamen türevlenebilir bir yapı değil ve makale de yalnızca yaklaşık yöntemler öneriyor
      Ayrıca eğitim verisinin ya da loss function tasarımının nasıl olduğu net değil
      Yine de araç çağrılarının batch verimliliğini bozduğu düşünülürse, içsel bir hesaplama subnet’inden geçirmek büyük ölçekli verim artışı sağlayabilir
      Ama o subnet’in illa Transformer olması gerekmeyebilir; GPU için optimize edilmiş öğrenmeyen katmanlar da yeterli olabilir
  • Makale asıl önemli noktayı gizliyor
    Attention head boyutu 2 ile sınırlandığında, token’ları logaritmik zaman karmaşıklığıyla aramak ve güncellemek mümkün oluyor
    Ama bu stratejinin neden yalnızca “kod token’larına” uygulandığı belirsiz
    WASM’ın hedef alınması da verimlilik açısından soru işareti yaratıyor

    • İki boyut, RoPE ve hard-max attention kullanılarak göreli adresleme tek bir head ile uygulanabiliyor
    • Ancak makalede formüller ya da eğitim ayrıntıları yetersiz ve standart dışı terimler kullanılıyor
      Örneğin self-attention’ı “lookup table” diye tanımlamak isabetli değil
      Kod örneğinde d_model = 36, n_heads = 18 ile head başına 2D kurulmuş ama yine de durum net değil
  • Sudoku çözücüsünün Transformer ağırlıklarına nasıl compile edildiğine dair somut bir açıklama yok
    Doğrudan code-to-weight compilation mı yapıldı, yoksa eğitimle mi öğrenildi, belli değil

    • Benim yorumum, basit bir sanal makinenin ağırlıklara gömüldüğü, onun üzerinde bir WASM runtime’ının compile edildiği ve çözücünün bunun üstünde çalıştırıldığı yönünde
    • Nitekim makalede gerçekten de WASM interpreter’ının eğitildiği açıkça belirtiliyor
  • İlginç ama “neden bunu özellikle böyle yapalım?” sorusu ortada duruyor
    İnsan beyni de bir Turing makinesini simüle edebilir ama yavaştır. Bu yüzden harici araçlar kullanırız
    Model için de benzer şekilde harici araç kullanmak daha verimli olabilir diye düşünüyorum

    • Makale, Python çağrılarının overhead’ini azaltmak için WebAssembly gömmeyi öneriyor ama bu biraz 90’lardaki process vs thread tartışmasını andırıyor
      Elixir gibi bir dili gömüp daha kısa kod çalıştırmak da mümkün olabilir
    • “Hesaplama yapamayan bir sistem, hesaplamayı anlayamaz” şeklindeki felsefi iddia da ilginç
      Buradaki fikir, modelin yürütme sırasında kodu değiştirip debug etme yeteneğine sahip olabilmesi
    • Ancak makale bu olasılıkları araştırmak yerine yürütme motoru seviyesinde kalıyor
    • Madem programlar ağırlıklara compile edilecek, o zaman araç çağırma optimizasyonu daha mantıklı olabilir
    • Ayrıca, insan beynine bir hesap makinesi gömülebilse bunun daha hızlı ve verimli olacağı benzetmesi de yapılabilir