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_gpudeğ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 kelime16384→ Yaklaşık 12.000 kelime32768→ 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 10ideal - 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ıtlar2048→ 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 20ideal
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.
