Μετάβαση στο περιεχόμενο

Δωρεάν Μετρητής Tokens για GPT-4, ChatGPT & AI Μοντέλα

Ακριβής μετρητής tokens με χρήση της βιβλιοθήκης tiktoken της OpenAI. Μετρήστε tokens για μοντέλα GPT-4, ChatGPT και GPT-3. Διαχειριστείτε το κόστος API και βελτιστοποιήστε τα AI prompts άμεσα.

Μετρητής Διακριτικών

Κωδικοποίηση

Μη έγκυρη είσοδος

Υπολογιστής φόρτωσης...
📚

Τεκμηρίωση

Τι είναι ο μετρητής token;

Ο μετρητής token υπολογίζει σε πόσα token διασπάται ένα τμήμα κειμένου όταν το διαβάζει ένα γλωσσικό μοντέλο τεχνητής νοημοσύνης. Τα token είναι τα μικρά τμήματα κειμένου — ολόκληρες λέξεις, μέρη λέξεων ή σημεία στίξης — που επεξεργάζονται μοντέλα όπως τα GPT-4 και το ChatGPT, αντί για ακατέργαστα γράμματα. Αυτό το εργαλείο χρησιμοποιεί το tiktoken, τη βιβλιοθήκη tokenization ανοικτού κώδικα που δημοσίευσε η OpenAI, επομένως οι μετρήσεις συμφωνούν με αυτές που θα παρήγαγαν τα ίδια τα μοντέλα και τα API της OpenAI.

Πώς λειτουργεί η tokenization

Ένας tokenizer δεν μετρά απλώς λέξεις. Περνά το κείμενο από έναν αλγόριθμο που ονομάζεται κωδικοποίηση ζευγών byte (BPE). Ο αλγόριθμος ξεκινά από μεμονωμένα byte του κειμένου και συγχωνεύει επανειλημμένα τα συχνότερα γειτονικά ζεύγη, με βάση μοτίβα που έχουν μάθει από μεγάλο σώμα κειμένου κατά την εκπαίδευση. Το αποτέλεσμα είναι ένα σταθερό λεξιλόγιο δεκάδων χιλιάδων κοινών τμημάτων: ολόκληρες σύντομες λέξεις, συχνά τμήματα λέξεων και μεμονωμένοι χαρακτήρες για οτιδήποτε σπάνιο.

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

Κωδικοποιήσεις που υποστηρίζει αυτό το εργαλείο

Το tiktoken προσφέρει διάφορες κωδικοποιήσεις, καθεμία συνδεδεμένη με μια οικογένεια μοντέλων της OpenAI. Αυτό το εργαλείο υποστηρίζει τρεις:

ΚωδικοποίησηΧρησιμοποιείται απόΚατά προσέγγιση μέγεθος λεξιλογίου
cl100k_baseΜοντέλα της οικογένειας GPT-3,5 και GPT-4, ChatGPTπερίπου 100.000 token
p50k_baseΜεταγενέστερα μοντέλα GPT-3περίπου 50.000 token
r50k_baseΠαλαιότερα μοντέλα GPT-3 και GPT-2περίπου 50.000 token

Η cl100k_base επιλέγεται από προεπιλογή, καθώς καλύπτει την οικογένεια μοντέλων που χρησιμοποιούν σήμερα οι περισσότεροι. Το ίδιο κείμενο μπορεί να δώσει διαφορετικό αριθμό token με κάθε κωδικοποίηση, επειδή καθεμία εκπαιδεύτηκε σε διαφορετικό κείμενο και συγχωνεύει τους χαρακτήρες με διαφορετικό τρόπο.

Πώς υπολογίζεται ο αριθμός των token

Δεν υπάρχει απλός αριθμητικός τύπος για τη μετατροπή του αριθμού χαρακτήρων ή λέξεων σε αριθμό token, επειδή οι συγχωνεύσεις BPE εξαρτώνται από το συγκεκριμένο κείμενο και το εκπαιδευμένο λεξιλόγιο. Η μόνη ακριβής μέθοδος είναι να περάσει κανείς το κείμενο από τον ίδιο τον tokenizer:

  1. Επιλέξτε την κωδικοποίηση που αντιστοιχεί στο μοντέλο-στόχο.
  2. Εισαγάγετε το κείμενο στον tokenizer αυτής της κωδικοποίησης.
  3. Μετρήστε τη λίστα αναγνωριστικών token που προκύπτει. Το μήκος αυτής της λίστας είναι ο αριθμός των token.

Ως πρόχειρη εκτίμηση για αγγλικό κείμενο, ένα token αντιστοιχεί περίπου σε τέσσερις χαρακτήρες ή περίπου στα τρία τέταρτα μιας λέξης. Αυτό είναι μόνο ένας οδηγός. Οι αριθμοί, ο κώδικας, τα μη αγγλικά κείμενα και η ασυνήθιστη ορθογραφία μπορούν να μεταβάλουν σημαντικά την αναλογία.

