Logit_bias este un parametru opțional care modifică probabilitatea ca tokenurile specificate să apară într-o ieșire generată de model.
Acest parametru acceptă un obiect JSON care mapează tokenurile la o valoare de bias asociată, de la -100 (care, în majoritatea cazurilor, va bloca generarea acelui token) până la 100 (selecție exclusivă a tokenului, ceea ce îl face mai probabil să fie generat). Valorile moderate, precum -1 și 1, vor modifica într-o măsură mai mică probabilitatea ca un token să fie selectat.
Deoarece parametrul primește tokenuri, nu text, veți dori să folosiți un instrument de tokenizare pentru a converti textul în ID-uri de token. Să parcurgem câteva exemple.
Exemplul 1: eliminarea „time”
Dacă apelăm punctul final Completions cu solicitarea „Once upon a,”, completarea va începe foarte probabil cu „ time”.
Cuvântul „time” se tokenizează la ID-ul 2435, iar cuvântul „ time” (care are un spațiu la început) se tokenizează la ID-ul 640. Le putem transmite prin logit_bias cu -100 pentru a le interzice să apară în completare, astfel:
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Tu termini propozițiile utilizatorului."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)Acum, solicitarea „Once upon a” generează completarea „midnight dreary, while I pondered, weak and weary.”
Observați că termenul „time” nu apare nicăieri, deoarece am interzis efectiv acel token folosind logit_bias.
Exemplul 2: Direcționați rezultatul prin valori specifice ale biasului logit
Să parcurgem un alt exemplu, folosind o solicitare pentru un generator de rețete.
Multe rețete recomandă folosirea oalelor, dar să presupunem că nu avem nicio oală. Vom dori să împiedicăm generarea termenului „pot” în textul completat. „Pot” este tokenizat cu ID-ul 1787, așa că îl putem exclude din textul generat setând logit_bias ca mai jos.
logit_bias={1787:-100}Acum, completarea noastră ar putea include în schimb cuvântul „saucepan”. Perfect!
Exemplul 3: Creșteți șansele ca un termen să apară
Să presupunem că vrem să creștem probabilitatea ca un termen să apară.
De exemplu, poate administrăm un site cu rețete care pot fi preparate la cuptorul cu microunde, așa că vrem să ne asigurăm că termenul „microwave” apare în rețetă. Microwave este tokenizat cu ID-ul 27000. Putem crește probabilitatea ca acest token să apară setând o valoare pozitivă pentru logit_bias, astfel:
logit_bias={27000:5}Acum, este mai probabil ca textul completat să includă termenul „microwave”.
Am setat logit_bias la 5, deoarece am constatat că setarea logit_bias la 1 adesea nu făcea ca termenul „microwave” să apară în textul completat, iar valori logit_bias mai mari, precum 10, făceau ca termenul „ microwave” să apară prea des.
