A Logit_bias egy opcionális paraméter, amely módosítja annak valószínűségét, hogy a megadott tokenek megjelennek-e egy modell által generált kimenetben.
Ez a paraméter egy JSON-objektumot fogad, amely tokeneket társít egy hozzájuk tartozó torzítási értékhez -100-tól (ami a legtöbb esetben blokkolja az adott token generálását) 100-ig (a token kizárólagos kiválasztása, ami valószínűbbé teszi a generálását). A mérsékelt értékek, például a -1 és az 1, kisebb mértékben változtatják meg annak valószínűségét, hogy egy tokent kiválaszt a rendszer.
Mivel a paraméter tokeneket, nem pedig szöveget fogad, érdemes egy tokenizáló eszközt használni a szöveg tokenazonosítókká alakításához. Nézzünk végig néhány példát.
1. példa: A „time” eltávolítása
Ha a Completions végpontot a „Once upon a” utasítással hívjuk meg, a kiegészítés nagy valószínűséggel így fog kezdődni: „ time”.
A „time” szó a 2435-ös azonosítóra tokenizálódik, a „ time” szó pedig (amelynek az elején szóköz van) a 640-es azonosítóra. Ezeket átadhatjuk a logit_bias paraméternek -100 értékkel, hogy megtiltsuk a megjelenésüket a kiegészítésben, például így:
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Befejezed a felhasználó mondatait."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)Most a „Once upon a” utasítás a következő kiegészítést generálja: „midnight dreary, while I pondered, weak and weary.”
Figyeld meg, hogy a „time” szó sehol sem található, mert a logit_bias használatával gyakorlatilag letiltottuk ezt a tokent.
2. példa: Irányadás célzott logit bias értékekkel
Nézzünk végig egy másik példát, egy receptgeneráló utasítást használva.
Sok recept edények használatát javasolja, de tegyük fel, hogy nincs edényünk. El szeretnénk távolítani a pot szót, hogy ne generálódjon a kiegészítésünk részeként. A „Pot” a 1787-es azonosítóra tokenizálódik, így eltávolíthatjuk a generálásból, ha a logit_bias értékét az alábbiak szerint állítjuk be.
logit_bias={1787:-100}Most a kiegészítésünk ehelyett tartalmazhatja a „saucepan” szót. Tökéletes!
3. példa: Egy szó megjelenési esélyének növelése
Tegyük fel, hogy növelni szeretnénk egy szó megjelenésének valószínűségét.
Tegyük fel például, hogy egy olyan webhelyet működtetünk, amely mikrohullámú sütővel elkészíthető recepteket kínál, ezért biztosak akarunk lenni abban, hogy a „microwave” szó megjelenik a receptben. A Microwave a 27000-es azonosítóra tokenizálódik. Növelhetjük annak valószínűségét, hogy ez a token megjelenjen, ha pozitív logit_bias értéket állítunk be, például így:
logit_bias={27000:5}Most a kiegészítésünk nagyobb valószínűséggel tartalmazza a „microwave” szót.
A logit_bias értékét 5-re állítottuk, mert azt tapasztaltuk, hogy a logit_bias 1-re állítása gyakran nem eredményezte a „microwave” szó megjelenését a kiegészítésben, míg a magasabb logit_bias-értékek, például a 10, túl gyakran eredményezték a „ microwave” szó megjelenését a kiegészítésben.
