| Istilah | Arti |
|---|---|
| tokenization | Proses mengubah teks menjadi deretan token berupa angka agar bisa diproses LLM, yang menurut video ini menjadi sumber banyak keanehan perilaku model. |
| tokenizer | Komponen terpisah dari LLM yang dilatih sendiri untuk menerjemahkan teks menjadi token dan sebaliknya, dan di video ini dibangun dari nol dengan Python. |
| bytes | Satuan data delapan bit dengan nilai 0 sampai 255 yang menjadi bahan awal tokenizer sebelum pasangan yang sering muncul digabung menjadi token baru. |
| utf8 | Cara standar mengubah karakter Unicode menjadi satu sampai empat byte, dipilih di video karena paling efisien dan paling banyak dipakai di internet. |
| merges | Daftar aturan penggabungan pasangan token yang paling sering muncul menjadi token baru, yang bersama kosakata membentuk seluruh isi tokenizer hasil pelatihan. |
| vocabulary | Kumpulan semua token yang dikenal tokenizer beserta nomornya, misalnya sekitar 50 ribu pada GPT-2 dan sekitar 100 ribu pada GPT-4. |
| sentence piece | Library tokenizer dari Google yang bisa melatih dan menjalankan tokenizer, dipakai Llama dan Mistral, dan bekerja langsung pada code point dengan opsi byte fallback. |
| special tokens | Token khusus di luar hasil merge, misalnya endoftext atau penanda awal dan akhir pesan chat, yang dipakai untuk memberi struktur pada data. |
| gpt2 | Model bahasa OpenAI yang makalah dan kode tokenizernya dibedah di video ini, dengan kosakata 50.257 token dan pola regex untuk memecah teks. |
| code points | Angka unik yang diberikan standar Unicode untuk setiap karakter, misalnya 104 untuk huruf h, yang bisa dilihat dengan fungsi ord di Python. |
| encoding | Proses atau skema pengubahan teks menjadi data berupa angka, baik dari karakter ke byte seperti UTF-8 maupun dari teks ke token oleh tokenizer. |
| Python | Bahasa pemrograman yang dipakai di video untuk menulis tokenizer, sekaligus contoh kode yang boros token pada GPT-2 karena setiap spasi menjadi token sendiri. |
Dalam video ini Andrej Karpathy membahas tokenization pada large language model, tahap yang ia sebut paling tidak ia sukai tetapi wajib dipahami. Tokenization mengubah teks menjadi deretan token, yaitu satuan dasar yang dibaca dan diprediksi oleh Transformer. Karpathy menunjukkan bahwa banyak keanehan LLM sebenarnya berakar pada tokenizer, bukan pada arsitektur model. Contohnya model sulit mengeja atau membalik kata, lebih buruk dalam bahasa non-Inggris, lemah dalam aritmetika sederhana, GPT-2 kurang baik menulis Python, muncul peringatan soal spasi di akhir prompt, dan model kacau saat ditanya tentang string aneh seperti SolidGoldMagikarp. Karena itu ia mengajak penonton membangun sendiri tokenizer bergaya GPT dengan algoritma Byte Pair Encoding dari nol di Python. Tujuannya agar penonton paham bagaimana teks diubah menjadi angka, mengapa pilihan desain tokenizer memengaruhi kemampuan dan biaya model, dan mengapa tahap ini tidak boleh diabaikan oleh siapa pun yang serius bekerja dengan LLM.
Karpathy memulai dari string Python sebagai deretan Unicode code point, lalu memilih encoding UTF-8 yang menghasilkan 256 kemungkinan byte. Ia menulis fungsi get_stats untuk mencari pasangan byte yang paling sering muncul, fungsi merge untuk menggantinya dengan token baru mulai dari 256, lalu melakukan 20 kali merge yang memberi rasio kompresi sekitar 1,27. Setelah itu ia membuat fungsi decode dengan errors replace dan fungsi encode yang menerapkan merges sesuai urutan. Ia lalu membedah GPT-2: pola regex yang memecah teks agar huruf, angka, dan tanda baca tidak digabung, ukuran kosakata 50.257 termasuk special token endoftext, serta perubahan pada tokenizer GPT-4 yang berukuran sekitar 100 ribu token dan lebih hemat untuk spasi Python. Ia juga memperkenalkan library tiktoken, repositori minbpe miliknya, dan SentencePiece yang dipakai Llama 2 dengan byte fallback. Video ditutup dengan pertimbangan ukuran kosakata, penambahan token baru, dan saran memakai tiktoken dengan kosakata GPT-4 bila memungkinkan.
Kata kunci
- tokenization
- merges
- utf8
- special tokens
- Mengikuti kuliah tentang tokenisasi pada large language model, bagian yang paling tidak disukai pembicara tetapi penting karena banyak keanehan LLM berakar di sana.
- Membangun algoritma byte pair encoding: byte UTF-8, pasangan terbanyak, merges, pelatihan tokenizer, ukuran vocabulary, serta encoding dan decoding.
- Membahas SentencePiece, special tokens, dan menelusuri kode encoder GPT-2 dari OpenAI.
Tulis catatan pribadimu untuk video ini. Catatan tersimpan di akunmu dan bisa dibuka dari perangkat mana pun.
