2 puan yazan GN⁺ 2025-09-12 | Henüz yorum yok. | WhatsApp'ta paylaş
  • LLM (büyük dil modeli) çıkarımında, aynı girdi ve koşullarda bile sonuçların farklı çıkmasına yol açan belirlenimsizlik (nondeterminism) sorunu ortaya çıkar
  • Geleneksel olarak eşzamanlılık (concurrency) ve kayan nokta (floating-point) işlemlerinin birleşme özelliği taşımaması (non-associativity) belirlenimsizliğin başlıca nedenleri olarak görülüyordu
  • Gerçek belirleyici neden, batch boyutu (batch size) değişimine bağlı olarak kernel’in (hesaplama kodu) içindeki işlem sırasının değişmesidir
  • Kernel içindeki tüm işlemler batch değişmezliği (batch invariance) taşıyacak şekilde uygulanırsa tam yeniden üretilebilirlik (reproducibility) garanti edilebilir
  • Veri paralel işlemler, split reduction, sabit boyutlu split stratejisi gibi yöntemlerle başlıca işlemler (RMSNorm, matmul, attention) için batch değişmez kernel’ler üretmek mümkündür

Giriş ve sorunun özeti

  • Bilimsel ilerlemenin temel unsurlarından biri olan yeniden üretilebilirlik (reproducibility), LLM (büyük dil modeli) çıkarımında iyi korunmuyor
  • ChatGPT’ye aynı soru birkaç kez sorulduğunda birbirinden farklı yanıtlar üretilmesi sık görülür
  • Bunun nedeni, LLM’de sonuç üretiminin sampling sürecinde olasılık dağılımına dayalı olasılıksal seçim ile yapılmasıdır
  • Ancak temperature 0 olarak ayarlansa bile pratikte LLM API’leri mutlaka deterministik değildir; yani aynı girdi için sonuç her zaman aynı olmaz
  • Açık kaynak çıkarım kütüphanelerinde (vLLM, SGLang vb.) ve kendi donanımınızda çalıştırıldığında da belirlenimsizlik sorunu vardır

Mevcut hipotezler ve sınırları

  • Yaygın kabul gören hipotez: eşzamanlılık + kayan noktanın birleşmezliği nedeniyle belirlenimsizlik ortaya çıkıyor
    • GPU’daki kayan nokta işlemleri, işlem sırasına ve thread’lerin bitiş sırasına göre sonuçları çok küçük farklarla değiştirebilir
  • Ancak gerçekte aynı veri üzerinde aynı şekilde matris çarpımı tekrarlandığında her zaman aynı (bw=bitwise equal) sonuç elde edilir
  • Gerçek nedeni anlamak için daha derin bir analiz gerekir

LLM çıkarımındaki belirlenimsizliğin nedenine derinlemesine bakış

Kayan nokta birleşmezliğinin özü

  • Kayan nokta işlemleri için (a+b)+c ≠ a+(b+c) ilişkisi geçerlidir
  • Farklı büyüklükteki (exponent) değerler birlikte işlendiğinde hassasiyet kaybı ve bilgi kaybı yaşanır; işlem sırasına göre sonuç değişir
  • İşlem sırası değişebildiği için toplamlar rastgele biçimde tekrar tekrar yapıldığında farklı sonuçlar ortaya çıkar; bu durum deneysel olarak da doğrulanmıştır

Kernel içindeki işlem sırası değişimi ve eşzamanlılık

  • Genellikle belirlenimsizliğin ana nedeni olarak atomic add gibi işlemlerdeki eşzamanlılık sorunları gösterilir
  • Ancak LLM çıkarımında kullanılan kernel’lerin çoğu, özellikle forward pass, atomic add olmadan da çalışır
  • Uygun paralel stratejiler ve split (reduction) ile aynı işlem sırası korunabilir

Asıl kritik neden: "batch değişmezliği (batch invariance)" eksikliği

  • Tekil kernel’ler, girdi aynıysa her zaman aynı sonucu döndürür (run-to-run deterministic)
  • Ancak birden çok kullanıcının eşzamanlı isteği nedeniyle batch boyutu belirlenimsiz biçimde değiştiğinden, her bir istek için pratikte sonuç sabit kalmaz
  • Batch boyutuna göre içeride işlemler farklı biçimde bölünür veya birleştirilir; bu da belirlenimsizliğe yol açar
  • Yani asıl neden, sunucu yükü ve paralellik düzeyinin (batch size) belirlenimsiz olmasıdır

Batch değişmez kernel tasarımı ve temel işlem örnekleri

