Apa itu token?
Token adalah blok penyusun teks yang diproses oleh model OpenAI. Token bisa sesingkat satu karakter atau sepanjang satu kata penuh, bergantung pada bahasa dan konteks. Spasi, tanda baca, dan bagian kata semuanya berkontribusi pada jumlah token. Beginilah cara API membagi teks Anda secara internal sebelum menghasilkan respons.
Aturan praktis yang berguna untuk bahasa Inggris:
1 token ≈ 4 karakter
1 token ≈ ¾ kata
100 token ≈ 75 kata
1–2 kalimat ≈ 30 token
1 paragraf ≈ 100 token
~1.500 kata ≈ 2.048 token
Tokenisasi bervariasi menurut model dan pengodean. Gunakan alat Tokenizer atau tiktoken.encoding_for_model(model) untuk mendapatkan jumlah persis bagi model target Anda.
Contoh
Berikut beberapa contoh teks dunia nyata beserta perkiraan jumlah tokennya:
Kutipan Wayne Gretzky “Anda gagal 100% pada tembakan yang tidak Anda ambil” = 11 token
Piagam OpenAI = 476 token
Deklarasi Kemerdekaan AS = 1.695 token
Cara menghitung jumlah token
Saat Anda mengirim teks ke API:
Teks dipecah menjadi token.
Model memproses token ini.
Respons dihasilkan sebagai urutan token, lalu dikonversi kembali menjadi teks.
Penggunaan token dilacak dalam beberapa kategori:
Token input – token dalam permintaan Anda.
Token output – token yang dihasilkan dalam respons.
Token cache – token yang digunakan ulang dalam riwayat percakapan (sering kali ditagih dengan tarif lebih rendah).
Token penalaran – pada beberapa model canggih, “langkah berpikir” tambahan disertakan secara internal sebelum menghasilkan output akhir.
Jumlah ini muncul dalam metadata respons API Anda dan digunakan untuk penagihan serta pelacakan penggunaan.
Untuk mempelajari tokenisasi lebih lanjut, Anda dapat menggunakan alat Tokenizer interaktif kami, yang memungkinkan Anda menghitung jumlah token dan melihat bagaimana teks dipecah menjadi token.
Atau, jika Anda ingin memecah teks menjadi token secara terprogram, gunakan Tiktoken sebagai tokenizer BPE cepat yang khusus digunakan untuk model OpenAI.
Batas Token
Setiap model memiliki batas token gabungan maksimum (input + output). Model berkapasitas tinggi saat ini mendukung hingga ratusan ribu token dalam konteks, meskipun batas praktis dapat bervariasi bergantung pada versi model dan tingkatan penggunaan Anda.
Jika Anda melebihi batas, Anda dapat:
Mempersingkat atau menyusun ulang prompt.
Memecah teks besar menjadi bagian-bagian yang lebih kecil.
Meringkas atau melakukan praproses input sebelum mengirimkannya.
Harga Token
Penggunaan API dihargai per token, bervariasi menurut model dan apakah token tersebut berupa input, output, atau cache. Lihat halaman harga OpenAI untuk tarif saat ini. Beberapa model penalaran dapat menggunakan lebih banyak token secara internal, tetapi bertujuan meningkatkan efisiensi dengan mengurangi jumlah token yang diperlukan per tugas yang diselesaikan.
Menjelajahi token
API memperlakukan kata-kata sesuai konteksnya dalam data korpus. Model mengambil prompt, mengonversi input menjadi daftar token, memproses prompt, lalu mengonversi token yang diprediksi kembali menjadi kata-kata yang kita lihat dalam respons.
Apa yang bagi kita tampak sebagai dua kata identik dapat dihasilkan menjadi token yang berbeda bergantung pada bagaimana kata tersebut disusun dalam teks. Perhatikan bagaimana API menghasilkan nilai token untuk kata ‘red’ berdasarkan konteksnya dalam teks:
Pada contoh pertama di atas, token “2266” untuk ‘ red’ mencakup spasi di akhir (Catatan, ini adalah ID token contoh untuk tujuan demonstrasi).
Token “2296” untuk ‘ Red’ (dengan spasi di awal dan dimulai dengan huruf kapital) berbeda dari token “2266” untuk ‘ red’ dengan huruf kecil.
Saat ‘Red’ digunakan di awal kalimat, token yang dihasilkan tidak menyertakan spasi di awal. Token “7738” berbeda dari dua contoh kata sebelumnya.
Pengamatan:
Semakin mungkin/sering suatu token muncul, semakin rendah nomor token yang diberikan kepadanya:
Token yang dihasilkan untuk titik sama (“13”) di ketiga kalimat. Ini karena, secara kontekstual, titik digunakan dengan cukup mirip di seluruh data korpus.
Token yang dihasilkan untuk ‘red’ bervariasi bergantung pada posisinya dalam kalimat:
Huruf kecil di tengah kalimat: ‘ red’ - (token: “2266”)
Huruf besar di tengah kalimat: ‘ Red’ - (token: “2297”)
Huruf besar di awal kalimat: ‘Red’ - (token: “7738”)
