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: 11 days ago

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 az „Egyszer volt egy” utasítás az „egy borús éjfélen, míg tűnődtem, gyengén és fáradtan” kiegészítést hozza létre.

Figyeljük meg, hogy az „idő” szó sehol sem szerepel, mivel ezt a tokent gyakorlatilag letiltottuk a logit_bias használatával.

2. példa: A kívánt eredmény ösztönzése célzott logiteltolási értékekkel

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

Sok recept edény használatát javasolja, de tegyük fel, hogy nincs edényünk. Azt szeretnénk, hogy az „edény” szó ne jelenjen meg a létrehozott kiegészítésben. Az „edény” tokenizálásakor kapott azonosító 1787, így az alábbi logit_bias beállítással kizárhatjuk a generált szövegből.

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 olyan webhelyet üzemeltetünk, amely mikrohullámú sütőben elkészíthető recepteket kínál, ezért biztosítani szeretnénk, hogy a receptben szerepeljen a „mikrohullámú sütő” kifejezés. A „mikrohullámú sütő” tokenizálásakor kapott azonosító 27000. Pozitív logit_bias érték beállításával növelhetjük a token megjelenésének valószínűségét, például így:

logit_bias={27000:5}

Most már nagyobb valószínűséggel szerepel a „mikrohullámú sütő” kifejezés a kiegészítésben.

A logit_bias értékét 5-re állítottuk, mert azt tapasztaltuk, hogy 1-es értéknél a „mikrohullámú sütő” gyakran nem jelent meg a kiegészítésben, míg magasabb, például 10-es logit_bias esetén a „ mikrohullámú sütő” túl gyakran szerepelt benne.

Hasznos volt ez a cikk?