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