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: 22 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 užklausa „Once upon a“ sugeneruoja užbaigimą „midnight dreary, while I pondered, weak and weary.“

Atkreipkite dėmesį, kad žodžio „time“ niekur nėra, nes veiksmingai uždraudėme tą žetoną naudodami logit_bias.

2 pavyzdys. Nukreipkite naudodami tikslines logit bias reikšmes

Peržvelkime dar vieną pavyzdį, naudodami receptų generatoriaus užklausą.

Daugelyje receptų siūloma naudoti puodus, bet tarkime, kad puodo neturime. Norėsime pašalinti žodį „pot“, kad jis nebūtų generuojamas kaip mūsų užbaigimo dalis. „Pot“ skaidomas į žetoną 1787, todėl galime pašalinti jį iš savo generavimo, nustatydami logit_bias taip, kaip nurodyta 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 žodis.

Pavyzdžiui, galbūt valdome svetainę, siūlančią receptus, kuriuos galima pagaminti mikrobangų krosnelėje, todėl norime būti tikri, kad recepte pasirodys žodis „microwave“. Microwave skaidomas į žetoną, kurio ID yra 27000. Galime padidinti tikimybę, kad šis žetonas pasirodys, nustatydami teigiamą logit_bias, taip:

logit_bias={27000:5}

Dabar labiau tikėtina, kad mūsų užbaigime bus žodis „microwave“.

Nustatėme logit_bias reikšmę 5, nes pastebėjome, kad nustačius logit_bias į 1 žodis „microwave“ dažnai nepasirodydavo užbaigime, o didesnės logit_bias reikšmės, pvz., 10, lėmė, kad žodis „ microwave“ užbaigime pasirodydavo pernelyg dažnai.

Ar šis straipsnis buvo naudingas?