RMSNorm

  • Veri paralelleştirme (data-parallel) stratejisi uygulanır: her batch öğesi bağımsız olarak tek bir çekirdek tarafından işlenir
  • Batch boyutu büyük olduğunda yeterli paralellik korunur; dolayısıyla paralel strateji sabit kalır ve batch değişmezliği sağlanır
  • Batch boyutu çok küçük olduğunda split reduction gibi alternatif stratejiler kullanılır; bu durumda batch değişmezliğinin bir kısmından ödün verilir

Matris çarpımı (matmul)

  • Tile bazlı paralelleştirme ile veri paralel stratejisi kullanılır
  • Tensor Core kullanımını optimize etmek için 2D tile bölmesi gerekir; çok küçük batch’lerde split-K gibi özel stratejilere ihtiyaç duyulur
  • split-K stratejisi kullanıldığında batch değişmezliği bozulabilir
  • Bir miktar performanstan vazgeçilse bile aynı kernel yapılandırması zorlanarak sabit ve yeniden üretilebilir bir işlem sırası elde edilebilir

Attention

  • FlashAttention2 gibi yapılarda query yönünde paralelleştirme ve Key/Value eşzamanlı reduction stratejileriyle batch değişmezliği sağlanır
  • Batch boyutu ve dizi bölme şekli (chunked prefill, prefix caching vb.) reduction sırasını değiştirirse değişmezlik bozulur
  • split-KV (FlashDecoding) gibi split-reduction stratejilerinde split boyutu sabitlenerek (fixed split-size) işlem sırası aynı tutulur
  • İç işleyişte key/value cache ile yeni token’lar ayrı ayrı ele alınmamalı; tüm işlemlerde key/value yerleşimi tutarlı kalmalıdır

Uygulama

  • vLLM ve torch.Library kullanılarak batch-invariant kernel uygulayan deterministik bir çıkarım demosu sunuluyor
  • İlgili işlemler için ikame kernel’ler GitHub deposunda incelenebilir: thinking-machines-lab/batch-invariant-ops

Deneyler ve performans

Belirlenimsizliği ölçen deney

  • Qwen/Qwen3-235B-A22B-Instruct-2507 modeliyle temperature 0 koşulunda aynı istem (“Tell me about Richard Feynman”) 1000 kez üretildi
  • 80 farklı tamamlama oluştu; yani aynı istemde belirlenimsizlik gözlendi
  • İlk 102 token’a kadar çıktı aynı kaldı, ilk ayrışma 103. token’da oldu (“Queens, New York” vs “New York City”)
  • Batch değişmez kernel kullanıldığında 1000 denemenin tamamında aynı sonuç elde edildi ve tam yeniden üretilebilirlik sağlandı

Performans değerlendirmesi

  • Tek GPU üzerinde Qwen-3-8B çalıştırılarak, uzunluğu 90~110 arasında değişen 1000 dizi isteği test edildi
    • vLLM varsayılan: 26 saniye
    • optimize edilmemiş deterministic vLLM: 55 saniye
    • iyileştirilmiş attention kernel uygulandığında: 42 saniye
  • Optimizasyon eksik olsa da pratikte kullanılabilir bir performans düzeyi korunuyor

On-policy RL açısından değeri

  • Daha önce training ile inference arasındaki küçük sayısal farklar nedeniyle on-policy RL tam olarak uygulanamıyordu
  • Deterministik çıkarım mümkün olduğunda sampling ve training bitwise identical hale getirilebilir ve gerçek bir on-policy RL uygulanabilir
  • KL-divergence, reward gibi başlıca metric’lerde tam olarak eşleşen sonuçlar doğrulandı

Sonuç

  • LLM çıkarım sistemlerinde belirlenimsizlik ve sayısal hatalar kolayca göz ardı edilebilir; ancak bu sorunun temel nedeni olan batch değişmezliği eksikliği anlaşılır ve giderilirse tam yeniden üretilebilirlik ve determinizm elde edilebilir
  • Bu çalışma, LLM çıkarımındaki belirlenimsizlik sorununu çözmeye yönelik yolu ortaya koyarak geliştiricilerin kendi sistemlerinde tam yeniden üretilebilirlik sağlamasına yardımcı oluyor

Atıf bilgisi

  • Bu çalışmaya atıf yaparken aşağıdaki bilgileri kullanın
He, Horace and Thinking Machines Lab, "Defeating Nondeterminism in LLM Inference", 
Thinking Machines Lab: Connectionism, Sep 2025.

veya

@article{he2025nondeterminism,
  author = {Horace He and Thinking Machines Lab},
  title = {Defeating Nondeterminism in LLM Inference},
  journal = {Thinking Machines Lab: Connectionism},
  year = {2025},
  note = {https://thinkingmachines.ai/blog/…},
  doi = {10.64434/tml.20250910}
}

Henüz yorum yok.

Henüz yorum yok.