Langkau ke kandungan

Penghitung Token Percuma untuk GPT-4, ChatGPT & Model AI

Penghitung token tepat menggunakan pustaka tiktoken OpenAI. Kira token untuk model GPT-4, ChatGPT, dan GPT-3. Urus kos API dan optimumkan petunjuk AI serta-merta.

Penghitung Token

Pengekodan

Input tidak sah

Kalkulator Pemuatan...
📚

Dokumentasi

Apakah Pengira Token?

Pengira token mengukur bilangan token yang terhasil apabila sekeping teks dipecahkan semasa dibaca oleh model bahasa AI. Token ialah cebisan kecil teks — perkataan penuh, bahagian perkataan atau tanda baca — yang diproses oleh model seperti GPT-4 dan ChatGPT, bukannya huruf mentah. Alat ini menggunakan tiktoken, pustaka tokenisasi sumber terbuka yang diterbitkan oleh OpenAI, jadi bilangannya sepadan dengan hasil yang akan diberikan oleh model dan API OpenAI sendiri.

Cara Pembahagian Token Berfungsi

Pembahagi token tidak sekadar mengira perkataan. Ia menjalankan teks melalui algoritma yang dipanggil byte pair encoding (BPE). Algoritma ini bermula dengan bait teks secara individu dan berulang kali menggabungkan pasangan bersebelahan yang paling lazim, berdasarkan corak yang dipelajari daripada himpunan teks yang besar semasa latihan. Hasilnya ialah perbendaharaan kata tetap yang mengandungi puluhan ribu cebisan lazim: perkataan pendek penuh, pecahan perkataan yang kerap muncul dan aksara tunggal untuk perkara yang jarang berlaku.

Oleh sebab itu, satu perkataan bahasa Inggeris sering menjadi satu token, tetapi perkataan yang lebih panjang atau luar biasa boleh dipecahkan menjadi dua token atau lebih. Ruang biasanya dilampirkan pada permulaan token seterusnya dan bukannya dikira secara berasingan, manakala tanda baca lazimnya menjadi token tersendiri.

Pengekodan yang Disokong oleh Alat Ini

Tiktoken menawarkan beberapa pengekodan, setiap satunya dikaitkan dengan satu keluarga model OpenAI. Alat ini menyokong tiga:

PengekodanDigunakan olehAnggaran saiz perbendaharaan kata
cl100k_baseModel keluarga GPT-3.5 dan GPT-4, ChatGPTkira-kira 100,000 token
p50k_baseModel GPT-3 yang lebih baharukira-kira 50,000 token
r50k_baseModel GPT-3 dan GPT-2 yang lebih awalkira-kira 50,000 token

cl100k_base dipilih secara lalai kerana ia merangkumi keluarga model yang paling banyak digunakan pada masa ini. Teks yang sama boleh menghasilkan bilangan token yang berbeza di bawah setiap pengekodan kerana setiap pengekodan dilatih menggunakan teks yang berbeza dan menggabungkan aksara dengan cara yang berbeza.

Cara Mengira Bilangan Token

Tiada rumus aritmetik mudah untuk menukarkan bilangan aksara atau bilangan perkataan kepada bilangan token kerana penggabungan BPE bergantung pada teks tertentu dan perbendaharaan kata yang dilatih. Satu-satunya kaedah tepat ialah menjalankan teks melalui pembahagi token itu sendiri:

  1. Pilih pengekodan yang sepadan dengan model sasaran.
  2. Masukkan teks ke dalam pembahagi token pengekodan tersebut.
  3. Kira senarai ID token yang terhasil. Panjang senarai itu ialah bilangan token.

Sebagai anggaran kasar untuk teks bahasa Inggeris, satu token hampir bersamaan dengan empat aksara atau kira-kira tiga perempat perkataan. Ini hanya panduan. Nombor, kod, teks bukan bahasa Inggeris dan ejaan luar biasa boleh mengubah nisbah itu dengan banyak.

Contoh pengiraan

Ambil ayat berikut:

Tokenisasi membahagikan teks kepada beberapa bahagian.

Di bawah pengekodan cl100k_base, tiktoken memecahkannya kepada 7 token:

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

Perhatikan bahawa "Tokenization" sendiri dipecahkan kepada dua token, "Token" dan "ization", manakala setiap perkataan lain kekal utuh. Noktah terakhir ialah token tersendiri. Oleh itu, ayat yang mempunyai 37 aksara dan 5 perkataan menghasilkan 7 token, bukannya 6.

Mengapa Bilangan Token Penting

Penyedia AI mengenakan bayaran untuk penggunaan API mengikut token, dengan mengira teks yang dihantar dan teks yang dijana sebagai respons. Oleh itu, bilangan token dapat meramalkan kos sebelum permintaan dihantar. Setiap model juga mempunyai panjang konteks maksimum, iaitu had bilangan token yang boleh terkandung bersama-sama dalam satu permintaan dan balasannya. Had itu berbeza mengikut model dan berubah apabila penyedia mengeluarkan versi baharu, jadi sebaik-baiknya semak dokumentasi semasa untuk model yang digunakan dan bukannya mengandaikannya berdasarkan ingatan.

Soalan lazim

Apakah token dalam model bahasa AI? Token ialah cebisan teks yang dibaca oleh model bahasa sebagai satu unit. Token itu mungkin berupa perkataan pendek penuh, sebahagian daripada perkataan yang lebih panjang, tanda baca atau ruang yang dilampirkan pada perkataan berikutnya.

Mengapa pengekodan yang berbeza memberikan bilangan token yang berbeza untuk teks yang sama? Setiap pengekodan dilatih menggunakan sampel teksnya sendiri dan membina perbendaharaan kata cebisan lazim yang tersendiri. Perkataan yang cukup lazim untuk menjadi satu token dalam satu perbendaharaan kata mungkin tidak terdapat dalam perbendaharaan kata lain, lalu dipecahkan dengan cara yang berbeza.

Adakah tanda baca dikira sebagai token? Ya. Tanda baca biasanya dikira sebagai token tersendiri atau kadangkala digabungkan dengan aksara di sebelahnya, bergantung pada kekerapan gabungan itu muncul semasa tokenizer dilatih.

Adakah token sama dengan perkataan? Tidak. Perkataan pendek yang lazim biasanya menjadi satu token setiap satu. Perkataan yang lebih panjang atau kurang lazim, serta kebanyakan perkataan bukan bahasa Inggeris, sering dipecahkan kepada dua token atau lebih.

Sejauh manakah ketepatan alat ini? Alat ini mengira token menggunakan pustaka tiktoken milik OpenAI sendiri dengan menjalankan logik pengekodan yang sama seperti yang digunakan OpenAI secara dalaman, jadi bilangannya sepadan dengan hasil yang akan dilaporkan oleh panggilan API OpenAI untuk teks dan pengekodan yang sama.

Bolehkah alat ini mengira token untuk model bukan OpenAI? Alat ini menggunakan pengekodan tiktoken yang dibina untuk model OpenAI. Penyedia lain seperti Anthropic atau Google menggunakan pembahagi token mereka sendiri, yang boleh menghasilkan bilangan yang berbeza untuk teks yang sama.

Rujukan

  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.