OpenAI
Questa pagina è stata tradotta automaticamente. Visualizza l'articolo originale in inglese.

Usare logit bias per modificare la probabilità dei token con l’API OpenAI

Scopri come usare il parametro logit bias per modificare gli output del modello

Aggiornato: 1 hour ago

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 escluso quel token usando logit_bias.

Esempio 2: indirizzare la generazione con valori mirati di bias dei logit

Vediamo un altro esempio, usando un prompt per generare ricette.

Molte ricette suggeriscono di usare delle pentole, ma supponiamo di non averne una. Dovremo impedire che la parola «pot» venga generata nel completamento. «Pot» viene tokenizzato con l'ID 1787, quindi possiamo escluderlo dalla generazione impostando logit_bias come indicato di seguito.

logit_bias={1787:-100}

Ora il nostro completamento potrebbe invece includere la parola «saucepan». Perfetto!

Esempio 3: aumentare la probabilità che compaia una parola

Supponiamo di voler aumentare la probabilità che compaia una parola.

Ad esempio, potremmo gestire un sito che propone ricette da preparare con un forno a microonde e volerci assicurare che la parola «microwave» compaia nella ricetta. La tokenizzazione di «Microwave» restituisce l'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 completamento includa la parola «microwave».

Abbiamo impostato logit_bias su 5, perché abbiamo riscontrato che, impostandolo su 1, spesso la parola «microwave» non compariva nel completamento, mentre con valori di logit_bias più elevati, come 10, la parola « microwave» compariva troppo spesso.

Questo articolo è stato utile?