LLM'lerde Sıcaklık Nedir
Yaratıcılık denetimi olarak sıcaklık: 0=belirlen deterministik, 2=kaotik ve aradaki tüm değerler.
LLM'lerde Sıcaklık Nedir, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Prompt Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
LLM'ler Sonraki Belirteci Nasıl Seçer
Her adımda bir LLM, söz dağarcığındaki tüm belirteçler üzerinde bir olasılık dağılımı çıkarır (GPT için yaklaşık 50.000 belirteç). Model, her belirtece logit adı verilen bir puan verir — ham ve normalleştirilmemiş bir sayı. Logit ne kadar yüksekse belirteç o kadar olasıdır.
Sıcaklık, örnekleme öncesinde bu ham logitlerin olasılıklara dönüştürülme biçimini denetleyen parametredir.
Softmax İşlevi
Logitler, softmax işlevi kullanılarak olasılıklara dönüştürülür. Softmax, bir logit vektörünü alır ve toplamı 1 olan bir olasılık dağılımı çıkarır.
4 belirteçli küçük bir söz dağarcığı örneği için:
import numpy as np
# Raw logits from the model
logits = np.array([2.0, 1.0, 0.5, -1.0]) # scores for 4 tokens
# Standard softmax (temperature = 1)
def softmax(logits, temperature=1.0):
scaled = logits / temperature
exp_scaled = np.exp(scaled - np.max(scaled)) # subtract max for numerical stability
return exp_scaled / exp_scaled.sum()
probs = softmax(logits, temperature=1.0)
print('Probabilities:', np.round(probs, 3))
# [0.567, 0.208, 0.129, 0.095]
# Token 0 is most likely at 56.7%Sıcaklık = 0: Açgözlü Kod Çözme
Sıcaklık 0'a yaklaştığında softmax dağılımı çöker: En yüksek logit değerine sahip belirteç yaklaşık 1.0 olasılık alır ve diğerlerinin tümü 0'a yaklaşır. Model her zaman olasılığı en yüksek tek belirteci seçer.
Bu yönteme açgözlü kod çözme denir. Belirlenimcidir — aynı istem her zaman aynı çıktıyı üretir. Sıfır rastgelelik, sıfır yaratıcılık.
# Temperature = 0 (greedy)
probs_temp0 = softmax(logits, temperature=0.01) # near-zero
print('Probs at T=0.01:', np.round(probs_temp0, 4))
# [~1.0, ~0.0, ~0.0, ~0.0]
# In practice, temperature=0 is implemented as argmax:
def greedy_sample(logits):
return np.argmax(logits) # always returns the index of the highest logit
token_idx = greedy_sample(logits)
print(f'Selected token index: {token_idx}') # always 0Sıcaklık = 1: Standart Örnekleme
Sıcaklık = 1, ölçeklendirme uygulamadan softmax kullanır — olasılık dağılımı modelin doğal güven düzeyini yansıtır. Model bu olasılıklara göre örnekleme yapar: Olası belirteçler sık, düşük olasılıklı belirteçler ise seyrek ama bazen görünür.
Bu, çoğu konuşmaya dayalı kullanım senaryosu için varsayılandır. Tutarlılığını korurken çeşitli ve doğal çıktılar üretir.
# Temperature = 1 (standard)
probs_temp1 = softmax(logits, temperature=1.0)
print('Probs at T=1.0:', np.round(probs_temp1, 3))
# [0.567, 0.208, 0.129, 0.095]
# Sampling from this distribution:
def sample_token(probs):
vocab = ['the', 'a', 'an', 'is']
return np.random.choice(vocab, p=probs)
# Run 10 times to see variation
for _ in range(10):
print(sample_token(probs_temp1), end=' ')
# Output varies each time, but 'the' appears most oftenSıcaklık = 2: Kaotik Örnekleme
Yüksek sıcaklık (> 1), olasılık dağılımını düzleştirir — tüm belirteçlerin olasılıkları birbirine daha çok yaklaşır. Model öngörülemez ve çoğu zaman tutarsız hale gelir.
Pratikte 1.5'in üzerindeki sıcaklık nadiren kullanılır. Yaratıcı ve beklenmedik çıktılar üretebilir, ancak genellikle anlamsız metinler üretir.
# Temperature = 2 (chaotic)
probs_temp2 = softmax(logits, temperature=2.0)
print('Probs at T=2.0:', np.round(probs_temp2, 3))
# [0.385, 0.261, 0.211, 0.143]
# Much flatter — the 4th token (logit=-1.0) now has 14.3% chance
# (vs 9.5% at T=1.0)
# Visualization: compare distributions
for temp in [0.1, 0.5, 1.0, 1.5, 2.0]:
probs = softmax(logits, temperature=temp)
print(f'T={temp}: {np.round(probs, 3)}')Dağılım Keskinliğini Denetleyen Sıcaklık
Kavramsal olarak sıcaklık, dağılımın keskinliğini denetler:
- Düşük sıcaklık (0.1–0.4): Keskin tepe — model kendinden emindir, güvenli/yaygın belirteçleri seçer
- Orta sıcaklık (0.6–1.0): Doğal biçim — yaratıcılık ve tutarlılık arasında denge
- Yüksek sıcaklık (1.2–2.0): Düz dağılım — model düşük olasılıklı belirteçleri özgürce araştırır
Bunu bir yaratıcılık kadranı gibi düşünün: düşük = kesin, yüksek = maceracı.
import matplotlib
# Conceptual: what distribution shape looks like at different temps
temps = {'T=0.2 (sharp)': 0.2, 'T=1.0 (normal)': 1.0, 'T=2.0 (flat)': 2.0}
for label, temp in temps.items():
probs = softmax(logits, temp)
bar = '#' * int(probs[0] * 40)
print(f'{label}: top token = {probs[0]:.1%} |{bar}|')
# T=0.2: top token = 97.2% |########################################|
# T=1.0: top token = 56.7% |######################|
# T=2.0: top token = 38.5% |###############|Sıcaklık ve Determinizm
Önemli bir incelik: sıcaklık = 0, örneklemeyi belirlenimci hâle getirir. Sıcaklık > 0 olduğunda her çalıştırma farklı bir çıktı üretir; çünkü örnekleme rastgele bir süreçtir. Dağılım sabittir, ancak seçilen örnek değişir.
Sınamalarda yeniden üretilebilir çıktılar elde etmek için sıcaklığı her zaman = 0 olarak ayarlayın. Üretim ortamında istenen çeşitliliği elde etmek için API destekliyorsa bir tohum değeri kullanın.
import openai
client = openai.OpenAI(api_key='sk-...')
# Deterministic: temperature=0
resp1 = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'What is the capital of France?'}],
temperature=0
)
resp2 = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'What is the capital of France?'}],
temperature=0
)
print(resp1.choices[0].message.content == resp2.choices[0].message.content) # True (usually)Sıcaklık Top-p ile Nasıl Etkileşir
Sıcaklık ve top-p (çekirdek örneklemesi), örnekleme dağılımını farklı aşamalarda şekillendirir:
- Sıcaklık: softmax işleminden önce logit değerlerini ölçeklendirir — tam dağılımın şeklini değiştirir
- Top-p: softmax işleminden sonra dağılımı en yüksek top-p olasılık kütlesiyle sınırlar — yalnızca en olası belirteç kümesinden örnekleme yapar
Her ikisini birlikte kullanmak, ince ayar yapmanızı sağlar. Genel öneri: her seferinde yalnızca birini ayarlayın. İkisini aynı anda değiştirmek, etkinin öngörülmesini zorlaştırır.
# Using temperature with top_p in OpenAI API
resp = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'Write a one-line haiku about code.'}],
temperature=0.9, # moderately diverse distribution
top_p=0.95 # sample from top 95% of probability mass
)Göreve Göre Pratik Sıcaklık Değerleri
Yaygın görev türleri için hızlı başvuru:
- Bilgiye dayalı soru-cevap: 0 — doğru olması gerekir, çeşitliliğe ihtiyaç yoktur
- Kod üretimi: 0–0.2 — söz dizimi doğru olmalıdır
- Özetleme: 0.3–0.5 — bir miktar çeşitlilik kabul edilebilir
- Sohbet / konuşma: 0.7–0.9 — doğal ve çeşitli yanıtlar
- Yaratıcı yazım: 0.9–1.2 — çeşitlilik istenir
- Beyin fırtınası / fikir üretme: 1.0–1.5 — beklenmedik seçenekleri keşfedin
TEMPERATURE_PRESETS = {
'factual_qa': 0.0,
'code_generation': 0.1,
'summarization': 0.4,
'chat': 0.8,
'creative_writing': 1.1,
'brainstorming': 1.3
}
def call_with_preset(task_type, prompt):
temp = TEMPERATURE_PRESETS.get(task_type, 0.7)
return client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': prompt}],
temperature=temp
)API'de Sıcaklık
Sıcaklık, tüm büyük LLM API'leri tarafından kabul edilir. Geçerli aralık OpenAI için 0–2, Anthropic Claude için 0–1'dir. En yüksek değerin aşılması hata verir.
# OpenAI: temperature 0 to 2
client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': prompt}],
temperature=1.2 # Valid for OpenAI
)
# Anthropic Claude: temperature 0 to 1
import anthropic
claude = anthropic.Anthropic(api_key='sk-ant-...')
claude.messages.create(
model='claude-opus-4-5',
max_tokens=1024,
temperature=0.8, # Max is 1.0 for Claude
messages=[{'role': 'user', 'content': prompt}]
)Sıcaklık Yetmediğinde
Sıcaklık tek başına her zaman ihtiyaç duyduğunuz çeşitliliği veya kesinliği sağlamaz. Sıcaklık=0 hâlâ çeşitli çıktılar üretiyorsa (kayan nokta işlemlerindeki belirlenimsizlik nedeniyle bazı modellerde bu görülebilir), gerçek yeniden üretilebilirlik için seed kullanın. Yüksek sıcaklık anlamsız sonuçlar ürettiğinde, sıcaklığı daha da artırmak yerine kelime dağarcığını top-p veya top-k ile sınırlayın.
# Seed for reproducibility (OpenAI API)
resp = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': prompt}],
temperature=0,
seed=42 # Guarantees same output across calls on same model version
)
# Note: same output only guaranteed with same model version
# A model update can change outputs even with the same seedBilgi Kontrolü
Sıcaklık çok yüksek bir değere (ör. 2.0) ayarlandığında, belirteçler üzerindeki olasılık dağılımına ne olur?
Özet: LLM'lerde Sıcaklık
Sıcaklık, softmax işleminden önce logit değerlerini ölçeklendirerek belirteç örneklemesindeki rastgeleliği kontrol eder:
- T=0: açgözlü — her zaman en olası belirteci seçer, belirlenimcidir
- T=1: standart — doğal olasılık dağılımına göre örnekleme yapar
- T>1: kaotik — dağılımı düzleştirir, rastgeleliği artırır, tutarlılığı azaltır
Bilgiye dayalı ve kod görevleri için düşük, sohbet için orta, yaratıcı görevler için yüksek sıcaklık kullanın. Her seferinde yalnızca sıcaklığı veya top-p'yi ayarlayın; ikisini birden ayarlamayın. Sonraki ders: top-p çekirdek örneklemesi.
Sıkça Sorulan Sorular
“LLM'lerde Sıcaklık Nedir” dersi ücretsiz mi?
Evet — “LLM'lerde Sıcaklık Nedir” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Prompt Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
“LLM'lerde Sıcaklık Nedir” dersinde ne öğreneceğim?
Yaratıcılık denetimi olarak sıcaklık: 0=belirlen deterministik, 2=kaotik ve aradaki tüm değerler. AI Prompt Engineering ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Prompt Engineering öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Prompt Engineering, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“LLM'lerde Sıcaklık Nedir” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Prompt Engineering dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Prompt Engineering dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- LLM'lerde Sıcaklık Nedir
- Top-p Çekirdek Örnekleme
- Top-k Örnekleme
- Kullanım Alanınız İçin Parametreleri Seçme