Ringkasan
Token adalah satuan yang digunakan model OpenAI untuk memproses teks. Token dapat merepresentasikan karakter, bagian kata, kata utuh, atau tanda baca. Spasi juga memengaruhi cara teks dibagi menjadi token.
Jumlah token tidak sama dengan jumlah kata. Teks yang sama dapat menghasilkan jumlah token berbeda, tergantung pada model, pengodean, dan bahasanya.
Pahami cara teks menjadi token
Saat Anda mengirim teks ke model:
Teks dibagi menjadi token.
Model memproses token tersebut.
Model menghasilkan token output. Token ini dapat mencakup teks yang Anda terima dan, untuk model penalaran, token penalaran internal yang tidak ditampilkan sebagai teks jawaban.
Gunakan perkiraan kasar untuk teks bahasa Inggris
Perkiraan ini dapat membantu Anda menilai ukuran teks bahasa Inggris:
1 token kira-kira setara dengan 4 karakter.
1 token kira-kira setara dengan tiga perempat kata.
100 token kira-kira setara dengan 75 kata.
Angka ini hanya perkiraan, bukan hitungan pasti. Panjang kalimat dan paragraf bervariasi, dan bahasa lain dapat memiliki hubungan yang berbeda antara karakter, kata, dan token.
Perhitungkan spasi dan kapitalisasi
Sebuah kata dapat dibagi menjadi token yang berbeda, tergantung pada ejaan, kapitalisasi, dan teks di sekitarnya.
Misalnya, red, Red, dan red tidak memuat teks yang identik: contoh terakhir diawali dengan spasi. Suatu pengodean dapat merepresentasikannya secara berbeda.
ID token juga bergantung pada pengodean. Jangan berasumsi bahwa contoh ID token berlaku untuk setiap model.
Bedakan token input dan output
| Kategori | Yang dijelaskan |
| Token input | Token yang diberikan kepada model dalam suatu permintaan. Token ini juga disebut token prompt. |
| Token output | Token yang dihasilkan oleh model. Chat Completions menyebutnya token penyelesaian. |
| Token input cache | Token input yang digunakan kembali melalui penyimpanan prompt. Harganya dapat berbeda dari token input yang tidak di-cache. |
| Token penalaran | Token yang digunakan secara internal oleh model penalaran sebelum menghasilkan jawaban yang terlihat. |
Token penalaran tidak terlihat sebagai teks jawaban, tetapi dihitung dalam penggunaan output dan ditagih sebagai token output.
Karena itu, jawaban singkat yang terlihat dapat menggunakan lebih banyak token daripada yang ditunjukkan oleh teksnya.
Hitung token sebelum mengirim permintaan
Hitung teks biasa
Gunakan Tokenizer untuk melihat cara teks dibagi menjadi token.
Untuk tokenisasi teks biasa secara terprogram, gunakan tiktoken. Pilih pengodean untuk model target Anda, misalnya dengan tiktoken.encoding_for_model(model).
Jumlah token teks biasa belum tentu mencakup semua token dalam permintaan API. Struktur pesan, alat, skema, gambar, dan file dapat memengaruhi jumlah input keseluruhan.
Hitung input Responses secara lengkap
Untuk input Responses API secara lengkap, gunakan API penghitungan token input.
API ini menerima format input Responses, termasuk pesan, gambar, file, alat, dan percakapan. Hitungannya mencakup token pemformatan yang digunakan untuk struktur permintaan, seperti peran dan batas pesan.
Jumlah input tidak memprediksi jumlah token output yang akan dihasilkan model.
Periksa penggunaan token yang sebenarnya
Setelah mengirim permintaan, periksa informasi penggunaannya. Nama kolom berbeda-beda menurut endpoint:
Chat Completions melaporkan prompt_tokens, completion_tokens, dan total_tokens.
Responses melaporkan input_tokens, output_tokens, dan total_tokens.
Anda juga dapat meninjau aktivitas dari waktu ke waktu di Dasbor Penggunaan. Untuk petunjuk, termasuk penggunaan streaming, lihat: Meninjau penggunaan dan biaya API.
Tetap patuhi batas model
Periksa dokumentasi model Anda untuk mengetahui jendela konteks dan output maksimumnya. Batas ini dapat berbeda antar-model.
Jendela konteks membatasi jumlah token yang dapat diproses model dalam satu permintaan. Model juga memiliki batas output. Untuk model penalaran, sediakan ruang bagi token penalaran serta jawaban yang terlihat.
Jika input Anda terlalu besar, Anda dapat:
Persingkat atau susun ulang prompt.
Hapus konteks yang tidak diperlukan atau berulang.
Bagi input besar menjadi bagian-bagian yang lebih kecil.
Ringkas atau praproses teks sebelum mengirimkannya.
Gunakan pengaturan token output yang didukung oleh endpoint dan model Anda. Chat Completions menggunakan max_completion_tokens; Responses menggunakan max_output_tokens.
Batas ukuran permintaan ini terpisah dari batas laju API serta batas penggunaan atau pengeluaran bulanan. Tinjau dokumentasi model untuk model yang Anda gunakan.
Pahami harga token
Untuk harga API berbasis token, tarif bergantung pada model dan kategori token. Token input, input cache, dan output dapat memiliki harga yang berbeda. Kemampuan API lainnya dapat menggunakan satuan penagihan yang berbeda.
Periksa halaman harga API untuk mengetahui tarif saat ini.
Saat membandingkan model, pertimbangkan total token dan biaya yang diperlukan untuk menyelesaikan tugas Anda. Harga per satu juta token yang lebih rendah belum tentu menghasilkan total biaya lebih rendah: model dapat memecah teks yang sama menjadi token secara berbeda serta menghasilkan jumlah output atau penalaran yang berbeda.
Uji tugas yang representatif, jangan hanya membandingkan panjang respons yang terlihat.
Perhitungkan beberapa penyelesaian
Jika endpoint dan model mendukung pembuatan beberapa penyelesaian, penyelesaian tambahan tersebut juga menggunakan token.
Untuk Chat Completions, menetapkan n di atas 1 akan menghasilkan beberapa pilihan. Anda dikenai biaya untuk token yang dihasilkan pada semua pilihan tersebut.
Untuk Completions API lama, best_of dapat menghasilkan kandidat yang tidak semuanya dikembalikan. Misalnya, best_of = 3 dapat menghasilkan hingga 3 × max_tokens token penyelesaian di seluruh kandidat.
Parameter ini bersifat khusus untuk endpoint tertentu. Jangan berasumsi bahwa n atau best_of didukung oleh API atau model lain.
