Model çalıştırdığında onlarca parametre görürsün — temperature, top_p, top_k, repeat_penalty... Bunlar ne anlama geliyor? Hangisini ne zaman değiştirmelisin? Bu yazı bütün bu soruları yanıtlıyor.

Parametreler İki Gruba Ayrılır

1. Performans Parametreleri  → Hız ve donanım kullanımını etkiler
2. Yanıt Kalitesi Parametreleri → Modelin nasıl metin ürettiğini etkiler

Performans Parametreleri

num_gpu

PARAMETER num_gpu 999

Modelin kaç layer'ının GPU'ya yükleneceğini belirtir.

  • 0 → Tüm model CPU'da çalışır (çok yavaş)
  • 20 → İlk 20 layer GPU'da, kalanlar CPU'da (hybrid mod)
  • 999 → Tüm layer'ları GPU'ya yükle (en iyi performans)

999 yazdığında Ollama "mümkün olduğunca GPU'ya at" olarak yorumluyor. VRAM yetmezse otomatik olarak sığan kadarını GPU'ya alır, kalanını CPU'da çalıştırır.

Ne zaman değiştirirsin?

  • VRAM yetersizse ve hata alıyorsan num_gpu değerini elle ayarlayabilirsin (ör. num_gpu 30)
  • Tamamen CPU'da çalıştırmak istersen num_gpu 0

num_ctx

PARAMETER num_ctx 16384

Context penceresi — modelin aynı anda kaç token "görebileceğini" belirtir. Buna kısaca modelin kısa süreli belleği diyebilirsin.

  • 2048 → Yaklaşık 1.500 kelime (çok kısa)
  • 8192 → Yaklaşık 6.000 kelime
  • 16384 → Yaklaşık 12.000 kelime
  • 32768 → Yaklaşık 24.000 kelime (büyük VRAM gerekir)

Önemli: Context ne kadar büyükse o kadar fazla VRAM yer kaplar. VRAM'in büyük bölümünü "KV cache" adı verilen bu yapı için ayırman gerekir.

num_ctx 4096  → ~0.5GB KV cache
num_ctx 8192  → ~1.0GB KV cache
num_ctx 16384 → ~1.5GB KV cache
num_ctx 32768 → ~3.0GB KV cache

Ne zaman değiştirirsin?

  • Uzun kod dosyalarıyla çalışıyorsan yüksek tut (16384+)
  • VRAM hatası alıyorsan düşür
  • Kısa sohbet botları için 4096 yeterli

num_thread

PARAMETER num_thread 12

CPU'da kaç çekirdeğin kullanılacağını belirtir. GPU yoksa veya hybrid modda çalışıyorsan önemli.

  • Genel kural: Toplam çekirdek sayısı - 2 (OS için bırak)
  • 12 çekirdekli CPU için num_thread 10 ideal
  • 24 çekirdekli CPU için num_thread 20

Ne zaman değiştirirsin?

  • GPU'suz sunucularda mutlaka ayarla, varsayılan değer genellikle çok düşük kalır

num_predict

PARAMETER num_predict 2048

Modelin tek bir yanıtta üretebileceği maksimum token sayısı. Yanıt bu token sayısına ulaşınca model durur.

  • -1 → Sınırsız (dikkatli kullan, döngüye girebilir)
  • 512 → Kısa yanıtlar
  • 2048 → Orta uzunluk (önerilen)
  • 4096 → Uzun yanıtlar, kod blokları

Yanıt Kalitesi Parametreleri

Burası asıl ilginç kısım. Model bir sonraki token'ı seçerken ihtimaller listesi oluşturuyor. Bu parametreler o listenin nasıl filtreleneceğini ve seçimin nasıl yapılacağını belirliyor.


temperature

PARAMETER temperature 0.7

Modelin ne kadar "yaratıcı" ya da "tutarlı" olacağını belirler. Tüm parametreler içinde en kritik olanı.

Teknik açıklama: Token ihtimallerini yumuşatır veya keskinleştirir.