Λυμένο παράδειγμα

Ας πάρουμε την πρόταση:

«Η τμηματοποίηση διασπά το κείμενο σε τμήματα.»

Με την κωδικοποίηση cl100k_base, το tiktoken διασπά αυτή την πρόταση σε 7 token:

Token, ization, splits, text, into, pieces, .

Παρατηρήστε ότι η λέξη «Tokenization» διασπάται η ίδια σε δύο token, «Token» και «ization», ενώ κάθε άλλη λέξη παραμένει ολόκληρη. Η τελεία στο τέλος είναι το δικό της token. Γι’ αυτό μια πρόταση 37 χαρακτήρων με 5 λέξεις παράγει 7 token αντί για 6.

Γιατί έχει σημασία ο αριθμός των token

Οι πάροχοι τεχνητής νοημοσύνης χρεώνουν τη χρήση API ανά token, μετρώντας τόσο το κείμενο που αποστέλλεται όσο και το κείμενο που παράγεται ως απάντηση, επομένως ο αριθμός των token προβλέπει το κόστος πριν σταλεί ένα αίτημα. Κάθε μοντέλο έχει επίσης μέγιστο μήκος συμφραζομένων, δηλαδή όριο στον αριθμό των token που μπορούν να περιέχονται συνολικά σε ένα αίτημα και στην απάντησή του. Το όριο διαφέρει ανά μοντέλο και αλλάζει καθώς οι πάροχοι κυκλοφορούν νέες εκδόσεις, επομένως είναι προτιμότερο να ελέγχεται στην τρέχουσα τεκμηρίωση του μοντέλου που χρησιμοποιείται και όχι να θεωρείται δεδομένο από μνήμης.

Συχνές ερωτήσεις

Τι είναι ένα token στα γλωσσικά μοντέλα τεχνητής νοημοσύνης; Ένα token είναι ένα τμήμα κειμένου που το γλωσσικό μοντέλο διαβάζει ως μία μονάδα. Μπορεί να είναι μια ολόκληρη σύντομη λέξη, μέρος μιας μεγαλύτερης λέξης, ένα σημείο στίξης ή ένα κενό συνδεδεμένο με την επόμενη λέξη.

Γιατί διαφορετικές κωδικοποιήσεις δίνουν διαφορετικούς αριθμούς token για το ίδιο κείμενο; Κάθε κωδικοποίηση εκπαιδεύτηκε στο δικό της δείγμα κειμένου και δημιούργησε το δικό της λεξιλόγιο κοινών τμημάτων. Μια λέξη που είναι αρκετά συνηθισμένη ώστε να αποτελεί ένα token σε ένα λεξιλόγιο μπορεί να μην υπάρχει σε ένα άλλο, οπότε διασπάται διαφορετικά.

Μετρά η στίξη ως token; Ναι. Τα σημεία στίξης συνήθως μετρώνται ως δικά τους token ή, περιστασιακά, συγχωνεύονται με τον γειτονικό χαρακτήρα, ανάλογα με το πόσο συχνά εμφανίστηκε αυτός ο συνδυασμός κατά την εκπαίδευση του tokenizer.

Είναι ένα token το ίδιο με μια λέξη; Όχι. Οι σύντομες, συνηθισμένες λέξεις είναι συνήθως από ένα token η καθεμία. Οι μεγαλύτερες ή λιγότερο συνηθισμένες λέξεις, καθώς και οι περισσότερες λέξεις σε γλώσσες εκτός των αγγλικών, συχνά διασπώνται σε δύο ή περισσότερα token.

Πόσο ακριβές είναι αυτό το εργαλείο; Μετρά τα token χρησιμοποιώντας τη βιβλιοθήκη tiktoken της ίδιας της OpenAI και εκτελεί την ίδια λογική κωδικοποίησης που χρησιμοποιεί εσωτερικά η OpenAI, επομένως η μέτρηση συμφωνεί με αυτήν που θα ανέφερε μια κλήση API της OpenAI για το ίδιο κείμενο και την ίδια κωδικοποίηση.

Μπορεί αυτό το εργαλείο να μετρήσει token για μοντέλα που δεν είναι της OpenAI; Χρησιμοποιεί τις κωδικοποιήσεις του tiktoken, οι οποίες έχουν σχεδιαστεί για τα μοντέλα της OpenAI. Άλλοι πάροχοι, όπως η Anthropic ή η Google, χρησιμοποιούν τους δικούς τους tokenizers, οι οποίοι μπορούν να δώσουν διαφορετικές μετρήσεις για το ίδιο κείμενο.

Παραπομπές

  1. OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
  2. Sennrich, Rico, et al. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
  3. Brown, Tom B., et al. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.