OpenAI
Ez az oldal gépi fordítással készült. Tekintsd meg az eredeti angol nyelvű cikket.

A logit bias használata a token valószínűségének módosítására az OpenAI API-val

Ismerje meg, hogyan használhatja a logit bias paramétert a modellkimenetek módosítására

Frissítve: 12 days ago

A Logit_bias egy opcionális paraméter, amely módosítja annak valószínűségét, hogy megadott tokenek megjelenjenek egy modell által generált kimenetben.

Ez a paraméter egy JSON-objektumot fogad el, amely tokeneket társít egy -100 és 100 közötti bias értékhez (-100 esetén a legtöbb esetben az adott token generálása le lesz tiltva, 100 esetén pedig a token kizárólagos kiválasztása történik, ami valószínűbbé teszi a generálását). Az olyan mérsékelt értékek, mint a -1 és az 1, kisebb mértékben változtatják meg egy token kiválasztási valószínűségét.

Mivel a paraméter tokeneket fogad, nem szöveget, érdemes egy tokenizáló eszközt használni a szöveg tokenazonosítókká alakításához. Nézzünk meg néhány példát.

1. példa: a „time” eltávolítása

Ha a Completions végpontot azzal az utasítással hívjuk meg, hogy „Once upon a,”, akkor a kiegészítés nagy valószínűséggel „ time.” kezdetű lesz.

A „time” szó a 2435 azonosítóra tokenizálódik, a „ time” szó pedig (amely szóközzel kezdődik) a 640 azonosítóra tokenizálódik. Ezeket -100 értékkel átadhatjuk a logit_biasnak, hogy megtiltsuk a megjelenésüket a kiegészítésben, í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 az „Once upon a” utasítás a „midnight dreary, while I pondered, weak and weary.” kiegészítést generálja.

Vegye észre, hogy a „time” szó sehol sem található, mert ezt a tokent a logit_bias használatával gyakorlatilag letiltottuk.

2. példa: iránymutatás célzott logit bias értékekkel

Nézzünk meg egy másik példát egy receptgeneráló utasítással.

Sok recept lábas használatát javasolja, de tegyük fel, hogy nincs lábasunk. Azt szeretnénk, hogy a modell ne generálja a pot szót a kiegészítés részeként. A „Pot” a 1787 tokenre tokenizálódik, ezért ezt eltávolíthatjuk a generálásból úgy, hogy a logit_bias értékét az alábbiak szerint állítjuk be.

logit_bias={1787:-100}

Most a kiegészítésünk tartalmazhatja helyette 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.

Például lehet, hogy egy olyan webhelyet üzemeltetünk, amely mikrohullámú sütővel elkészíthető recepteket kínál, ezért szeretnénk biztosak lenni abban, hogy a receptben megjelenik a „microwave” szó. A Microwave a 27000 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, így:

logit_bias={27000:5}

Most nagyobb valószínűséggel tartalmazza a kiegészítésünk a „microwave” szót.

A logit_bias értékét 5-re állítottuk, mert azt tapasztaltuk, hogy az 1-es logit_bias gyakran nem eredményezte a „microwave” szó megjelenését a kiegészítésben, míg a magasabb, például 10-es logit_bias értékek azt eredményezték, hogy a „ microwave” szó túl gyakran jelent meg a kiegészítésben.

Hasznos volt ez a cikk?