LLM Temperature Nedir? Rastgele Seçimi Neden Düzeltmez?
Rastgele seçim istendiğinde Gemini ve Qwen modelleri C şıkkını, 7'yi ve 42'yi kayırıyor. 0 ile 10 arasındaki temperature değerleri bunu düzeltmiyor, kodda üretilen bir sayı düzeltiyor.
Kısaca: LLM temperature, bir dil modelinin sıradaki tokeni seçerken ne kadar çeşitlilik göstereceğini belirleyen ayardır. Düşük değer çıktıyı daha tutarlı, yüksek değer daha çeşitli yapar. Ama temperature rastgele seçimi düzeltmez: Google DeepMind araştırmacılarının 2026 tarihli makalesine göre modeller "rastgele seç" denildiğinde doğru şıkkı çoğunlukla C'ye koyuyor, sayı seçerken 7 ve 42'ye yöneliyor. Çözüm, rastgeleliği kodda üretip sonucu modele vermek.
Bir yapay zeka ajanından test sorularının şıklarını karıştırmasını, A/B testinde kullanıcıları gruplara dağıtmasını ya da denetlenecek kayıtları rastgele seçmesini istemek kolay. Model istenen dağılımı doğru tarif ediyor, ama tarif ettiği şeyi yapmıyor. Temperature ayarının bunu neden düzeltmediğini Xiangming Gu ve Google DeepMind'daki ekip arkadaşlarının COLM 2026'da yayımlanan The Illusion of Stochasticity in LLMs makalesi ayrıntılı biçimde gösteriyor.
LLM temperature nedir?
#Temperature (sıcaklık), modelin her adımda sıradaki tokeni nasıl seçeceğini belirleyen ayarlardan biridir. Model her adımda olası tokenlerin her birine bir olasılık verir ve bunlardan birini seçer. Temperature düşükse seçim en olası tokenlerde toplanır, yüksekse daha az olası tokenler de seçilebilir. Tokenin ne olduğunu token nedir yazımızda anlattık.
OpenAI'ın API belgelerine göre temperature 0 ile 2 arasında bir değer alıyor. 0,8 gibi yüksek değerler çıktıyı daha rastgele, 0,2 gibi düşük değerler daha odaklı ve deterministik yapıyor. OpenAI bu ayarı ya da top_p'yi değiştirmeyi, ikisini birden değiştirmemeyi öneriyor. Top-p ve top-k da aynı seçimi sınırlayan decoding ayarları. Makale bu üçünü birlikte deniyor.
Bu yüzden temperature'ı yükseltmek, modele rastgele seçim yaptırmanın yolu gibi görünüyor. Makaledeki deneyler bunun işe yaramadığını gösteriyor.
Modeller rastgele seçerken neyi kayırıyor?
#Araştırmacılar Gemini modellerinden dört şıklı bir soru yazmalarını ve doğru yanıtı belirtmelerini istemiş. Makaleye göre kopya çekmeyi önlemek için doğru yanıtın yeri rastgele olmalı ve her şıkta eşit sıklıkta görünmeli. Gemini-2.5-Flash, Gemini-2.5-Pro ve Gemini-3.0-Pro ise doğru yanıtı belirgin biçimde C şıkkına koymuş. Bu yanlılık, sonucu tahmin edilebilir kılıyor.
Sayılarda da durum aynı. Qwen3 ve Gemini modellerinden 1.024 bağımsız çağrıyla tekdüze, Gauss ve başka dağılımlardan örnek istenmiş. İstatistik testlerinde p değerleri sıfıra çok yakın çıkmış, yani üretilen sayılar istenen dağılıma uymuyor. Modeller 7 ve 42 gibi sayıları ve aralığın ortasındaki değerleri kayırıyor. Qwen3-8B'den Qwen3-32B'ye, Gemini-2.5-Pro'dan Gemini-3.0-Pro'ya kadar test edilen modellerin hepsi bu testte başarısız. Yazarlar, temel (ön eğitimli) modellerin olasılıklarının tekdüze dağılıma çok daha yakın olduğunu, bu yüzden sonradan yapılan eğitimin (post-training) yanlılığı büyütebileceğini de not ediyor.
Temperature yükseltmek rastgele seçimi düzeltir mi?
#Düzeltmiyor. Araştırmacılar temperature değerini 0 ile 2 arasında, top-p ve top-k değerlerini de farklı ayarlarda denemiş. Tekdüze dağılımda p değerleri her ayarda sıfıra yakın kalmış. Gauss dağılımında en iyi sonuç 1,8 temperature değerinde alınmış, ama o da testi geçmeye yetmemiş. 2,5 ile 10 arasındaki çok yüksek değerlerde de sonuç başarısız, üstelik model yanıtı istenen biçimde vermekte zorlanıyor ve çok uç sayılar üretiyor.
Modeli adım adım düşündürmeden (chain-of-thought kapalı) doğrudan yanıt istemek de işe yaramıyor. Makaleye göre bu durumda yanlılık Qwen3'te daha da artıyor: 1 ile 100 arasından tekdüze seçim istendiğinde Qwen3-8B yalnızca 42'yi üretiyor.
Modele kendi kodunu yazdırmak da tek başına yetmiyor. Araç kullanabilen modeller random.randint() çağıran bir kod yazıyor, ama bu kodda çoğu zaman tohum (random seed) yok. Kodun çalıştığı ortam her seferinde aynı tohumla başlıyorsa çıktılar tekrar ediyor. Modelden tohumu kendisinin üretmesi istendiğinde ise aynı kayırma bu kez tohum seçiminde ortaya çıkıyor.
Yapay zeka ajanları için neden önemli?
#Makaledeki en açık örnek bir güvenlik oyunu. Bir ajan her istekte dört sunucudan birini denetliyor, saldırgan da ajanı izleyip en az denetlenen sunucuya saldırıyor. Ajan dört sunucuyu eşit olasılıkla seçerse saldırının başarı oranı yüzde 75'te kalıyor ve bu en iyi savunma. 1.024 çağrıda Gemini-3 Flash ile saldırgan yüzde 96,6, Gemini-3.1 Pro ve Gemini-3.5 Flash ile yüzde 99,9 başarıya ulaşıyor. Modeller en iyi stratejinin eşit seçim olduğunu söyleyebiliyor, ama davranışları yine de taraflı.
Aynı sorun günlük işlerde de karşınıza çıkar: sınav ve anket şıklarının sırası, A/B testinde grup ataması, rastgele örneklemle yapılan denetim ve simülasyon. Bu tür kararlar çoğu zaman bir yapay zeka ajanına bırakılıyor. Birden fazla ajanın birlikte çalıştığı mimarileri tek ajan mı, çok ajan mı yazımızda anlattık.
Sıra yalnızca modelin seçim yaptığı yerde değil, hakemlik yaptığı yerde de önemli. Bir dil modeli iki yanıttan hangisinin daha iyi olduğuna karar verirken önce gösterilen yanıtı kayırmaya yatkın. MT-Bench makalesinin ölçümünde Claude-v1 vakaların yüzde 75'inde ilk yanıtı seçti. Bunu nasıl düzelteceğinizi LLM as a judge yazımızda anlattık.
Çözüm: rastgeleliği kod üretsin
#Makalenin önerdiği yol basit. Rastgele sayıyı Python gibi gerçek bir rastgele sayı üretecinde üretin ve 0 ile 1 arasındaki bu sayıyı isteme ekleyin. Modeller bu sayıyı istenen dağılıma güvenilir biçimde çevirebiliyor. Bu dönüşüm tekdüze ve Gauss dağılımında, ayrıca ağırlıklı seçim ve iki tepeli dağılım gibi daha karmaşık örneklerde de işe yarıyor. Qwen3 ailesiyle yapılan testte tekdüze seçim için 1,7 milyar parametreden, Gauss için 4 milyar parametreden büyük modeller gerekiyor.
Seçim basitse daha sağlam yol, kararı tamamen koda bırakmak:
import random
secenekler = ["A", "B", "C", "D"]
# 1) En sağlamı: seçimi kod yapsın, model yalnızca sonucu kullansın.
dogru_sik = random.choice(secenekler)
istem = (
"Dört şıklı bir çoktan seçmeli soru yaz. "
f"Doğru yanıt {dogru_sik} şıkkında olsun."
)
# 2) Makaledeki yöntem: modele [0, 1) aralığında bir sayı ver,
# dönüştürmeyi model yapsın. Her çağrıda yeni bir sayı üretin.
r = random.random()
istem2 = (
f"[0, 1] aralığından örneklenmiş rastgele bir sayı: {r}. "
f"Bu sayıyı kullanarak {secenekler} kümesinden "
"tekdüze dağılımla bir seçim yap."
)
Python belgelerine göre random modülü, tohum verilmezse işletim sisteminin rastgelelik kaynağını, o yoksa sistem saatini kullanır. Aynı belge bu modülün güvenlik amaçlı kullanılmaması gerektiğini söylüyor ve bunun için secrets modülünü öneriyor. Kodla yeni başlıyorsanız Python Programlama eğitimimiz temel konuları ele alıyor. Rastgele seçim gibi kararları ajanın hangi araçla vereceğini tasarlamak ise Yapay Zeka Agent Temelleri eğitiminin konularından.
Sık sorulan sorular
#LLM temperature nedir?
#Temperature, dil modelinin sıradaki tokeni seçerken ne kadar çeşitlilik göstereceğini belirleyen ayardır. OpenAI'da değer 0 ile 2 arasında: düşük değerler çıktıyı daha odaklı ve deterministik, yüksek değerler daha rastgele yapar.
Temperature yükseltilince yanıtlar rastgele olmaz mı?
#Yanıtlar çeşitlenir ama istenen dağılıma uymaz. Makalede 0 ile 10 arasındaki temperature değerlerinin hiçbiri istatistik testleri geçmeye yetmedi.
ChatGPT ya da Gemini'den rastgele sayı istemek güvenilir mi?
#Makalede test edilen Gemini ve Qwen modelleri için güvenilir değil. Modeller 7 ve 42 gibi sayıları ve aralığın ortasını kayırıyor. Makale ChatGPT'yi kendisi test etmiyor, ama küçükten büyüğe test edilen modellerin hepsinde aynı sorun görülüyor.
Bir yapay zeka ajanında rastgele seçimi nasıl yapmalıyım?
#Seçimi kodda yapın ve sonucu ajana verin. Ajanın kendisinin seçmesi gerekiyorsa, her çağrıda Python ile üretilmiş 0 ile 1 arası bir sayı ekleyin. Makaledeki deneylerde modeller bu sayıyı istenen dağılıma doğru biçimde çevirdi.
Kaynaklar
#- Xiangming Gu, Soham De, Michalis Titsias, Larisa Markeeva, Petar Veličković ve Razvan Pascanu, The Illusion of Stochasticity in LLMs, COLM 2026: Şekil 1 (C şıkkı), Tablo 1 (güvenlik oyunu), bölüm 3.2 ve 3.3 (decoding ayarları, chain-of-thought), Tablo 5 (model boyutu).
- OpenAI, Chat Completions API başvuru belgesi: temperature parametresi.
- Python Software Foundation, random: Generate pseudo-random numbers: tohum ve güvenlik uyarısı.
- Lianmin Zheng ve arkadaşları, Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena, Tablo 2: konum yanlılığı.
