Home Blog ChatGPT, Gemini, dkk. Itu Nggak Baca Hur...
ChatGPT, Gemini, dkk. Itu Nggak Baca Huruf, Tapi Token

ChatGPT, Gemini, dkk. Itu Nggak Baca Huruf, Tapi Token

78 views 4 min read
4 Min Read • New Post

ChatGPT, Gemini, dkk. Itu Nggak Baca Huruf, Tapi Token

Biaya, limit input, limit output, semua dihitung pakai token, bukan per kata. Makanya, menulis prompt yang rapi, padat, jelas itu bukan cuma enak dibaca. Tapi juga hemat token dan hemat biaya.

Author
Debi Kurnia Putra
debikurnia.id

Ini topik yang kelihatannya teknis, tapi sebenernya cukup relate ke hal-hal receh kayak cara kita “mecah-mecah” kata pas lagi chatting.

LLM itu nggak baca huruf, tapi token

Pertama yang harus dipahami, LLM kayak ChatGPT, Gemini, Llama, dkk itu sebenernya nggak baca teks dalam bentuk huruf atau kata utuh. Mereka baca yang namanya token.

Token itu bisa berupa:

  • satu kata utuh: kucing
  • potongan kata: meng-, -kan
  • satu karakter saja: a, !
  • bahkan spasi di depan kata

Jadi, di balik layar, kalimat:

"Saya lapar banget."

bisa saja berubah jadi list token semacam:

["▁Saya", "▁lapar", "▁banget", "."]

LLM itu bekerja di level token ini.

Kenapa teks harus di-tokenize dulu?

Komputer itu sukanya angka, bukan huruf. Jadi alurnya kurang lebih begini:

  1. Teks mentah: "saya lagi belajar tokenization"
  2. Dipecah jadi token: ["▁saya", "▁lagi", "▁belajar", "▁token", "ization"]
  3. Setiap token punya ID angka di kamus (vocabulary), misal:
    • "▁saya" → 12345
    • "▁lagi" → 5678
    • dan seterusnya
  4. Deretan token ID inilah yang dimasukkan ke model:

    [12345, 5678, 91011, 2222, 3333]

Baru setelah itu:

  • LLM memproses angka-angka ini
  • lalu memprediksi token berikutnya
  • dan di akhir diubah lagi jadi teks yang bisa kita baca

Tokenization adalah jembatan antara:

Teks manusiaangka yang dipahami model

Macam-macam gaya tokenization (subword)

Zaman dulu, NLP seringnya pakai dua pendekatan ekstrem:

  1. Character-level: pecah per huruf
    • Kelebihan: bisa handle kata baru, typo, bahasa asing
    • Kekurangan: sequence jadi panjang banget (boros, berat)
  2. Word-level: pecah per kata
    • Kelebihan: lebih pendek, enak
    • Kekurangan: kalau ketemu kata baru yang belum ada di kamus, bingung

LLM modern biasanya pakai pendekatan tengah-tengah yang disebut subword tokenization, misalnya:

  • BPE (Byte Pair Encoding) dipakai di banyak model lama/awal GPT
  • WordPiece dipakai di BERT dan teman-temannya
  • SentencePiece / Unigram dipakai di banyak model bahasa lain, termasuk yang multibahasa

Intinya mereka memecah teks jadi potongan kata yang cukup fleksibel:

  • kata umum bisa satu token
  • kata aneh, panjang, atau gabungan, bisa dipecah jadi beberapa token

Contoh:

  • "komputer" → ["▁komputer"] (1 token)
  • "komputerisasi" → ["▁komputer", "isasi"] (2 token)
  • "hypermegaundefined" → bisa jadi 4–5 token aneh

Token nggak selalu sama dengan kata

Ini sering bikin orang kaget. Misal dalam bahasa Indonesia / Inggris:

  • "aku" mungkin 1 token
  • "akuuuu" bisa 2–3 token tergantung tokenizer
  • Emoji "😂" seringnya 1 token, tapi kadang emoji kompleks bisa jadi beberapa token

Jadi kalau ada info seperti:

“Model ini punya context window 8.000 token”

Itu bukan berarti:

  • 8.000 kata
  • apalagi 8.000 karakter

Bisa saja:

8.000 token ≈ 5.000–6.000 kata, tergantung bahasanya, jenis kata, banyaknya angka, simbol, dsb.

Makanya pas kita pakai LLM:

Biaya, limit input, limit output, semua dihitung pakai token, bukan per kata.

Proses tokenization di balik layar

Kurang lebih alurnya gini pas kita kirim prompt ke LLM:

  1. Input dari user
    Kita ngetik:

    "Tolong jelaskan tokenization LLM dengan contoh."

  2. Tokenizer bekerja
    • Teks di-scan dari kiri ke kanan
    • Dicocokkan dengan kamus token yang sudah dilatih sebelumnya
    • Dicarikan potongan paling panjang yang cocok (greedy)
    • Diubah jadi token ID
  3. Masuk ke model
    • Deretan token ID ini masuk ke jaringan neural si LLM
    • LLM memproses konteks: token sekarang, token sebelumnya, dan seterusnya
  4. Model memprediksi token berikutnya
    • Model tidak memprediksi “huruf berikutnya”
    • Dia memprediksi token berikutnya
    • Jadi output awal model adalah deretan token ID juga
  5. Detokenization
    • Token ID → token string → digabung jadi teks biasa
    • Dari "▁token", "ization" jadi " tokenization" (ada spasi di awal, dll)
    • Baru tampil ke user

Hubungan tokenization dengan biaya & performa

Kalau kita pakai API LLM, biasanya:

  • Harga dihitung per 1.000 token
  • Input + output sama-sama dihitung

Misalnya:

  • Kamu kirim prompt 800 token
  • Model jawab 700 token
  • Total 1.500 token → dihitung ke billing

Dari sisi performa, semakin banyak token:

  • Semakin berat dan lama komputasinya
  • Karena banyak arsitektur LLM skalanya kira-kira O(n²) terhadap panjang sequence (meski sekarang banyak trik efisiensi baru)

Makanya, kalau menulis prompt yang rapi, padat, jelas itu bukan cuma enak dibaca, tapi juga hemat token dan hemat biaya.

Hal-hal kecil yang sering bikin kaget soal token

Beberapa hal “remeh” tapi penting:

  1. Spasi itu token
    Di banyak tokenizer, spasi sebelum kata itu nempel di tokennya.
    Contoh:

    " saya" beda dengan "saya" (di awal kalimat)

  2. Angka & format khusus
    Deretan angka panjang (202512311234) bisa dipecah jadi beberapa token, bukan satu.
  3. Emoji dan simbol aneh
    Kadang emoji kompleks, skin tone, atau kombinasi flag bisa jadi lebih dari satu token.

Singkatnya

Kalau diringkas:

Tokenization adalah proses mengubah teks mentah menjadi potongan-potongan kecil (token) yang masing-masing punya ID angka, supaya LLM bisa memprosesnya.

Tanpa tokenization:

  • Model nggak punya cara praktis untuk “mengerti” teks
  • Nggak ada jembatan antara dunia huruf dan dunia angka

Dengan tokenization:

  • Teks jadi struktur yang bisa dicerna
  • Biaya dan performa bisa diatur
  • Model bisa dilatih secara efisien di berbagai bahasa dan format

Komentar (0)

Tinggalkan Komentar

0/1000 karakter

Belum ada komentar. Jadilah yang pertama berkomentar!


Baca blog Debi di sini / Kontak Debi kontak@debikurnia.id, atau

WhatsApp