temperature 0.0 → Her seferinde aynı yanıt (tam deterministik)
temperature 0.5 → Tutarlı ama biraz çeşitli
temperature 0.7 → Dengeli (önerilen başlangıç)
temperature 1.0 → Yaratıcı ama bazen tutarsız
temperature 1.5 → Çok yaratıcı, bazen saçma
temperature 2.0 → Kaotik, anlamsız çıktılar

Kullanım senaryolarına göre:

Senaryo Önerilen Değer
Kod yazma 0.1 - 0.3
Teknik açıklama 0.3 - 0.5
Genel sohbet 0.6 - 0.8
Yaratıcı yazarlık 0.8 - 1.2
Şiir / hikaye 1.0 - 1.5

Gerçek hayat analojisi:

  • temperature 0 = Sınav kağıdı (tek doğru cevap)
  • temperature 1 = Beyin fırtınası (her fikir geçerli)

top_k

PARAMETER top_k 40

Her adımda kaç aday token'ın değerlendirileceğini belirtir.

Teknik açıklama: Model bir sonraki kelimeyi seçerken tüm kelime dağarcığını (250.000+ token) değil, en yüksek ihtimalli ilk K token'ı değerlendirir.

top_k 1   → Her zaman en ihtimalli token seçilir (temperature etkisiz)
top_k 10  → En ihtimalli 10 seçenek arasından seç
top_k 40  → En ihtimalli 40 seçenek (varsayılan, önerilen)
top_k 100 → Daha geniş seçenek havuzu

Ne zaman değiştirirsin?

  • Daha odaklı yanıtlar için düşür: top_k 10-20
  • Daha çeşitli yanıtlar için yükselt: top_k 80-100
  • Kod asistanı için: top_k 20 ideal

top_p (Nucleus Sampling)

PARAMETER top_p 0.9

Kümülatif ihtimal eşiği. top_k'ya benzer ama sabit sayı yerine ihtimal toplamına göre çalışır.

Teknik açıklama: Token'ları ihtimal sırasına dizer, ihtimaller toplamı bu değere ulaşana kadar listeye ekler.

top_p 0.5 → İhtimallerin %50'sini kapsayan token'lar
top_p 0.9 → İhtimallerin %90'ını kapsayan token'lar (önerilen)
top_p 1.0 → Tüm token'lar dahil (etkisiz)

top_k vs top_p farkı:

top_k = "En iyi 40 seçeneği al"          (sabit sayı)
top_p = "Toplamda %90 ihtimal kapanana kadar al" (değişken sayı)

Genellikle ikisi birlikte kullanılır — top_k önce büyük listeyi kesiyor, top_p sonra daha da daraltıyor.

Önerilen kombinasyonlar:

Senaryo top_k top_p
Kod asistanı 20 0.9
Genel sohbet 40 0.9
Yaratıcı yazarlık 60 0.95

repeat_penalty

PARAMETER repeat_penalty 1.1

Modelin aynı kelimeleri veya cümleleri tekrar etmesini cezalandırır.

repeat_penalty 1.0  → Ceza yok, model tekrar edebilir
repeat_penalty 1.1  → Hafif ceza (önerilen)
repeat_penalty 1.3  → Orta ceza
repeat_penalty 1.5  → Güçlü ceza
repeat_penalty 2.0  → Çok güçlü, yanıt kalitesi bozulabilir

Ne zaman yükseltirsin?

  • Model sürekli aynı cümleleri tekrar ediyorsa
  • Döngüye girip çıkamıyorsa

Dikkat: Çok yüksek değerler modelin daha önce söylediği doğru şeyleri de tekrarlamaktan kaçınmasına neden olabilir.


repeat_last_n

PARAMETER repeat_last_n 64

repeat_penalty'nin kaç token geriye bakacağını belirtir.

repeat_last_n 0   → Repeat penalty devre dışı
repeat_last_n 32  → Son 32 token kontrol edilir
repeat_last_n 64  → Son 64 token (önerilen)
repeat_last_n 128 → Son 128 token
repeat_last_n -1  → Tüm context kontrol edilir

presence_penalty

PARAMETER presence_penalty 0.5

Daha önce hiç kullanılmamış token'ları teşvik eder. repeat_penalty'den farkı: kaç kez tekrar edildiğine bakmaz, sadece daha önce kullanılıp kullanılmadığına bakar.

