Logit_bias е незадължителен параметър, който променя вероятността определени токени да се появят в изход, генериран от модел.
Този параметър приема JSON обект, който съпоставя токени със свързана стойност на отклонение от -100 (която в повечето случаи ще блокира генерирането на този токен) до 100 (изключителен избор на токена, което прави генерирането му по-вероятно). Умерени стойности като -1 и 1 ще променят вероятността даден токен да бъде избран в по-малка степен.
Тъй като параметърът приема токени, а не текст, ще искате да използвате инструмент за токенизиране, за да преобразувате текст в ID на токени. Нека разгледаме няколко примера.
Пример 1: Премахване на „time“
Ако извикаме крайната точка Completions с подканата „Once upon a“, завършването най-вероятно ще започне с „ time“.
Думата „time“ се токенизира до ID 2435, а думата „ time“ (която има интервал в началото) се токенизира до ID 640. Можем да ги подадем през logit_bias със стойност -100, за да забраним появата им в завършването, ето така:
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "You finish user's sentences."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)Сега подканата „Once upon a“ генерира продължението „midnight dreary, while I pondered, weak and weary.“
Обърнете внимание, че думата „time“ не се среща никъде, защото на практика забранихме този токен чрез logit_bias.
Пример 2: Насочване чрез конкретни стойности за logit bias
Нека разгледаме още един пример с подкана за генератор на рецепти.
В много рецепти се препоръчва използването на тенджери, но да предположим, че нямаме тенджера. Ще трябва да предотвратим генерирането на думата „pot“ като част от текста. На „Pot“ съответства токенът с идентификатор 1787, така че можем да изключим думата от генерирания текст, като зададем logit_bias по показания по-долу начин.
logit_bias={1787:-100}Сега нашето завършване може вместо това да включи думата „saucepan“. Перфектно!
Пример 3: Увеличаване на вероятността дадена дума да се появи
Да предположим, че искаме да увеличим вероятността дадена дума да се появи.
Например може да поддържаме сайт с рецепти, които се приготвят в микровълнова фурна, затова искаме да сме сигурни, че думата „microwave“ присъства в рецептата. На „Microwave“ съответства токенът с идентификатор 27000. Можем да увеличим вероятността този токен да се появи, като зададем положителна стойност за logit_bias по следния начин:
logit_bias={27000:5}Сега е по-вероятно генерираният текст да съдържа думата „microwave“.
Зададохме logit_bias на 5, тъй като установихме, че при стойност 1 думата „microwave“ често не се появява в генерирания текст, а при по-високи стойности на logit_bias, например 10, думата „ microwave“ се появява твърде често.
