Penghitung token LLM
Hitung token yang dihabiskan teks Anda menurut pengodean asli sebuah model, di peramban Anda. Tidak ada yang diunggah dan tidak ada angka perkiraan.
Tidak ada yang Anda tempel di sini keluar dari peramban ini. Kosakata pengodean yang Anda pilih diunduh sekali dari situs ini, dan penghitungannya berjalan di sebuah Web Worker pada tab ini: buka panel jaringan Anda sendiri dan lihat, tidak ada permintaan yang membawa teks Anda.
Pilih model yang benar-benar Anda tuju. Sebuah model memakai satu pengodean, beberapa model berbagi pengodean yang sama, dan hitungan itu milik pengodean, bukan milik namanya.
o200k_baseTempel atau ketik sesuatu di atas, dan jumlah token yang persis muncul di sini.
Apa sebenarnya sebuah token itu
Model bahasa tidak membaca teks Anda sebagai huruf atau sebagai kata. Sebelum apa pun yang lain terjadi, teks itu dipotong menjadi token, dan sebuah token adalah urutan bita yang untuknya model punya satu angka tunggal. Sebagian token memang kata utuh. Banyak yang berupa satu kata beserta spasi di depannya, dan karena itulah kata yang sama bisa berharga berbeda tergantung apa yang datang sebelumnya. Sebagian lagi adalah akhiran, tanda baca, indentasi, atau serpihan yang bukan bagian dari apa pun yang akan disebut namanya oleh seorang pembaca. Pemotongan itu dilakukan oleh sebuah tabel yang dibangun dengan menghitung urutan mana yang paling sering muncul bersama di dalam kumpulan teks yang sangat besar, dan tak ada satu pun bagiannya yang dirancang agar cocok dengan cara siapa pun menulis.
- Sebuah token adalah urutan bita, bukan urutan karakter. Perbedaan itu terdengar seperti mengada-ada sampai Anda menulis di luar alfabet Latin, dan di sanalah letak seluruh persoalannya.
- Kata bahasa Inggris yang umum biasanya satu token. Kata yang jarang, sebuah nama, kode produk, atau salah ketik menjadi beberapa, karena tabel itu tidak punya entri untuk keseluruhannya dan harus menyusunnya dari potongan yang lebih pendek.
- Spasi tidak gratis. Indentasi, baris kosong, dan spasi di dalam tabel yang Anda tempel semuanya bita, dan semuanya dihitung. Prompt yang tampak rapi bisa memakan biaya yang terasa lebih besar daripada prompt yang sama yang ditulis rata.
- Hitungannya bergantung pada bita yang persis dan tidak pada hal lain. Dua teks yang tampak identik di layar tetapi berbeda pada satu karakter tak terlihat — spasi tak-pemutus, tanda urutan bita, apostrof jenis lain — adalah dua teks yang berbeda dan bisa berakhir pada angka yang berbeda.
Inilah sebabnya patokan kasar yang diulang semua orang — bagi jumlah karakter dengan empat — sama sekali bukan sebuah aturan. Ia satu rata-rata atas satu jenis teks dalam satu bahasa, dan ia meleset ke arah yang memakan biaya begitu teks Anda berupa kode, sebuah tabel, daftar pengenal, atau ditulis dalam bahasa apa pun selain Inggris. Angka di halaman ini bukan rata-rata itu. Ia adalah pemotongan yang sebenarnya, dilakukan oleh tabel yang sebenarnya, di dalam peramban Anda.
Yang melakukan penghitungan adalah pengodeannya
Tabel itu dan aturan penggabungannya bersama-sama disebut sebuah pengodean, dan pengodean punya namanya sendiri. Nama itulah yang layak dipelajari, sebab hitungan itu milik pengodeannya dan bukan milik model mana pun: beberapa model berbagi satu pengodean, dan model yang digantikan oleh yang lebih baru sangat sering mempertahankan pengodean yang sama dengan pendahulunya. Ketika halaman ini menunjukkan sebuah angka kepada Anda, ia menunjukkan pula pengodean yang dipakai menghitungnya, tepat di samping model yang Anda pilih.
- Sebuah model memakai sebuah pengodean. Pemetaannya banyak-ke-satu, jadi mengetahui pengodean mana yang dipakai model Anda memberi tahu lebih banyak daripada mengetahui modelnya.
- Sebuah pengodean punya nama sendiri yang diterbitkan, misalnya o200k_base, dan nama itu berarti tabel yang sama di mana pun Anda menemuinya. Hitungan yang diambil dengan satu pengodean di halaman ini dan hitungan yang diambil dengan pengodean yang sama di tempat lain saling cocok, dan itulah yang membuat sebuah hitungan yang membawa pengodeannya bisa diperiksa sama sekali.
- Sebuah hitungan baru bermakna kalau pengodeannya ikut disebut. Angka yang dikutip dengan nama model dan tanpa pengodean adalah angka yang tidak bisa Anda periksa, dan itulah yang diberikan kebanyakan halaman tentang topik ini kepada Anda.
Akibat praktisnya membuat orang terkejut: berpindah di antara dua model yang berbagi satu pengodean tidak akan menggerakkan angka itu sama sekali, dan itu adalah alat yang benar dan bukan alat yang rusak. Kalau Anda ingin melihat sebuah hitungan berubah, yang harus Anda ubah adalah pengodeannya, bukan nama modelnya.
Mengapa teks yang bukan bahasa Inggris lebih mahal
Inilah bagian yang tidak akan diceritakan kepada Anda oleh halaman mana pun yang ditulis dengan bahasa Inggris lebih dahulu, dan itulah alasan halaman ini ada. Pengodean yang dipakai bekerja pada tingkat bita: ia menggarap bita UTF-8 dari teks Anda, bukan karakternya. Satu huruf Latin adalah satu bita. Satu huruf Ibrani, Arab, Yunani, atau Kiril adalah dua. Satu karakter Tionghoa, Jepang, atau Korea adalah tiga. Satu emoji adalah empat, dan satu bendera atau satu keluarga yang digabungkan adalah beberapa di antaranya berturut-turut. Jadi sebelum tabel mana pun dilihat sama sekali, kalimat yang sama sudah dua atau tiga kali lipat jumlah bitanya dalam satu bahasa dibandingkan dalam bahasa lain.
- Tabel-tabel itu dibangun dengan menghitung urutan di dalam korpus yang didominasi bahasa Inggris, sehingga kata-kata Inggris mendapat entri dan kata-kata dalam bahasa lain sering tidak. Bahasa yang tidak punya entri untuk kata-kata umumnya sendiri dieja serpihan demi serpihan.
- Itu berlipat bersama biaya bitanya, bukan menggantikannya. Kata yang harus dirakit dari tiga serpihan, yang masing-masing dua atau tiga bita, mahal dua kali lipat.
- Efeknya tidak seragam di antara bahasa-bahasa yang bukan Inggris. Aksara yang urutan seringnya sendiri ada di dalam tabel jauh lebih baik keadaannya daripada aksara yang nyaris tidak terwakili, dan satu-satunya cara mengetahui di mana aksara Anda berdiri adalah menempelkan teks Anda sendiri lalu melihatnya.
- Itulah sebabnya anggaran yang disusun dalam bahasa Inggris tidak ikut berpindah. Kalau Anda pernah diberi tahu bahwa satu jendela konteks memuat sekian halaman, angka itu hampir pasti diukur dalam bahasa Inggris, dan bahasa Anda sendiri tidak akan sampai ke sana.
Tak satu pun dari semua ini adalah cacat yang bisa Anda siasati dengan menulis secara lain, dan ini juga bukan alasan untuk menulis dalam bahasa Inggris. Ini adalah biaya yang seharusnya bisa Anda lihat sebelum Anda menanggungnya, dan itulah seluruh tugas angka di atas.
Satu karakter bisa terpotong di antara beberapa token
Karena sebuah token adalah urutan bita dan sebuah karakter di luar alfabet Latin terdiri dari beberapa bita, satu karakter tunggal lazim terbelah dua: bita-bita awalnya jatuh di satu token dan bita-bita akhirnya di token berikutnya. Tak satu pun dari kedua token itu berupa teks kalau berdiri sendiri. Mencetaknya seolah-olah ia teks itulah yang menghasilkan deretan karakter pengganti yang mungkin pernah Anda lihat di halaman lain yang berjanji menunjukkan token Anda, dan itu menghancurkan persis pemahaman yang seharusnya diberikan oleh gambarnya.
Karena itu situs ini menggambar sebuah segmen sebagai gantinya: urutan token berturutan yang terpendek yang bita-bitanya keluar sebagai teks yang utuh. Biasanya itu satu token. Di tempat satu karakter terpotong, jumlahnya dua atau lebih — sampai empat, untuk karakter yang empat bita dan dipotong satu bita demi satu bita — dan segmen itu digambar utuh dengan jumlah token di dalamnya disebutkan di sampingnya, sehingga Anda melihat pemotongannya alih-alih kehilangan karakternya karena pemotongan itu. Hitungannya tidak pernah terpengaruh oleh semua ini. Pemotongan itu adalah fakta tentang bagaimana bita-bitanya dipotong, dan jumlah totalnya tetap jumlah totalnya.
Membaca gambar teks Anda sendiri
Di bawah hitungannya, teks Anda digambar untuk kedua kalinya dengan batas-batasnya terlihat. Setiap blok di gambar itu adalah satu segmen, blok-blok itu berjalan dalam urutan Anda menulisnya, dan tidak ada yang dihilangkan atau dipendekkan, jadi yang Anda pandang adalah teks Anda sendiri dan bukan daftar serpihan yang diambil dari dalamnya. Itulah pertanyaan yang tidak bisa dijawab oleh angkanya: bukan berapa harga keseluruhannya, melainkan bagian mana saja yang mahal.
- Blok yang tidak membawa angka adalah satu token tunggal, dan itulah keadaan yang biasa. Ia sengaja dibiarkan tanpa tanda: angka di setiap blok akan menjadi tembok digit di atas kalimat-kalimat Anda sendiri dan akan mengubur blok-blok yang layak dilihat. Yang dibaca adalah batasnya, dan yang membuat satu blok berakhir lalu blok berikutnya dimulai adalah arsirannya.
- Blok yang membawa angka kecil adalah segmen yang berisi lebih dari satu token, dan di sanalah sebuah karakter terpotong pada sebuah batas. Karakternya masih ada di sana, digambar utuh, dengan jumlah token yang dihabiskannya di sampingnya — sehingga sebuah pemotongan tampil sebagai biaya dan bukan sebagai kerusakan pada teks Anda. Satu emoji atau satu karakter dari aksara yang lebih tua bisa mencapai empat.
- Spasi, pergantian baris, dan indentasi digambar seperti segala yang lain, karena semuanya dihitung seperti segala yang lain. Rentetan blok di atas sesuatu yang tampak seperti bukan apa-apa adalah bagian dari sebuah prompt panjang yang paling murah untuk diperbaiki, dan ia tak terlihat sampai Anda bisa melihatnya.
- Berpindah model membentuk ulang gambarnya setiap kali perpindahan itu mengubah pengodeannya, dan meninggalkannya persis seperti semula setiap kali tidak. Itu fakta yang sama dengan yang ditunjukkan angkanya, dalam bentuk yang membuat Anda bisa melihat di mana selisihnya jatuh dan bukan hanya bahwa ada selisih.
Teks yang sangat panjang hanya digambar sampai batas tertentu, dan di tempat gambarnya berhenti halaman ini menyebutkan berapa blok yang digambarnya dari berapa. Hitungannya tidak pernah dibatasi dengan cara yang sama: ia mencakup segala yang Anda tempel, pada panjang berapa pun, dan tak ada apa pun dari gambarnya yang menyentuh hitungan itu. Batas itu ada karena peramban menata letak setiap blok satu per satu dan satu dokumen utuh akan menghasilkan lebih banyak blok daripada yang bisa ditampilkan halaman mana pun dengan berguna — jadi yang hilang dari Anda setelah titik itu adalah gambar sisanya, tidak pernah jawaban tentangnya.
Mengapa sebagian model di sini tidak membawa angka
Tidak setiap model bisa dihitung di peramban Anda, dan yang jujur dilakukan terhadap hal itu adalah menyebutkan model yang mana dan mengapa, alih-alih menunjukkan kepada Anda angka yang ditebak. Ada tiga keadaan yang bisa ditempati sebuah model di halaman ini, dan ketiganya dibedakan di layar alih-alih dikaburkan menjadi satu.
- Pengodeannya diterbitkan dan situs ini menyajikannya. Anda mendapat hitungan yang persis, dihitung di sini, terhadap tabel yang sesungguhnya.
- Pengodeannya diterbitkan dan situs ini tidak menyajikannya. Barisnya menyebutkan nama pengodeannya dan mengatakan sebabnya — paling sering karena berkas itu diterbitkan tanpa seorang pun yang menyebutkan lisensi yang mengizinkan pihak lain menerbitkannya ulang. Tabelnya ada; penolakannya milik kami, dan barisnya mengatakan demikian.
- Pengodeannya tidak pernah diterbitkan sama sekali. Tidak ada tabel untuk disajikan dan tidak ada pula untuk ditolak, jadi tidak ada halaman di mana pun yang bisa menghitung model itu di peramban Anda, apa pun yang diklaimnya. Barisnya mengatakan hal itu, dan tidak membawa angka, tidak membawa perkiraan, dan tidak membawa rentang.
Baris terakhir itulah tempat kebanyakan halaman tentang topik ini diam-diam berbuat curang: mereka menjalankan teks Anda melalui tabel milik model lain lalu menyajikan hasilnya seolah-olah itu sebuah pengukuran. Ia bukan sekadar tidak presisi, ia bias, dan biasnya paling parah justru pada teks yang paling sulit dianggarkan — kode, dan segala yang tidak ditulis dalam bahasa Inggris. Hitungan yang persis untuk model semacam itu datang dari layanan penghitungan token milik pembuatnya sendiri, dan layanan itu butuh kunci API yang tidak mungkin dipegang oleh halaman yang berjalan sepenuhnya di peramban Anda dan yang tidak sepatutnya sekali pun diminta dari Anda. Menempuh layanan itu adalah jawaban yang jujur, dan itulah yang diberikan halaman ini kepada Anda alih-alih sebuah angka.
Mengubah sendiri sebuah hitungan menjadi biaya
Halaman ini tidak menyebutkan harga apa pun, dan itu disengaja: harga menjadi basi lebih cepat daripada apa pun yang lain pada topik ini, dan harga yang basi tidak meninggalkan sebuah halaman dalam keadaan tidak lengkap, ia meninggalkannya dalam keadaan salah. Yang tidak menjadi basi adalah aritmetikanya, jadi inilah dia, dan Anda bisa menerapkannya pada apa pun yang disebutkan halaman penyedianya sendiri hari ini.
- Penyedia mencantumkan tarif per satu juta token. Ambil hitungan dari halaman ini, bagi dengan satu juta, lalu kalikan dengan tarif itu. Itulah biaya mengirim teksnya satu kali.
- Masukan dan keluaran dihargai terpisah, dan keluaran biasanya yang lebih mahal di antara keduanya. Halaman ini menghitung apa yang Anda kirim. Ia tidak bisa menghitung balasan yang belum ada, jadi biaya apa pun yang Anda hitung darinya adalah lantai dan tidak pernah jumlah akhirnya.
- Sebuah percakapan mengirim ulang riwayatnya. Kalau teks Anda adalah prompt sistem yang ikut pada setiap giliran, kalikan dengan jumlah giliran yang Anda perkirakan, lalu kalikan lagi dengan jumlah pengguna, sebelum memutuskan apakah memendekkannya sepadan dengan satu sore.
Hitungan yang sama menjawab pertanyaan lain yang dibawa orang ke sini, yaitu apakah sebuah teks akan muat. Halaman ini juga tidak akan mengatakannya kepada Anda, karena jendela konteks adalah angka yang bergerak dan janji tentang muat atau tidaknya sesuatu adalah janji yang tidak bisa ditepati oleh alat mana pun yang bukan modelnya sendiri. Yang diberikannya kepada Anda adalah angka untuk dibandingkan dengan angka berapa pun yang diterbitkan penyedianya.
Tidak ada yang Anda tempel yang keluar dari peramban Anda
Penghitungannya terjadi di dalam halaman yang sudah Anda muat. Tabel untuk pengodean yang Anda pilih diunduh sekali dari situs ini — itu adalah pengunduhan sebuah berkas, bukan pengunggahan teks Anda — dan segala sesudahnya berjalan di mesin Anda sendiri, di dalam utas terpisah supaya dokumen yang panjang tidak membekukan tab ini. Buka panel jaringan peramban Anda dan perhatikan sambil Anda mengetik: tidak ada permintaan yang keluar membawa apa yang Anda tulis.
Itulah yang membuatnya aman untuk menempelkan hal yang benar-benar ingin Anda hitung — prompt seorang pelanggan, pesan sistem internal, potongan dari dokumen pribadi — alih-alih versinya yang sudah dibersihkan, yang toh akan berakhir pada angka yang berbeda. Tidak ada pula yang disimpan: muat ulang halamannya dan kolomnya kosong, tidak ada riwayat dan tidak ada apa pun untuk dihapus sesudahnya.
Pertanyaan yang sering diajukan
- Apakah sebuah token sama dengan sebuah kata?
- Bukan, dan bernalar seolah-olah ia sama adalah cara paling umum untuk salah menyusun anggaran. Kata bahasa Inggris yang sering muncul kerap berupa satu token tunggal, tetapi kata yang jarang, sebuah nama, atau salah ketik menjadi beberapa; sebuah kata biasanya membawa spasi di depannya di dalam token yang sama; dan tanda baca serta indentasi dihitung seperti segala yang lain. Di luar bahasa Inggris ketidakcocokannya jauh lebih besar, karena sebuah token adalah urutan bita dan satu karakter tunggal sering kali dua, tiga, atau empat bita sebelum tabel mana pun dilihat.
- Bisakah saya cukup membagi jumlah karakter dengan empat?
- Hanya kalau Anda menulis prosa bahasa Inggris dan tidak keberatan meleset dengan selisih yang lebar. Angka itu adalah rata-rata atas satu jenis teks dalam satu bahasa. Kode sumber, tabel, daftar pengenal, dan segala yang ditulis dengan aksara lain semuanya mematahkannya, dan mereka mematahkannya ke arah yang memakan biaya lebih besar dan bukan lebih kecil. Angka di halaman ini adalah pemotongan yang sungguhan yang dilakukan oleh tabel yang sungguhan, jadi tidak ada alasan untuk memperkirakan ketika Anda bisa mengukur.
- Mengapa hitungannya tidak berubah ketika saya berpindah model?
- Karena kedua model itu memakai pengodean yang sama, dan yang melakukan penghitungan adalah pengodeannya. Ini normal dan bukan sebuah kesalahan: model yang lebih baru sangat sering mewarisi tabel pendahulunya, dan beberapa model dari satu pembuat berbagi satu tabel. Pengodeannya ditampilkan di samping hitungannya persis karena alasan ini — kalau namanya tidak berubah ketika Anda berpindah, angkanya pun tidak akan berubah.
- Mengapa bahasa saya memakan jauh lebih banyak token daripada bahasa Inggris?
- Dua alasan yang saling berlipat. Pengodeannya bekerja pada bita UTF-8, dan satu huruf di luar alfabet Latin berharga dua, tiga, atau empat bita di tempat satu huruf Latin berharga satu. Dan tabel-tabelnya dibangun dengan menghitung urutan di dalam korpus yang didominasi bahasa Inggris, sehingga kata-kata Inggris punya entri sendiri sementara kata-kata dalam bahasa lain sering dirakit dari serpihan. Kata yang terbuat dari tiga serpihan yang masing-masing tiga bita mahal dua kali lipat. Tempelkan teks Anda sendiri di atas dan Anda akan melihat di mana bahasa Anda sebenarnya berdiri.
- Mengapa salah satu model di daftar itu tidak punya angka?
- Karena pengodeannya tidak pernah diterbitkan, jadi tidak ada tabel untuk dipakai menghitung oleh halaman ini — atau oleh halaman lain mana pun yang berjalan di peramban Anda. Halaman yang menunjukkan sebuah angka kepada Anda untuk model semacam itu sedang menjalankan teks Anda melalui tabel milik model lain dan menyajikan sebuah tebakan sebagai pengukuran. Tebakan itu menghitung kurang, dan kurangnya paling parah pada kode dan pada teks yang bukan bahasa Inggris, yaitu justru di tempat Anda membutuhkannya benar.
- Lalu dari mana datangnya hitungan yang persis untuk model itu?
- Dari layanan penghitungan token milik pembuat model itu sendiri. Itulah satu-satunya sumber yang bisa persis, karena hanya pembuatnya yang memegang tabelnya. Layanan itu butuh kunci API, yang tidak mungkin dipegang oleh halaman yang berjalan sepenuhnya di peramban Anda dan yang tidak boleh sekali pun diminta dari Anda — jadi hal jujur yang bisa dilakukan halaman ini adalah memberi tahu Anda ke mana harus pergi alih-alih mengarang sebuah angka. Kalau Anda memang sudah memanggil model itu dari kode Anda sendiri, kunci yang sama yang Anda pakai di sana akan menjawab pertanyaan ini.
- Apakah spasi, pergantian baris, dan indentasi ikut dihitung?
- Ya, semuanya, dan jumlahnya bisa menumpuk lebih banyak daripada yang diduga orang. Kode berindentasi, baris kosong di antara paragraf, dan padding di dalam tabel yang ditempel semuanya bita, dan pengodeannya memang punya token untuk beberapa spasi sekaligus, jadi biayanya bukan satu token per spasi — tetapi bukan pula nol. Kalau Anda sedang memangkas pesan sistem yang panjang, memformat ulangnya layak diukur sebelum Anda mulai memotong kalimat.
- Apakah teks saya dikirim ke server?
- Tidak. Tabel untuk pengodean yang Anda pilih diunduh sekali dari situs ini, dan sesudah itu setiap hitungan dilakukan di dalam peramban Anda sendiri, di dalam utas terpisah. Buka panel jaringan Anda dan perhatikan sambil Anda mengetik: tidak ada permintaan yang membawa apa yang Anda tulis. Tidak ada pula yang disimpan, jadi memuat ulang halamannya meninggalkan kolom yang kosong dan tidak ada apa pun untuk dihapus.
- Apakah ini akan memberi tahu saya berapa biaya prompt saya, atau apakah ia muat?
- Tidak keduanya, dan kedua penolakan itu disengaja. Sebuah harga akan basi dalam hitungan bulan dan tidak ada apa pun di sini yang bisa menangkapnya, jadi panduan ini mengajarkan aritmetikanya saja dan menyerahkan tarifnya kepada halaman penyedianya sendiri. Jendela konteks adalah angka yang bergerak dengan cara yang sama, dan muat atau tidaknya sebuah teks juga bergantung pada balasannya, yang tidak bisa dilihat halaman ini. Yang Anda dapatkan adalah satu angka yang menjadi titik tolak kedua pertanyaan itu, dihitung dengan persis.
Alat terkait
- Panjang string
Hitung karakter, kata, dan baris — sadar Unicode.
- Penguji regex
Uji ekspresi reguler — cocok, ganti, pisah.
- Diff teks
Bandingkan dua teks — setiap baris dan kata yang berubah.
- Inspektur karakter Unicode
Lihat persis dari karakter apa string terbuat.