presence_penalty 0.0  → Etkisiz
presence_penalty 0.5  → Yeni konulara geçişi hafifçe teşvik eder
presence_penalty 1.0  → Güçlü teşvik
presence_penalty 1.5  → Çok güçlü, yanıt kopuk hissedebilir

repeat_penalty vs presence_penalty:

repeat_penalty   → "Bu kelimeyi 3 kez kullandın, artık kullanma"
presence_penalty → "Bu kelimeyi hiç kullanmadın, belki kullan"

Uzun, çeşitli yanıtlar istiyorsan ikisini birlikte kullanabilirsin.


frequency_penalty

PARAMETER frequency_penalty 0.5

Sık kullanılan token'ları cezalandırır. Ne kadar çok kullanıldıysa o kadar büyük ceza.

frequency_penalty 0.0  → Etkisiz
frequency_penalty 0.5  → Tekrar eden kelimeleri azaltır
frequency_penalty 1.0  → Güçlü ceza

presence_penalty vs frequency_penalty:

presence_penalty   → Bir kez görüldüyse sabit ceza
frequency_penalty  → Ne kadar çok görüldüyse o kadar büyük ceza

seed

PARAMETER seed 42

Rastgelelik için başlangıç değeri. Aynı seed ile aynı prompt'a her seferinde aynı yanıtı alırsın.

seed -1   → Her seferinde farklı (varsayılan)
seed 42   → Her seferinde aynı yanıt
seed 1234 → Farklı ama yine sabit yanıt

Ne zaman kullanırsın?

  • Test/debug ederken yanıtların tekrarlanabilir olmasını istiyorsan
  • Benchmark karşılaştırmalarında

stop

PARAMETER stop "<|im_end|>"
PARAMETER stop "<|endoftext|>"

Model bu string'lerden birini ürettiğinde durur. Birden fazla stop token tanımlayabilirsin.

Her model farklı stop token kullanır:

Qwen:   <|im_end|>
Llama:  </s>
Mistral: [INST]

Hızlı Referans Tablosu

Parametre Düşük Değer Yüksek Değer Öneri (Kod) Öneri (Sohbet)
temperature Deterministik Yaratıcı 0.2 0.7
top_k Odaklı Çeşitli 20 40
top_p Dar seçim Geniş seçim 0.9 0.9
repeat_penalty Tekrar var Tekrar yok 1.1 1.1
num_ctx Az bellek Çok bellek 16384 8192
num_gpu CPU ağırlıklı GPU ağırlıklı 999 999

Örnek Senaryolar

Kod Asistanı (Deterministik)

PARAMETER temperature    0.2
PARAMETER top_k          20
PARAMETER top_p          0.9
PARAMETER repeat_penalty 1.1
PARAMETER num_ctx        16384

Yaratıcı Yazarlık

PARAMETER temperature    1.0
PARAMETER top_k          80
PARAMETER top_p          0.95
PARAMETER repeat_penalty 1.2
PARAMETER presence_penalty 0.5
PARAMETER num_ctx        8192

Genel Sohbet Botu

PARAMETER temperature    0.7
PARAMETER top_k          40
PARAMETER top_p          0.9
PARAMETER repeat_penalty 1.1
PARAMETER num_ctx        8192

Hızlı / Kısa Yanıtlar

PARAMETER temperature    0.5
PARAMETER top_k          20
PARAMETER top_p          0.85
PARAMETER num_predict    512
PARAMETER num_ctx        4096

Sık Yapılan Hatalar

❌ temperature 1.5 ile kod yazmaya çalışmak
Çok yüksek temperature kod yazımında hatalara, syntax bozulmalarına yol açar.

❌ repeat_penalty 2.0 koymak
Model daha önce doğru söylediği şeyleri tekrar söylemekten kaçınır, yanıt kalitesi düşer.

❌ top_k 1 kullanmak
Temperature'ı sıfırla her seferinde aynı yanıtı alırsın, ama yanıt çeşitliliği tamamen yok olur.

❌ num_ctx'i gereğinden büyük tutmak
VRAM'in büyük bölümünü boşa KV cache'e ayırırsın, GPU layer sayısı düşer.


Bu gönderiyi paylaş