Alam Asya'rie
Situs personal untuk blog dan notes.
building-block-of-an-llm
Building Blocks of an LLM: From Dancing Men to Next-Token Prediction
1. Language Model
Language model adalah model yang mempelajari pola dan hubungan antar-token dalam bahasa berdasarkan distribusi statistik dari data teks.
Secara sederhana, language model belajar menjawab pertanyaan:
"Dengan melihat token-token sebelumnya, token apa yang paling mungkin muncul berikutnya?"
Contoh:
The cat is sitting on the ...
Model mungkin menghasilkan probabilitas:
mat 60%
floor 20%
chair 8%
table 5%
...
Secara sederhana:
context
↓
language model
↓
probability distribution
↓
next token
2. Token
Model tidak bekerja langsung dengan "kata" seperti yang kita pahami sebagai manusia.
Teks terlebih dahulu dipecah menjadi token.
Satu token bisa berupa:
- satu kata
- sebagian kata
- tanda baca
- karakter tertentu
- kombinasi karakter lainnya
Tergantung tokenizer yang digunakan. Tokenizer adalah program yang memecah input menjadi token.
Contoh sederhana:
makan
bisa saja menjadi:
[makan]
Sedangkan:
pelajaran
bisa saja menjadi:
[pel][ajaran]
Catatan: pembagian sebenarnya bergantung pada tokenizer. Jadi jangan menganggap pelajaran pasti menjadi dua atau tiga token.
Contoh sederhananya
Bayangkan bahasa adalah Lego.
Kita bisa membuat vocabulary berisi seluruh bentuk kata:
ajar
belajar
pelajar
pelajaran
mempelajari
dipelajari
...
Tetapi ini membuat jumlah "batu Lego" yang harus disediakan menjadi sangat banyak.
Alternatifnya, kita menyediakan potongan-potongan yang dapat digunakan kembali:
ajar
bel
pel
mem
di
an
i
...
Kemudian berbagai kata dapat dibangun dari kombinasi potongan tersebut.
Jadi tokenization pada dasarnya mencari building blocks yang cukup kecil tetapi tetap berguna.
3. Vocabulary
Vocabulary adalah kumpulan token yang tersedia bagi model/tokenizer.
Misalnya sebuah tokenizer mempunyai:
50.000 unique tokens
maka vocabulary-nya berisi sekitar 50.000 token tersebut.
Ini berbeda dengan jumlah kata yang dapat ditulis oleh model.
Dengan 50.000 token, model dapat menghasilkan jauh lebih banyak kemungkinan sequence, karena token-token tersebut dapat dikombinasikan.
Vocabulary
↓
[token A] [token B] [token C] ...
↓
kombinasi
↓
kata
↓
kalimat
↓
paragraf
↓
dokumen
Ini berkaitan dengan konsep open-ended output.
Vocabulary-nya finite, tetapi kombinasi token yang dapat dibuat sangat besar.
4. Mengapa Menggunakan Token, Bukan Seluruh Kata?
Salah satu alasannya adalah efisiensi vocabulary dan kemampuan menangani kata yang belum pernah dilihat secara utuh.
Misalnya jika setiap bentuk kata harus menjadi satu token:
ajar
belajar
pelajar
pelajaran
mempelajari
dipelajari
pembelajaran
...
Model harus mempunyai token terpisah untuk setiap bentuk tersebut.
Dengan subword tokenization, banyak bentuk dapat dibangun dari token-token yang sama.
Misalnya secara ilustratif:
belajar
pelajaran
mempelajari
dapat memiliki bagian yang saling digunakan kembali.
Keuntungannya:
Vocabulary dapat tetap relatif kecil, tetapi model masih dapat merepresentasikan jumlah kata yang sangat besar.
5. Bagaimana Language Model Belajar?
Di sinilah self-supervised learning berperan.
Model diberikan teks:
The cat sat on the mat.
Untuk autoregressive language model, teks tersebut dapat digunakan untuk membuat training task:
Input:
The
Target:
cat
Lalu:
Input:
The cat
Target:
sat
Lalu:
Input:
The cat sat
Target:
on
Dan seterusnya.
Tidak perlu manusia memberi label satu per satu.
Data itu sendiri menyediakan targetnya.
Model membuat prediksi:
The cat sat on the
↓
mat 20%
floor 50%
chair 10%
...
Kemudian dibandingkan dengan token sebenarnya:
mat
Kesalahan tersebut digunakan untuk memperbarui parameter model.
6. Parameter
Parameter adalah angka-angka internal yang menentukan bagaimana model mengubah input menjadi output probabilities.
Gambaran sederhananya:
Input tokens
↓
[ model parameters ]
↓
probability distribution
↓
next token
Training secara berulang melakukan:
data
↓
prediction
↓
compare with target
↓
calculate error
↓
update parameters
↓
prediction menjadi lebih baik
Jadi:
Parameter menentukan bagaimana probabilitas output dihitung.
Bukan parameter yang mengubah output setelah probabilitas keluar.
7. Masked vs Autoregressive Language Model
Ada dua pendekatan penting yang perlu dibedakan.
Masked Language Model
Sebagian token disembunyikan:
The cat [MASK] on the mat.
Model harus menebak:
sat
Model dapat menggunakan konteks di kiri dan kanan.
Pendekatan ini terkenal dari model seperti BERT.
Autoregressive Language Model
Model memprediksi token berikutnya berdasarkan token sebelumnya:
The
↓
The cat
↓
The cat sat
↓
The cat sat on
↓
The cat sat on the
↓
The cat sat on the mat
GPT termasuk keluarga pendekatan ini.
8. Kenapa Sekarang Sering Terdengar "Language Model = Generative AI"?
Secara teknis, tidak benar jika language model selalu berarti generative/autoregressive model.
Masked language model juga merupakan language model.
Namun, ketika kita berbicara tentang model seperti GPT, kita sedang berbicara tentang model yang dapat menghasilkan sequence baru secara autoregressive.
Itulah sebabnya istilah:
Generative AI
menjadi sangat populer.
Model tidak hanya melakukan:
input → classification
tetapi dapat:
input
↓
generate token
↓
generate token
↓
generate token
↓
...
↓
output yang open-ended
9. Analogi Dancing Men
Dalam The Adventure of the Dancing Men, Holmes melihat simbol-simbol yang awalnya tampak tidak bermakna:
🕺 🕺 🕺 🕺 ...
Ia kemudian mengamati pola, frekuensi, dan konteks untuk menemukan sistem di balik simbol tersebut. Dalam bahasa inggris, huruf yang paling sering muncul adalah e. Ia lalu mencari simbol yang paling sering muncul dan menggantinya dengan huruf e. Setelah itu ia mencari simbol dengan sedikit karakter dan mencari relasinya dengan kata I, of, a, an dll. Lalu setelah itu ia mencari akhiran simbol yang sama dan mengasumsikan itu adalah tion, ing, ed dll. Setelah semua selesai akhirnya ia berhasil memecahkan arti dari simbol dancing men.
Ada kemiripan konseptual dengan language model:
Dancing Men
simbol → pola → inferensi
Language Model
token → pola statistik → probabilitas token berikutnya
Tetapi jangan menyimpulkan bahwa LLM bekerja seperti Holmes secara harfiah.
Holmes mencari makna dan aturan cipher secara eksplisit. LLM mempelajari parameter statistik dari pola yang terdapat dalam data.
10. Mental Model
Secara keseluruhan:
DATA TEKS
↓
TOKENIZATION
↓
TOKENS
↓
SELF-SUPERVISED LEARNING
↓
MODEL PARAMETERS
↓
belajar pola & hubungan statistik
↓
LANGUAGE MODEL
↓
"Apa token berikutnya yang mungkin?"
↓
PROBABILITY DISTRIBUTION
↓
NEXT TOKEN
↓
ulangi proses tersebut
↓
OPEN-ENDED OUTPUT
Inti yang perlu diingat
LLM bukan sekadar database hubungan antar-kata.
Lebih tepat membayangkannya sebagai:
fungsi matematika besar dengan parameter yang dipelajari dari data, yang menerima konteks token dan menghasilkan distribusi probabilitas token berikutnya.
Mental model ini akan membantu ketika masuk ke topik berikutnya seperti:
- embeddings
- neural networks
- weights
- Transformer
- attention
- training
- inference
- context window