OpenAI
Halaman ini diterjemah oleh mesin. Lihat artikel asal dalam bahasa Inggeris.

Apakah itu token dan cara mengiranya?

Dikemas kini: 9 days ago

Apakah itu token?

Token ialah unit asas teks yang diproses oleh model OpenAI. Token boleh jadi sesingkat satu aksara atau sepanjang satu perkataan penuh, bergantung pada bahasa dan konteks. Ruang, tanda baca dan sebahagian perkataan semuanya menyumbang kepada kiraan token. Beginilah cara API membahagikan teks anda secara dalaman sebelum menjana 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

Tokenisasi berbeza mengikut model dan pengekodan. Gunakan alat Tokenizer atau tiktoken.encoding_for_model(model) untuk mendapatkan kiraan tepat bagi model sasaran anda.

Contoh

Berikut ialah beberapa sampel teks dunia sebenar berserta anggaran kiraan tokennya:

  • Petikan Wayne Gretzky “Anda terlepas 100% pukulan yang tidak anda cuba” = 11 token

  • Piagam OpenAI = 476 token

  • Pengisytiharan Kemerdekaan AS = 1,695 token

Cara kiraan token dikira

Apabila anda menghantar teks kepada API:

  1. Teks dipecahkan kepada token.

  2. Model memproses token ini.

  3. Respons dijana sebagai urutan token, kemudian ditukar semula kepada teks.

Penggunaan token dijejaki dalam beberapa kategori:

  • Token input – token dalam permintaan anda.

  • Token output – token yang dijana dalam respons.

  • Token cache – token yang digunakan semula dalam sejarah perbualan (selalunya dibilkan pada kadar yang lebih rendah).

  • Token penaakulan – dalam sesetengah model lanjutan, “langkah berfikir” tambahan disertakan secara dalaman sebelum output akhir dihasilkan.

Kiraan ini muncul dalam metadata respons API anda dan digunakan untuk pengebilan serta penjejakan penggunaan.

Untuk meneroka tokenisasi dengan lebih lanjut, anda boleh menggunakan alat Tokenizer interaktif kami, yang membolehkan anda mengira bilangan token dan melihat cara teks dipecahkan kepada token.

Sebagai alternatif, jika anda mahu melakukan tokenisasi teks secara berprogram, gunakan Tiktoken sebagai tokenizer BPE pantas yang digunakan khusus untuk model OpenAI.

Had Token

Setiap model mempunyai had token gabungan maksimum (input + output). Model berkapasiti tinggi semasa menyokong sehingga ratusan ribu token dalam konteks, walaupun had praktikal mungkin berbeza mengikut versi model dan tahap penggunaan anda.

Jika anda melebihi had, anda boleh:

  • Pendekkan atau ungkap semula gesaan.

  • Pecahkan teks yang besar kepada bahagian yang lebih kecil.

  • Ringkaskan atau praproses input sebelum menghantarnya.

Harga Token

Penggunaan API dikenakan harga mengikut token, berbeza mengikut model dan sama ada token tersebut 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 bilangan token yang diperlukan bagi setiap tugasan yang diselesaikan.

Meneroka token

API mengendalikan perkataan mengikut konteksnya dalam data korpus. Model menerima gesaan, menukar input kepada senarai token, memproses gesaan, lalu menukar token yang diramalkan kembali kepada perkataan yang kita lihat dalam respons.

Sesuatu yang kelihatan seperti dua perkataan yang sama kepada kita mungkin dijana sebagai token yang berbeza bergantung pada cara perkataan itu disusun dalam teks. Pertimbangkan cara API menjana nilai token untuk perkataan ‘red’ berdasarkan konteksnya dalam teks:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

Dalam contoh pertama di atas, token “2266” untuk ‘ red’ merangkumi ruang awalan (Nota: ini ialah ID token contoh untuk tujuan demonstrasi).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

Token “2296” untuk ‘ Red’ (dengan ruang awalan dan bermula dengan huruf besar) berbeza daripada token “2266” untuk ‘ red’ yang menggunakan huruf kecil.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

Apabila ‘Red’ digunakan pada permulaan ayat, token yang dijana tidak merangkumi ruang awalan. Token “7738” berbeza daripada dua contoh perkataan sebelumnya.

Pemerhatian:

Semakin besar kebarangkalian/kekerapan sesuatu token, semakin rendah nombor token yang diberikan kepadanya:

  • Token yang dijana untuk noktah adalah sama (“13”) dalam ketiga-tiga ayat. Ini kerana, dari segi konteks, 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”)

Adakah artikel ini membantu?