LLM çıkarımında belirlenimsizlik nasıl yenilir
(thinkingmachines.ai)- 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.