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

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

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

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

Το 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 με αναγνωριστικό 1787, επομένως μπορούμε να το αποκλείσουμε από το παραγόμενο κείμενο ορίζοντας το logit_bias όπως παρακάτω.

logit_bias={1787:-100}

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

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

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

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

logit_bias={27000:5}

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

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

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