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

Usare il 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: 6 days ago

Logit_bias è un parametro facoltativo che modifica la probabilità che determinati token compaiano in un output generato dal modello.

Questo parametro accetta un oggetto JSON che mappa i token a un valore di bias associato da -100 (che nella maggior parte dei casi impedirà la generazione di quel token) a 100 (selezione esclusiva del token, che lo rende più probabile da generare). Valori moderati come -1 e 1 cambieranno la probabilità che un token venga selezionato in misura minore.

Poiché il parametro accetta token, non testo, ti conviene usare uno strumento di tokenizzazione per convertire il testo in ID token. Vediamo qualche esempio.

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 con l’ID 2435 e la parola “ time” (che ha uno spazio all’inizio) viene tokenizzata con l’ID 640. Possiamo passarli a logit_bias con -100 per impedirne la comparsa nel completamento, così:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Completi le frasi dell’utente."},
"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 si trova da nessuna parte, perché abbiamo di fatto bloccato quel token usando logit_bias.

Esempio 2: Dare indicazioni con valori di logit bias mirati

Vediamo un altro esempio, usando un prompt per generare una ricetta.

Molte ricette suggeriscono di usare pentole, ma supponiamo di non avere una pentola. Vogliamo impedire che la parola pot venga generata come parte del completamento. 'Pot' viene tokenizzata in 1787, quindi possiamo rimuoverla dalla generazione impostando logit_bias come sotto.

logit_bias={1787:-100}

Ora, il completamento potrebbe includere invece la parola “saucepan”. Perfetto!

Esempio 3: Aumentare le probabilità che una parola compaia

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

Per esempio, magari gestiamo un sito che offre ricette che puoi preparare con un microonde, quindi vogliamo assicurarci che la parola “microwave” compaia nella ricetta. Microwave viene tokenizzata con l’ID 27000. Possiamo aumentare la probabilità che questo token compaia impostando un logit_bias positivo, così:

logit_bias={27000:5}

Ora, il completamento ha più probabilità di includere la parola 'microwave'.

Abbiamo impostato logit_bias a 5, perché abbiamo notato che impostare logit_bias a 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.

Questo articolo è stato utile?