Το Logit_bias είναι μια προαιρετική παράμετρος που τροποποιεί την πιθανότητα εμφάνισης συγκεκριμένων token σε μια έξοδο που δημιουργείται από μοντέλο.
Αυτή η παράμετρος δέχεται ένα αντικείμενο JSON που αντιστοιχίζει token σε μια σχετική τιμή μεροληψίας από -100 (η οποία στις περισσότερες περιπτώσεις θα εμποδίσει τη δημιουργία αυτού του token) έως 100 (αποκλειστική επιλογή του token, που το καθιστά πιο πιθανό να δημιουργηθεί). Μέτριες τιμές, όπως -1 και 1, θα αλλάξουν την πιθανότητα επιλογής ενός token σε μικρότερο βαθμό.
Επειδή η παράμετρος λαμβάνει token και όχι κείμενο, θα πρέπει να χρησιμοποιήσετε ένα εργαλείο tokenizer για να μετατρέψετε το κείμενο σε ID 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 με ID 1787, επομένως μπορούμε να το αφαιρέσουμε από τη δημιουργία μας ορίζοντας το logit_bias όπως παρακάτω.
logit_bias={1787:-100}Τώρα, η συμπλήρωσή μας μπορεί να περιλαμβάνει αντ’ αυτού τη λέξη «saucepan». Τέλεια!
Παράδειγμα 3: Αύξηση των πιθανοτήτων εμφάνισης μιας λέξης
Ας υποθέσουμε ότι θέλουμε να αυξήσουμε την πιθανότητα εμφάνισης μιας λέξης.
Για παράδειγμα, ίσως λειτουργούμε έναν ιστότοπο που προσφέρει συνταγές τις οποίες μπορείτε να φτιάξετε με φούρνο μικροκυμάτων, επομένως θέλουμε να βεβαιωθούμε ότι η λέξη «microwave» εμφανίζεται στη συνταγή. Το «Microwave» μετατρέπεται σε token με ID 27000. Μπορούμε να αυξήσουμε την πιθανότητα να εμφανιστεί αυτό το token ορίζοντας ένα θετικό logit_bias, ως εξής:
logit_bias={27000:5}Τώρα, η συμπλήρωσή μας είναι πιο πιθανό να περιλαμβάνει τη λέξη «microwave».
Ορίσαμε το logit_bias σε 5, καθώς διαπιστώσαμε ότι η ρύθμιση του logit_bias σε 1 συχνά δεν είχε ως αποτέλεσμα να εμφανιστεί η λέξη «microwave» στη συμπλήρωση, ενώ υψηλότερες τιμές logit_bias, όπως 10, είχαν ως αποτέλεσμα να εμφανίζεται πολύ συχνά η λέξη « microwave» στη συμπλήρωση.
