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ı: 16 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}
)

Artık “Once upon a” promptu, “midnight dreary, while I pondered, weak and weary.” tamamlamasını oluşturuyor.

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

Örnek 2: Hedefli logit yanlılığı değerleriyle yönlendirme

Tarif oluşturmaya yönelik bir prompt kullanarak başka bir örneği inceleyelim.

Birçok tarifte tencere kullanılması önerilir, ancak tenceremiz olmadığını varsayalım. “pot” sözcüğünün tamamlamamızın bir parçası olarak oluşturulmasını engellemek isteriz. 'Pot' tokenleştirildiğinde 1787 değerine karşılık gelir. Bu nedenle aşağıdaki gibi bir logit_bias ayarlayarak onu oluşturma işleminden çıkarabiliriz.

logit_bias={1787:-100}

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

Örnek 3: Bir sözcüğün yer alma olasılığını artırma

Bir sözcüğün yer alma olasılığını artırmak istediğimizi varsayalım.

Örneğin, mikrodalgada hazırlayabileceğiniz tarifler sunan bir site işletiyor olabiliriz. Bu nedenle tarifte “microwave” sözcüğünün yer aldığından emin olmak istiyoruz. “Microwave” tokenleştirildiğinde 27000 kimliğine karşılık gelir. Pozitif bir logit_bias ayarlayarak bu tokenin yer alma olasılığını şöyle artırabiliriz:

logit_bias={27000:5}

Artık tamamlamamızın 'microwave' sözcüğünü içerme olasılığı daha yüksek.


logit_bias değerini 5 olarak ayarladık. Çünkü bu değeri 1 olarak ayarladığımızda “microwave” sözcüğünün genellikle tamamlamada yer almadığını, 10 gibi daha yüksek logit_bias değerlerinde ise “ microwave” sözcüğünün tamamlamada çok sık yer aldığını gördük.

Bu makale yararlı oldu mu?