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» відповідає токен з ID 1787, тож ми можемо вилучити його з генерації, задавши для logit_bias наведене нижче значення.
logit_bias={1787:-100}Тепер наше доповнення натомість може містити слово «saucepan». Чудово!
Приклад 3. Підвищення ймовірності появи слова
Припустімо, ми хочемо підвищити ймовірність появи певного слова.
Наприклад, у нас може бути сайт із рецептами страв, які можна приготувати в мікрохвильовій печі, тому ми хочемо, щоб у рецепті обов’язково з’являлося слово «microwave». Слову «Microwave» відповідає токен з ID 27000. Ми можемо підвищити ймовірність появи цього токена, задавши додатне значення logit_bias, як показано нижче:
logit_bias={27000:5}Тепер імовірність появи слова «microwave» у нашому продовженні вища.
Ми задали для logit_bias значення 5, оскільки за значення 1 слово «microwave» часто не з’являлося в продовженні, а за вищих значень, як-от 10, слово « microwave» з’являлося надто часто.
