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

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

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

Оновлено: 10 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» відповідає токен з 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» з’являлося надто часто.

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