OpenAI
Bu sayfanın çevirisi otomatik olarak yapılmıştır. Orijinal İngilizce makaleyi görüntüleyin.

OpenAI API ile token olasılığını değiştirmek için logit bias kullanımı

Model çıktısını değiştirmek için logit bias parametresini nasıl kullanacağınızı öğrenin

Güncellenme zamanı: 2 days ago

Logit_bias, belirtilen token’ların model tarafından oluşturulan bir çıktıda görünme olasılığını değiştiren isteğe bağlı bir parametredir.

Bu parametre, token’ları -100’den (çoğu durumda o token’ın üretilmesini engeller) 100’e (token’ın özel seçimi; üretilme olasılığını artırır) kadar ilişkili bir bias değerine eşleyen bir JSON nesnesi kabul eder. -1 ve 1 gibi orta düzey değerler, bir token’ın seçilme olasılığını daha küçük ölçüde değiştirir.

Parametre metin değil token aldığından, metni token ID’lerine dönüştürmek için bir tokenizer aracı kullanmanız gerekir. Birkaç örnek üzerinden ilerleyelim.

Örnek 1: “time” sözcüğünü kaldırma

Completions uç noktasını “Once upon a,” komutuyla çağırırsak, tamamlamanın büyük olasılıkla “ time.” ile başlaması beklenir.

“time” sözcüğü 2435 ID’sine, “ time” sözcüğü (başında bir boşluk vardır) ise 640 ID’sine tokenize edilir. Bunların tamamlamada görünmesini engellemek için -100 değeriyle logit_bias üzerinden geçirebiliriz; şöyle:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Kullanıcının cümlelerini tamamlarsın."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

Şimdi “Once upon a” komutu “midnight dreary, while I pondered, weak and weary.” tamamlamasını üretir.

“time” sözcüğünün hiçbir yerde bulunmadığına dikkat edin; çünkü logit_bias kullanarak bu token’ı etkili biçimde yasakladık.

Örnek 2: Hedeflenmiş logit bias değerleriyle yön verme

Bir tarif oluşturucu komutu kullanarak başka bir örneğe bakalım.

Birçok tarif tencere kullanmayı önerir, ancak bir tenceremiz olmadığını varsayalım. Tamamlamamızın bir parçası olarak pot sözcüğünün üretilmesini kaldırmak isteyeceğiz. “Pot” 1787’ye tokenize edilir; dolayısıyla logit_bias değerimizi aşağıdaki gibi ayarlayarak bunu üretimimizden kaldırabiliriz.

logit_bias={1787:-100}

Şimdi, tamamlamamız bunun yerine “saucepan” sözcüğünü içerebilir. Mükemmel!

Örnek 3: Bir sözcüğün görünme olasılığını artırma

Bir sözcüğün görünme olasılığını artırmak istediğimizi varsayalım.

Örneğin, mikrodalgayla yapabileceğiniz tarifler sunan bir site işletiyor olabiliriz; bu yüzden tarifte “microwave” sözcüğünün göründüğünden emin olmak isteriz. Microwave, 27000 ID’sine tokenize edilir. Pozitif bir logit_bias ayarlayarak bu token’ın görünme olasılığını artırabiliriz; şöyle:

logit_bias={27000:5}

Şimdi, tamamlamamızın “microwave” sözcüğünü içerme olasılığı daha yüksektir.

logit_bias değerini 5 olarak ayarladık; çünkü logit_bias değerini 1’e ayarlamanın çoğu zaman tamamlamada “microwave” sözcüğünün görünmesini sağlamadığını, 10 gibi daha yüksek logit_bias değerlerinin ise “ microwave” sözcüğünün tamamlamada çok sık görünmesine yol açtığını gördük.

Bu makale yararlı oldu mu?