Logit_bias è un parametro facoltativo che modifica la probabilità che token specificati compaiano in un output generato dal modello.
Questo parametro accetta un oggetto JSON che associa i token a un valore di bias compreso tra -100 (che nella maggior parte dei casi impedirà la generazione di quel token) e 100 (selezione esclusiva del token, che rende più probabile che venga generato). Valori moderati come -1 e 1 modificheranno in misura minore la probabilità che un token venga selezionato.
Poiché il parametro accetta token, non testo, ti conviene usare uno strumento di tokenizzazione per convertire il testo in ID di token. Vediamo alcuni esempi.
Esempio 1: rimuovere «time»
Se chiamiamo l’endpoint Completions con il prompt «Once upon a», è molto probabile che il completamento inizi con « time».
La parola «time» viene tokenizzata nell’ID 2435 e la parola « time» (che ha uno spazio all’inizio) viene tokenizzata nell’ID 640. Possiamo passarle a logit_bias con -100 per impedirne la comparsa nel completamento, in questo modo:
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}
)Ora il prompt «Once upon a» genera il completamento «midnight dreary, while I pondered, weak and weary».
Nota che la parola «time» non compare da nessuna parte, perché abbiamo di fatto vietato quel token usando logit_bias.
Esempio 2: orientare l’output con valori mirati di logit bias
Vediamo un altro esempio, usando un prompt per generare ricette.
Molte ricette suggeriscono di usare pentole, ma supponiamo di non avere una pot. Vogliamo evitare che la parola pot venga generata come parte del nostro completamento. «Pot» viene tokenizzata in 1787, quindi possiamo rimuoverla dalla nostra generazione impostando logit_bias come di seguito.
logit_bias={1787:-100}Ora il nostro completamento potrebbe invece includere la parola «saucepan». Perfetto!
Esempio 3: aumentare le probabilità che una parola compaia
Supponiamo di voler aumentare la probabilità che una parola compaia.
Ad esempio, potremmo gestire un sito che offre ricette da preparare con un microwave, quindi vogliamo assicurarci che la parola «microwave» compaia nella ricetta. Microwave viene tokenizzato nell’ID 27000. Possiamo aumentare la probabilità che questo token compaia impostando un logit_bias positivo, in questo modo:
logit_bias={27000:5}Ora è più probabile che il nostro completamento includa la parola «microwave».
Abbiamo impostato logit_bias su 5, poiché abbiamo visto che impostare logit_bias su 1 spesso non faceva comparire la parola «microwave» nel completamento, mentre valori di logit_bias più alti, come 10, facevano comparire la parola « microwave» nel completamento troppo spesso.
