OpenAI
Šis puslapis buvo išverstas mašininiu būdu. Peržiūrėti originalų straipsnį anglų kalba.

„logit bias“ naudojimas žetono tikimybei keisti su OpenAI API

Sužinokite, kaip naudoti parametrą „logit bias“ modelio išvestims keisti

Atnaujinta: 18 days ago

Logit_bias yra neprivalomas parametras, keičiantis tikimybę, kad nurodyti žetonai pasirodys modelio sugeneruotoje išvestyje.

Šis parametras priima JSON objektą, kuris susieja žetonus su atitinkama poslinkio reikšme nuo -100 (tai daugeliu atvejų neleis tam žetonui būti sugeneruotam) iki 100 (išskirtinis žetono pasirinkimas, dėl kurio labiau tikėtina, kad jis bus sugeneruotas). Vidutinės reikšmės, pvz., -1 ir 1, mažiau pakeis tikimybę, kad žetonas bus pasirinktas.

Kadangi parametras priima žetonus, o ne tekstą, norėsite naudoti teksto skaidymo į žetonus įrankį, kad konvertuotumėte tekstą į žetonų ID. Peržvelkime kelis pavyzdžius.

1 pavyzdys. Pašalinkite „time“

Jei iškviesime Completions prieigos tašką su užklausa „Once upon a“, labai tikėtina, kad užbaigimas prasidės „ time“.

Žodis „time“ skaidomas į žetoną, kurio ID yra 2435, o žodis „ time“ (kurio pradžioje yra tarpas) skaidomas į žetoną, kurio ID yra 640. Galime perduoti juos per logit_bias su -100, kad uždraustume jiems pasirodyti užbaigime, taip:

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}
)

Dabar pagal užklausą „Once upon a“ sugeneruojamas tęsinys „midnight dreary, while I pondered, weak and weary.“

Atkreipkite dėmesį, kad žodžio „time“ niekur nėra, nes naudodami logit_bias iš esmės užblokavome šį žetoną.

2 pavyzdys. Valdykite rezultatą parinktomis logitų poslinkio reikšmėmis

Panagrinėkime dar vieną pavyzdį, šįkart naudodami receptų generatoriaus užklausą.

Daugelyje receptų siūloma naudoti puodus, tačiau tarkime, kad puodo neturime. Norime, kad žodis „pot“ nebūtų generuojamas kaip mūsų tęsinio dalis. Žodis „Pot“ suskaidomas į žetoną, kurio ID yra 1787, todėl galime neleisti jo generuoti nustatydami logit_bias, kaip parodyta toliau.

logit_bias={1787:-100}

Dabar mūsų užbaigime vietoj jo gali būti žodis „saucepan“. Puiku!

3 pavyzdys. Padidinkite žodžio pasirodymo tikimybę

Tarkime, norime padidinti tikimybę, kad pasirodys tam tikras žodis.

Pavyzdžiui, galbūt valdome svetainę, kurioje siūlomi mikrobangų krosnelėje pagaminamų patiekalų receptai, todėl norime užtikrinti, kad recepte būtų žodis „microwave“. Žodis „Microwave“ suskaidomas į žetoną, kurio ID yra 27000. Tikimybę, kad šis žetonas pasirodys, galime padidinti nustatydami teigiamą logit_bias reikšmę, kaip parodyta toliau:

logit_bias={27000:5}

Dabar labiau tikėtina, kad mūsų sugeneruotame tęsinyje bus žodis „microwave“.

Nustatėme logit_bias reikšmę į 5, nes pastebėjome, kad nustačius logit_bias į 1 žodis „microwave“ sugeneruotame tęsinyje dažnai nepasirodydavo, o pasirinkus didesnes logit_bias reikšmes, pavyzdžiui, 10, žodis „ microwave“ jame pasirodydavo pernelyg dažnai.

Ar šis straipsnis buvo naudingas?