LLM'lerden üretilen metinlerde sıkça karşılaşılan bir sorun, aynı kelime veya ifadelerin gereksiz yere tekrarlanmasıdır. Bu durum, özellikle yaratıcı yazma, hikaye üretimi veya uzun formlu içeriklerde akıcılığı ve çeşitliliği olumsuz etkiler. Frequency penalty ve presence penalty, bu sorunu çözmek için tasarlanmış iki güçlü parametredir. Peki bu iki ceza türü birbirinden nasıl ayrılır ve hangi durumda hangisini kullanmalısınız?
Frequency Penalty ve Presence Penalty Nedir?
Bu parametreler, modelin token üretme olasılıklarını hesaplarken daha önce kullanılmış tokenlere ceza uygulayarak tekrarı azaltır. Frequency penalty, bir tokenin metinde kaç kez geçtiğini baz alır; her geçişte ceza miktarı doğrusal olarak artar. Presence penalty ise tokenin metinde daha önce geçip geçmediğine bakar; geçtiyse sabit bir ceza uygular, kaç kez geçtiği önemli değildir.
Önemli: Frequency penalty, tekrarlayan tokenleri ağır şekilde cezalandırırken presence penalty, daha önce kullanılmış tokenlere tek bir kez ceza uygular. Bu nedenle frequency penalty, uzun metinlerde aşırı tekrarı önlemede daha katıdır.
Nasıl Çalışırlar?
Her iki parametre de modelin son katmanındaki logit değerlerine doğrudan müdahale eder. Logit, her tokenin üretilme olasılığını belirleyen ham skordur. Ceza uygulanırken bu skordan bir miktar düşülür ve softmax fonksiyonu yeniden hesaplanır. Detaylı mekanizma için LLM Çıktılarında Logit Bias ve Repetition Penalty yazımıza göz atabilirsiniz.
Frequency Penalty
Formül şu şekilde çalışır: Her token için, tokenin metinde geçme sayısı ile frequency penalty katsayısı çarpılır ve sonuç logit değerinden çıkarılır. Katsayı genellikle 0 ile 1 arasında değişir. Örneğin 0.5 değeri, her geçişte logiti 0.5 birim azaltır. Bu, nadir tokenlerin üretilme şansını artırırken sık kullanılan tokenleri baskılar.
Presence Penalty
Presence penalty ise tokenin metinde en az bir kez geçip geçmediğini kontrol eder. Geçtiyse sabit bir ceza (örneğin 0.5) uygulanır. Ne kadar sık geçtiği önemli değildir. Bu sayede model, daha önce kullanılmış tokenlerden kaçınarak yeni ve farklı ifadeler kullanmaya teşvik edilir.
Hangi Durumda Hangisini Kullanmalısınız?
Seçim, üretmek istediğiniz metnin türüne ve amacına bağlıdır. Aşağıdaki tablo karar vermenize yardımcı olacaktır:
| Parametre | Kullanım Senaryosu | Örnek |
|---|---|---|
| Frequency Penalty | Uzun formlu, sürekli tekrarın sorun olduğu metinler (örneğin makaleler, raporlar) | Bir konuyu farklı cümlelerle anlatmak |
| Presence Penalty | Yaratıcı yazma, diyalog üretimi veya çeşitliliğin ön planda olduğu kısa metinler | Şiir, hikaye veya slogan üretimi |
| İkisini Birlikte | Hem çeşitlilik hem de derinlemesine tekrarın kontrolü gerektiğinde | Uzun bir blog yazısı veya teknik doküman |
Örneğin, bir haber özeti üretirken aynı kelimelerin sürekli kullanılmasını engellemek için frequency penalty idealdir. Ancak yaratıcı bir hikaye yazarken karakterlerin aynı eylemleri tekrarlamasını önlemek için presence penalty daha uygun olabilir.
Diğer Parametrelerle Birlikte Kullanım
Bu cezaları, temperature, top-p ve diğer sampling yöntemleriyle birleştirebilirsiniz. Temperature vs Top-p (Nucleus) Sampling yazımızda belirtildiği gibi, temperature çıktının rastgeleliğini kontrol ederken frequency penalty ve presence penalty spesifik olarak tekrarı hedefler. Doğru kombinasyon, hem yaratıcı hem de tekrarsız metinler üretmenizi sağlar.
Önerilen başlangıç değerleri: Frequency penalty: 0.5; Presence penalty: 0.2. Bu değerleri projenize göre ince ayar yaparak optimize edin.
Yaygın Hatalar ve Dikkat Edilmesi Gerekenler
- Çok yüksek ceza değerleri: Cezaları çok yüksek ayarlamak, metnin anlamsız kelimeler kullanmasına veya akıcılığını kaybetmesine neden olabilir.
- Uzun metinlerde dengesizlik: Frequency penalty, metin uzadıkça birikerek aşırı cezalandırmaya yol açabilir. Uzun metinlerde daha düşük katsayılar tercih edin.
- Kısa metinlerde presence penalty: Kısa çıktılarda presence penalty neredeyse tüm tokenleri etkileyebilir, bu nedenle dikkatli kullanın.
- Diğer parametrelerle uyum: Temperature ve top-p gibi parametrelerle çakışma olabilir. Her seferinde küçük değişiklikler yaparak test edin.
Uygulama sırasında çıktıları gözlemleyerek ve ihtiyaca göre ayarlama yaparak en iyi sonucu elde edebilirsiniz. Gelişmiş kullanım için LLM Çıktılarında JSON Şeması Kullanımı rehberimizdeki yapılandırma ipuçları da faydalı olacaktır.
Sık Sorulan Sorular
Frequency penalty ve presence penalty arasındaki temel fark nedir?
Frequency penalty, bir tokenin metinde kaç kez geçtiğine göre artan bir ceza uygularken presence penalty, tokenin daha önce geçip geçmediğine bakar ve sabit bir ceza verir. Yani frequency penalty tekrar sıklığını, presence penalty ise yalnızca varlığını cezalandırır.
Hangi durumlarda frequency penalty kullanılmalıdır?
Frequency penalty, özellikle teknik dokümanlar, makaleler veya raporlar gibi uzun metinlerde aynı terimlerin sürekli tekrarını engellemek için idealdir. Kısa ve yaratıcı metinlerde aşırıya kaçmamaya dikkat edilmelidir.
Presence penalty tekrarı tamamen engeller mi?
Hayır, presence penalty sadece daha önce kullanılmış tokenlerin tekrar kullanılma olasılığını azaltır, ancak tamamen engellemez. Yüksek değerlerde (örneğin 1.0) bile nadiren tekrar görülebilir.
Bu parametreleri temperature ile birlikte kullanmak mümkün mü?
Evet, bu parametreler temperature ve top-p ile birlikte kullanılabilir. Temperature çıktının rastgeleliğini kontrol ederken, frequency ve presence penalty belirli tokenlerin tekrarını kontrol eder. Birlikte kullanıldığında daha dengeli sonuçlar alınabilir.
Varsayılan değerler nelerdir ve nasıl ayarlanmalıdır?
Çoğu LLM API'sinde varsayılan değerler 0'dır (ceza yok). Başlangıç için frequency penalty 0.5, presence penalty 0.2 önerilir. Projenize ve çıktı kalitesine göre ince ayar yaparak 0 ile 1 arasında test edin.






