OpenAI
Αυτή η σελίδα μεταφράστηκε αυτόματα. Δείτε το πρωτότυπο άρθρο στα αγγλικά.

Χρήση του logit bias για αλλαγή της πιθανότητας token με το OpenAI API

Μάθετε πώς να χρησιμοποιείτε την παράμετρο logit bias για να τροποποιείτε τις εξόδους του μοντέλου

Τελευταία ενημέρωση: 2 days ago

Το Logit_bias είναι μια προαιρετική παράμετρος που τροποποιεί την πιθανότητα εμφάνισης συγκεκριμένων token σε μια έξοδο που δημιουργείται από μοντέλο.

Αυτή η παράμετρος δέχεται ένα αντικείμενο JSON που αντιστοιχίζει token σε μια σχετική τιμή bias από -100 (που στις περισσότερες περιπτώσεις θα εμποδίσει τη δημιουργία αυτού του token) έως 100 (αποκλειστική επιλογή του token, κάτι που αυξάνει την πιθανότητα να δημιουργηθεί). Μέτριες τιμές όπως -1 και 1 θα αλλάξουν την πιθανότητα επιλογής ενός token σε μικρότερο βαθμό.

Επειδή η παράμετρος δέχεται token και όχι κείμενο, θα χρειαστεί να χρησιμοποιήσετε ένα εργαλείο tokenizer για να μετατρέψετε το κείμενο σε αναγνωριστικά token. Ας δούμε μερικά παραδείγματα.

Παράδειγμα 1: Αφαίρεση του «time»

Αν καλέσουμε το τελικό σημείο Completions με την προτροπή «Once upon a,», η ολοκλήρωση είναι πολύ πιθανό να ξεκινήσει με « time.»

Η λέξη «time» μετατρέπεται σε token με ID 2435 και η λέξη « time» (που έχει κενό στην αρχή) μετατρέπεται σε token με ID 640. Μπορούμε να τα περάσουμε στο logit_bias με τιμή -100 ώστε να απαγορεύσουμε την εμφάνισή τους στην ολοκλήρωση, ως εξής:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Ολοκληρώνεις τις προτάσεις του χρήστη."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

Τώρα, η προτροπή «Once upon a» δημιουργεί την ολοκλήρωση «midnight dreary, while I pondered, weak and weary.»

Παρατηρήστε ότι η λέξη «time» δεν εμφανίζεται πουθενά, επειδή ουσιαστικά έχουμε απαγορεύσει αυτό το token χρησιμοποιώντας το logit_bias.

Παράδειγμα 2: Δώστε κατεύθυνση με στοχευμένες τιμές logit bias

Ας δούμε ένα ακόμη παράδειγμα, χρησιμοποιώντας μια προτροπή δημιουργίας συνταγών.

Πολλές συνταγές προτείνουν τη χρήση κατσαρόλας, αλλά ας υποθέσουμε ότι δεν έχουμε κατσαρόλα. Θα θέλουμε να αφαιρέσουμε τη λέξη pot ώστε να μη δημιουργείται ως μέρος της ολοκλήρωσής μας. Το «Pot» μετατρέπεται σε token 1787, οπότε μπορούμε να το αφαιρέσουμε από τη δημιουργία μας ορίζοντας το logit_bias όπως παρακάτω.

logit_bias={1787:-100}

Τώρα, η ολοκλήρωσή μας μπορεί να περιλαμβάνει αντί γι’ αυτό τη λέξη «saucepan». Τέλειο!

Παράδειγμα 3: Αυξήστε τις πιθανότητες εμφάνισης μιας λέξης

Ας υποθέσουμε ότι θέλουμε να αυξήσουμε την πιθανότητα εμφάνισης μιας λέξης.

Για παράδειγμα, ίσως έχουμε έναν ιστότοπο που προσφέρει συνταγές τις οποίες μπορείτε να φτιάξετε με φούρνο μικροκυμάτων, οπότε θέλουμε να βεβαιωθούμε ότι η λέξη «microwave» εμφανίζεται στη συνταγή. Το Microwave μετατρέπεται σε ID 27000. Μπορούμε να αυξήσουμε την πιθανότητα εμφάνισης αυτού του token ορίζοντας ένα θετικό logit_bias, ως εξής:

logit_bias={27000:5}

Τώρα, η ολοκλήρωσή μας είναι πιο πιθανό να περιλαμβάνει τη λέξη «microwave».

Ορίσαμε το logit_bias σε 5, καθώς διαπιστώσαμε ότι η τιμή 1 για το logit_bias συχνά δεν είχε ως αποτέλεσμα να εμφανίζεται η λέξη «microwave» στην ολοκλήρωση, ενώ υψηλότερες τιμές logit_bias, όπως το 10, είχαν ως αποτέλεσμα η λέξη « microwave» να εμφανίζεται υπερβολικά συχνά στην ολοκλήρωση.

Σας βοήθησε αυτό το άρθρο;