OpenAI
Тази страница е машинно преведена. Вижте оригиналната статия на английски език.

Използване на logit bias за промяна на вероятността на токени с OpenAI API

Научете как да използвате параметъра logit bias, за да променяте изходите на модела

Актуализирано: 17 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“ съответства токенът с идентификатор 27000. Можем да увеличим вероятността този токен да се появи, като зададем положителна стойност за logit_bias по следния начин:

logit_bias={27000:5}

Сега е по-вероятно генерираният текст да съдържа думата „microwave“.

Зададохме logit_bias на 5, тъй като установихме, че при стойност 1 думата „microwave“ често не се появява в генерирания текст, а при по-високи стойности на logit_bias, например 10, думата „ microwave“ се появява твърде често.

Беше ли Ви полезна тази статия?