Tokenisasi: Cara AI Membaca Teks Jadi Token

· Tim GunaStudio

AI LLM

Model bahasa tidak membaca huruf atau kata seperti kamu. Sebelum teks apa pun bisa diproses, ia harus dipecah lebih dulu menjadi potongan kecil bernama token. Proses inilah yang disebut tokenisasi, dan hampir semua keanehan model bahasa besar bermula dari sini.

Kenapa teks harus dipecah

Komputer hanya bekerja dengan angka. Model bahasa pun tidak pernah melihat kata "kucing" sebagai kata, melainkan sebagai deretan bilangan. Tokenisasi adalah jembatan yang mengubah teks mentah menjadi bilangan yang bisa diproses model.

Di dunia pemrosesan bahasa, langkah ini dikenal sebagai analisis leksikal. Wikipedia menjelaskan tokenisasi sebagai proses memecah aliran teks menjadi token bermakna, entah itu kata, tanda baca, atau unit lain. Setiap token lalu diberi nomor unik dari sebuah daftar yang disebut kosakata. Model memakai nomor itu, bukan huruf aslinya.

Cara tokenizer memotong kata

Ada beberapa algoritma populer. Hugging Face mendokumentasikan tiga yang paling sering dipakai: byte-pair encoding (BPE), WordPiece, dan SentencePiece.

BPE berangkat dari karakter tunggal, lalu menggabungkan pasangan yang paling sering muncul menjadi unit yang lebih besar. Proses ini diulang berkali-kali sampai kosakata mencapai ukuran yang diinginkan. Hasilnya, kata umum bisa menjadi satu token, sementara kata jarang cenderung pecah menjadi beberapa potongan.

WordPiece mirip BPE, tetapi memilih penggabungan yang paling menambah kemungkinan data, bukan yang paling sering muncul. SentencePiece mengambil pendekatan berbeda: ia memperlakukan teks sebagai aliran karakter mentah, termasuk spasi, sehingga tidak bergantung pada aturan pemisah kata bahasa tertentu.

Ketiganya sama-sama berangkat dari data, bukan dari aturan tata bahasa buatan. Tokenizer tidak diberi daftar kata resmi. Ia hanya diberi banyak teks, lalu menemukan sendiri potongan mana yang paling efisien untuk mewakili teks tersebut.

Kosakata: tarik-menarik antara hemat dan lengkap

Setiap tokenizer punya satu keputusan penting: seberapa besar kosakata atau daftar token-nya. Kosakata besar berarti lebih banyak kata utuh yang bisa disimpan sebagai satu token, sehingga teks menjadi lebih hemat. Namun kosakata besar juga membuat setiap token lebih jarang muncul dalam pelatihan, sehingga model kesulitan mempelajarinya dengan baik.

Kosakata kecil melakukan sebaliknya. Ia lebih efisien dari sisi memori, tetapi memaksa satu kata panjang pecah menjadi lebih banyak potongan. Semakin banyak token yang dibutuhkan untuk sebuah kalimat, semakin cepat jendela konteks model terisi.

Karena itu tokenizer modern mencari titik tengah. Algoritma seperti BPE, WordPiece, dan SentencePiece pada dasarnya adalah cara otomatis menemukan potongan yang sering muncul, lalu menjadikannya satu token. Tidak ada aturan linguistik manual yang harus ditulis satu per satu untuk setiap bahasa.

Kenapa sebagian bahasa lebih boros token

Teori di balik tokenizer menjelaskan satu hal yang penting. Teks yang mirip dengan data pelatihannya cenderung dipecah lebih hemat, karena potongan yang dibutuhkan sudah umum. Sebaliknya, teks yang jarang muncul dalam data lebih sering dipecah menjadi banyak potongan kecil.

Efeknya terasa langsung pada biaya dan panjang konteks. Kalimat yang sama bisa memakan jumlah token berbeda tergantung seberapa cocok tokenizer dengan teks tersebut. Karena itu memilih model tidak cukup hanya melihat kecerdasannya, tetapi juga seberapa efisien ia memproses bahasamu.

Contoh kata yang terpecah

