Apakah itu token?
Token ialah unit asas teks yang diproses oleh model OpenAI. Panjangnya boleh terdiri daripada satu aksara sahaja hingga satu perkataan penuh, bergantung pada bahasa dan konteks. Ruang, tanda baca dan bahagian perkataan semuanya diambil kira dalam jumlah token. Beginilah API membahagikan teks anda secara dalaman sebelum menghasilkan respons.
Panduan ringkas yang berguna untuk bahasa Inggeris:
1 token ≈ 4 aksara
1 token ≈ ¾ perkataan
100 token ≈ 75 perkataan
1–2 ayat ≈ 30 token
1 perenggan ≈ 100 token
~1,500 perkataan ≈ 2,048 token
Pentokenan berbeza-beza mengikut model dan pengekodan. Gunakan alat Tokenizer atau tiktoken.encoding_for_model(model) untuk mendapatkan jumlah tepat bagi model sasaran anda.
Contoh
Berikut ialah beberapa sampel teks sebenar berserta anggaran jumlah tokennya:
Petikan Wayne Gretzky, “Anda terlepas 100% daripada peluang yang tidak anda ambil” = 11 token
Piagam OpenAI = 476 token
Perisytiharan Kemerdekaan Amerika Syarikat = 1,695 token
Cara jumlah token dikira
Apabila anda menghantar teks kepada API:
Teks dibahagikan kepada token.
Model memproses token ini.
Respons dijana sebagai urutan token, kemudian ditukar kembali kepada teks.
Penggunaan token dijejaki dalam beberapa kategori:
Token input – token dalam permintaan anda.
Token output – token yang dijana dalam respons.
Token cache – token dalam sejarah perbualan yang digunakan semula (sering dibilkan pada kadar lebih rendah).
Token penaakulan – dalam sesetengah model lanjutan, “langkah pemikiran” tambahan disertakan secara dalaman sebelum output akhir dihasilkan.
Jumlah ini dipaparkan dalam metadata respons API anda serta digunakan untuk pengebilan dan penjejakan penggunaan.
Untuk meneroka pentokenan dengan lebih lanjut, anda boleh menggunakan alat Tokenizer interaktif kami bagi mengira jumlah token dan melihat cara teks dibahagikan kepada token.
Sebagai alternatif, jika anda mahu mentokenkan teks secara pengaturcaraan, gunakan Tiktoken, pentoken BPE pantas yang digunakan khusus untuk model OpenAI.
Had Token
Setiap model mempunyai had maksimum gabungan token (input + output). Model berkapasiti tinggi semasa menyokong sehingga ratusan ribu token dalam konteks, namun had praktikal mungkin berbeza-beza bergantung pada versi model dan tahap penggunaan anda.
Jika anda melebihi had tersebut, anda boleh:
Pendekkan atau ungkapkan semula prom.
Bahagikan teks yang panjang kepada bahagian lebih kecil.
Ringkaskan atau praproses input sebelum menghantarnya.
Harga Token
Penggunaan API dikenakan harga bagi setiap token, berbeza-beza mengikut model dan sama ada token itu ialah input, output atau cache. Lihat halaman harga OpenAI untuk kadar semasa. Sesetengah model penaakulan mungkin menggunakan lebih banyak token secara dalaman, tetapi bertujuan meningkatkan kecekapan dengan mengurangkan jumlah token yang diperlukan bagi setiap tugasan yang diselesaikan.
Token tidak diseragamkan merentas model atau penyedia AI. Model yang berbeza boleh memproses atau menjana teks yang sama menggunakan jumlah token yang berbeza. Oleh itu, harga diiklankan yang lebih rendah bagi setiap sejuta token tidak semestinya bermakna jumlah kos lebih rendah.
Panjang respons yang dapat dilihat juga tidak menggambarkan keadaan sepenuhnya. Sesetengah model menggunakan token penaakulan secara dalaman sebelum menghasilkan jawapan. Oleh itu, respons yang kelihatan lebih panjang tidak semestinya bermakna model menggunakan lebih banyak token secara keseluruhan.
Apabila membandingkan model, pertimbangkan jumlah token yang diperlukan dan kos bagi setiap hasil yang berjaya. Penanda aras boleh menjadi titik permulaan yang berguna, tetapi menguji model berdasarkan kes penggunaan anda sendiri ialah cara terbaik untuk memahami kos dan prestasi sebenar model.
Meneroka token
API mengendalikan perkataan mengikut konteksnya dalam data korpus. Model menerima prom, menukar input kepada senarai token, memproses prom dan menukar token yang diramalkan kembali kepada perkataan yang kita lihat dalam respons.
Dua perkataan yang kelihatan sama kepada kita mungkin dijana sebagai token yang berbeza bergantung pada cara perkataan itu disusun dalam teks. Perhatikan cara API menjana nilai token untuk perkataan ‘red’ berdasarkan konteksnya dalam teks:
Dalam contoh pertama di atas, token “2266” untuk ‘ red’ merangkumi ruang di hujung (Perhatian: ini ialah contoh ID token untuk tujuan demonstrasi).
Token “2296” untuk ‘ Red’ (dengan ruang di hadapan dan bermula dengan huruf besar) berbeza daripada token “2266” untuk ‘ red’ yang menggunakan huruf kecil.
Apabila ‘Red’ digunakan pada permulaan ayat, token yang dijana tidak merangkumi ruang di hadapan. Token “7738” berbeza daripada dua contoh perkataan sebelumnya.
Pemerhatian:
Semakin tinggi kebarangkalian atau kekerapan sesuatu token, semakin rendah nombor token yang diberikan kepadanya:
Token yang dijana untuk tanda noktah adalah sama (“13”) dalam ketiga-tiga ayat. Hal ini demikian kerana, berdasarkan konteks, tanda noktah digunakan dengan cara yang hampir sama di seluruh data korpus.
Token yang dijana untuk ‘red’ berbeza-beza bergantung pada kedudukannya dalam ayat:
Huruf kecil di tengah ayat: ‘ red’ - (token: “2266”)
Huruf besar di tengah ayat: ‘ Red’ - (token: “2297”)
Huruf besar pada permulaan ayat: ‘Red’ - (token: “7738”)
