Skip to content

Sampling Parametreleri: Temperature, Top-p, Top-k, Penalty

Aynı prompt'tan farklı çıktılar nasıl üretilir? Temperature, top-p, top-k, frequency/presence penalty parametrelerinin canlı kıyaslamalı incelemesi.

Şükrü Yusuf KAYA
13 min read
Beginner

Sampling Parametreleri#

LLM, her adımda olasılık dağılımı üretir. Bu dağılımdan nasıl seçim yapılacağını belirleyen parametrelere "sampling parametreleri" denir.
Aynı prompt + aynı model + aynı seed = farklı sampling parametreleri = farklı çıktı.

1. Temperature (T)#

En önemli parametre. Olasılık dağılımını sivrileştirir veya düzleştirir.

T = 0 (Deterministik)#

Her adımda en olası token seçilir.
"2+2 = " → "4" (her zaman)
Kullan: Veri çıkarma, sınıflandırma, JSON üretimi, kod, matematik. Tutarlılık şart olduğunda.

T = 1.0 (Doğal)#

Olasılıklara göre rastgele seçim.
"Bir varmış bir yokmuş..." → her seferinde farklı hikâye
Kullan: Yaratıcı yazım, beyin fırtınası, çeşitlilik istediğinde.
T = 1.5+: Çoğunlukla saçmalık.

2. Top-p (Nucleus Sampling)#

Olasılıkları yüksekten düşüğe sırala, kümülatif olasılığı p'ye ulaşana kadar olan tokenları al, geri kalanı dışla.
text
Sözlükteki dağılım (p=0.9 ile):
"iyi" → 0.40 ─┐
"harika" → 0.30 │ Kümülatif: 0.70
"muhteşem" → 0.15 │ Kümülatif: 0.85
"süper" → 0.08 │ Kümülatif: 0.93 ✓ kesim
"fena değil" → 0.04 ✗ atılır
"kötü" → 0.02 ✗ atılır
...
 
Sadece ilk 4'ten örnek alınır.
Top-p (nucleus) sampling örneği
Pratik: Çoğu vendor için temperature ayarlamak yeterli. Top-p'yi 1.0'da bırak (varsayılan). İkisini birden değiştirmek karmaşıklaştırır.

3. Top-k#

En yüksek olasılıklı k tokendan başkasını dışla.
  • top-k = 1 → temperature=0 ile aynı (greedy)
  • top-k = 50 → en olası 50 tokendan rastgele
Top-p genelde daha iyi, çünkü dağılımın şekline uyum sağlar (top-k sabit sayı kullanır).

4. Frequency Penalty & Presence Penalty (sadece OpenAI)#

Frequency Penalty: Sıkça kullanılan tokenları cezalandırır → tekrarı azaltır.
Presence Penalty: Daha önce kullanılmış tokenları cezalandırır → çeşitlilik artırır.
Değer aralığı: -2.0 ile 2.0. Genelde 0.3-0.7 arası faydalı.
python
# Aynı prompt, 4 farklı temperature
# Yaratıcılık vs tutarlılık trade-off'unu gör.
import os
from anthropic import Anthropic
 
client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
 
prompt = "Bir Türk kahvesi reklamı için 1 cümlelik slogan üret."
 
for T in [0.0, 0.3, 0.7, 1.0]:
print(f"\n=== Temperature = {T} ===")
for run in range(3):
r = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=80,
temperature=T,
messages=[{"role": "user", "content": prompt}],
)
print(f" Run {run+1}: {r.content[0].text.strip()}")
 
Aynı prompt 4 farklı T ile, her T için 3 kez çalıştırıldı. Çeşitliliği gözlemle.

Görev → Parametre Önerisi#

Görev → Temperature#

GörevT
JSON ekstraksiyonu0.0
Sınıflandırma0.0
Kod üretimi0.0 - 0.2
Matematik / mantık0.0
Soru cevap (faktüel)0.0 - 0.3
Özetleme0.3 - 0.5
E-mail yazımı0.5 - 0.7
Yaratıcı yazım0.7 - 1.0
Brainstorm / fikir üretimi0.9 - 1.2

Quick Tips#

🟢 Şüphedeysen T=0 ile başla 🟢 Production'da çoğunluk T=0 🟢 Varyasyon istersen aynı prompt'u N kez çağır (T=0.7), sonra rerank 🔴 Hiçbir zaman T > 1.5 kullanma (gibberish) 🔴 Aynı anda hem T hem top-p oynatma
Reasoning modelleri (Claude thinking, o1) farklı: Bu modellerde temperature parametresi etkisiz veya kısıtlı. "Düşünce" deterministiktir; sadece final cevap stochastic. Bu modelleri kullanırken eski sezgilerin geçersiz olabilir.

Pekiştir: Boşluk Doldurma#

Boşluk doldur · text
Senaryo: Bir banka müşterisinin kredi başvurusu açıklamasından risk skoru üreten sistem.

Bu görev için optimum temperature: T = 
Çünkü bu görev türü  kategorisindedir.
Sonuçların  olması gerekir.

Frequently Asked Questions

Çünkü vendor'lar batching, GPU non-determinism ve başka faktörler sebebiyle T=0'da bile %100 deterministik olamıyor. Tam reprodüksiyon için seed parametresi kullan (vendor destekliyorsa).

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

Related Content