OpenAI
Для перекладу цієї сторінки виконано машинний переклад. Ви можете переглянути оригінальну статтю англійською.

Використання logit bias для зміни ймовірності токена в API OpenAI

Дізнайтеся, як використовувати параметр logit bias для зміни вихідних даних моделі

Оновлено: 13 days ago

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 токенізується до ID 27000. Ми можемо підвищити ймовірність появи цього токена, задавши додатне значення logit_bias, ось так:

logit_bias={27000:5}

Тепер наше доповнення з більшою ймовірністю міститиме слово «microwave».

Ми встановили для logit_bias значення 5, оскільки виявили, що встановлення logit_bias на 1 часто не призводило до появи слова «microwave» у доповненні, тоді як вищі значення logit_bias, як-от 10, призводили до надто частої появи слова « microwave» у доповненні.

Чи була ця стаття корисною?