Ambil kata bahasa Inggris "unbelievable". Sebagai gambaran, model cenderung memecahnya menjadi potongan seperti "un", "believ", dan "able". Kata yang sangat umum biasanya menjadi satu token, sedangkan kata panjang atau jarang lebih sering dipecah menjadi beberapa bagian.

Karena ukuran kosakata dibatasi, tokenizer memilih potongan yang paling sering dipakai dalam data pelatihan. Setiap model punya tokenizer sendiri, jadi cara memecah teks bisa berbeda antar model. Dua model dengan kosakata berbeda dapat mengubah kalimat yang sama menjadi jumlah token yang tidak sama.

Kenapa LLM sulit menghitung huruf

Google mencatat bahwa satu token kira-kira setara empat karakter pada teks bahasa Inggris. Artinya, sebuah kata tidak selalu sama dengan satu token, dan satu token bisa berisi lebih dari satu huruf.

Inilah alasan model sering salah saat diminta menghitung jumlah huruf dalam sebuah kata. Model tidak melihat huruf satu per satu, ia melihat token. Ketika sebuah kata dipecah menjadi potongan tertentu, huruf yang berulang bisa tersembunyi di dalam satu potongan, bukan sebagai karakter terpisah. Model hanya punya nomor token, bukan daftar huruf.

Akibatnya, tugas yang terlihat sepele bagi manusia bisa jadi berat bagi model. Menghitung huruf, membalik kata, atau menebak ejaan adalah contoh tugas yang mengandalkan karakter, padahal model bekerja di tingkat token.

Kenapa token penting untuk kamu

Memahami token bukan sekadar teori. Biaya layanan model sering dihitung per token, dan batas konteks model juga diukur dalam token, bukan kata atau karakter. Google menyediakan cara untuk menghitung token dari teks, gambar, dan masukan lain sebelum kamu mengirim permintaan.

Kalau kamu memperkirakan panjang teks sekitar empat karakter per token, kamu bisa mengira-ngira biaya dan memastikan prompt tidak melewati batas. Ini juga menjelaskan mengapa bahasa yang berbeda bisa memakai jumlah token berbeda untuk menyampaikan makna yang sama.

Dari sudut pandang rekayasa, tokenisasi juga menentukan seberapa efisien model memakai jendela konteksnya. Kosakata yang tepat membuat kalimat umum lebih hemat token, sementara kosakata yang kurang cocok dengan bahasamu membuat teks cepat memakan ruang.

Ada satu akibat praktis yang sering luput. Karena model bekerja dengan token, panjang keluaran, biaya, dan batas masukan semuanya dihitung dalam satuan yang sama sekali bukan kata. Prompt yang tampak pendek di matamu bisa jadi lebih panjang menurut tokenizer, terutama jika berisi angka, kode, atau tanda baca yang dipecah menjadi banyak token kecil.

Karena itu, memperkirakan token sebelum mengirim permintaan menjadi kebiasaan yang berguna. Google menyediakan alat untuk menghitungnya, dan hasilnya sering berbeda dari dugaan. Kalau kamu terbiasa mengukur dengan token, keputusan soal desain prompt dan pemilihan model jadi lebih berdasar.

Kesalahan umum soal token

Kesalahan pertama adalah menganggap satu kata sama dengan satu token. Ini tidak benar untuk kata panjang, kata jarang, maupun teks berbahasa yang sedikit dalam data. Kesalahan kedua adalah menganggap token selalu berupa kata utuh. Token bisa berupa potongan kata, awalan, akhiran, bahkan sekadar potongan huruf.

Kesalahan ketiga adalah mengukur biaya dengan jumlah karakter. Angka empat karakter per token untuk bahasa Inggris hanya perkiraan kasar, bukan patokan pasti. Teks dengan banyak simbol, seperti kode program, sering dipecah menjadi jauh lebih banyak token daripada perkiraan itu.

Ringkasan

Tokenisasi mengubah teks menjadi token, lalu token menjadi angka yang dipakai model. BPE, WordPiece, dan SentencePiece adalah cara umum memecah teks. Karena model bekerja di tingkat token, bukan huruf, ia bisa kesulitan menghitung huruf. Paham hal ini membuat kamu lebih tepat memperkirakan biaya, batas konteks, dan keanehan model sehari-hari.