Model bahasa terbaik saat ini, mulai dari ChatGPT sampai Gemini, tidak dibangun di atas jaringan yang membaca kata satu per satu. Mereka dibangun di atas transformer, arsitektur yang memproses semua token sekaligus dan menggunakan attention untuk memahami hubungan antar-kata.
Dari RNN ke transformer
Pada awal era deep learning, ada tiga arsitektur yang mendominasi. Multilayer perceptron, CNN, dan RNN. RNN menjadi pilihan untuk data sekuensial seperti teks karena ia membaca input secara berurutan dan menyimpan konteks di hidden state.
Masalahnya, pendekatan sekuensial itu lambat dan rapuh. Teks panjang sulit dipahami, gradien sering menghilang, dan komputasi tidak bisa diparalelkan karena setiap langkah menunggu langkah sebelumnya.
Empat masalah RNN yang dipecahkan transformer
- Konteks panjang. RNN kesulitan dengan dokumen panjang. Transformer memberi perhatian yang sama pada token jauh dan dekat melalui banyak blok attention.
- Gradien hilang atau meledak. Transformer memakai skip atau residual connection, sehingga sinyal dari input lebih mudah mengalir selama training.
- Training lama. RNN yang dibentangkan mengikuti panjang urutan menjadi sangat dalam. Transformer membutuhkan lebih sedikit langkah untuk berlatih.
- Tidak bisa paralel. RNN memproses token satu per satu. Transformer menghitung semua token dalam satu waktu karena tidak bergantung pada recurrence.
Ruang embedding: kata berubah menjadi vektor
Transformer bekerja dengan angka. Setiap kata atau token dipetakan ke vektor dalam ruang berdimensi tinggi. Vektor ini disebut word embedding, dan posisinya di ruang tersebut mencerminkan makna.
Kata dengan makna mirip berada berdekatan. Kata "king" lebih dekat ke "queen" dan "crown" dibandingkan dengan "cat". Perhatikan juga contoh kalimat "Bailey is a dog and he is six years old". Kata "is" dan "and" berada di dekat kata "he", tetapi keduanya tidak memberi konteks apa pun. Kata "dog" justru jauh lebih relevan. Dari sini kita belajar bahwa kedekatan posisi tidak selalu sama dengan relevansi, dan kontekslah yang menentukan.

Attention: menimbang pentingnya setiap token
Attention adalah mekanisme yang membuat model menilai seberapa penting setiap token terhadap token lain. Setiap kata "memandang" semua kata lain, lalu memutuskan mana yang paling membantu memahami konteks. Hasilnya adalah bobot perhatian yang kemudian dipakai untuk menggabungkan informasi.
Query, key, dan value
Agar attention lebih fleksibel, transformer menambahkan parameter yang bisa dipelajari. Setiap token membuat tiga vektor baru dari embedding-nya.
- Query. Representasi token yang sedang mencari informasi dari kata lain.
- Key. Representasi informasi yang bisa ditawarkan setiap token.
- Value. Isi sebenarnya yang akan diteruskan setelah relevansi diketahui.
Ketiganya dihitung dengan mengalikan embedding X dengan matriks bobot masing-masing, yaitu Q = X x WQ, K = X x WK, dan V = X x WV.

Menghitung attention score
Untuk menentukan perhatian antara satu kata dan kata lain, model menghitung dot product antara query kata pertama dan key semua kata. Dot product bernilai besar ketika dua vektor mengarah ke arah yang serupa, sehingga hasilnya bisa dibaca sebagai skor kemiripan.
Setelah semua skor terkumpul, softmax menormalkannya menjadi bobot yang berjumlah satu. Bobot ini lalu dipakai untuk menjumlahkan vektor value secara tertimbang. Hasilnya adalah representasi baru yang membawa konteks dari seluruh kalimat.
Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) VQK^T menghitung kemiripan antar-token, pembagian sqrt(d_k) menjaga skala, softmax membuat bobot, dan V digabungkan sesuai bobot tersebut.Arsitektur transformer: encoder dan decoder
Transformer terdiri dari dua bagian besar. Encoder memproses input dan menghasilkan representasi abstrak, seperti halnya autoencoder. Decoder mengambil representasi tersebut dan menyusun output akhir, misalnya teks hasil terjemahan.
Pada bagian input, embedding dilengkapi dengan positional encoding. Informasi posisi ini penting karena attention tidak membaca token secara berurutan, padahal urutan kata tetap menentukan makna.

Multi-head attention dan komponen pendukung
Satu head attention hanya memberi satu sudut pandang. Multi-head attention menghitung attention beberapa kali secara paralel dengan matriks bobot yang berbeda. Satu head bisa fokus ke subjek, head lain ke objek, dan head lain ke hubungan jarak jauh. Hasil semua head kemudian digabungkan.
Setelah attention, hasilnya ditambahkan ke input semula melalui residual connection lalu dinormalisasi agar training lebih stabil. Selanjutnya setiap token melewati positionwise feed-forward network, dua layer fully connected dengan ReLU di antaranya. FFN ini diterapkan per posisi, sehingga informasi antar-token tidak dicampur di tahap ini.
Di dalam decoder ada blok tambahan bernama masked multi-head attention. Blok ini memastikan model hanya bisa melihat token sebelumnya saat menghasilkan teks, sehingga proses generasi tetap berurutan dan tidak membocorkan token masa depan.
LLM dan generasi teks
Lalu bagaimana transformer bisa menghasilkan paragraf panjang? Pada dasarnya LLM bekerja seperti autocomplete yang sangat besar. Model menerima kalimat, lalu memprediksi token berikutnya berdasarkan probabilitas.
Contohnya begini. Setelah kalimat "My dog, Bailey, knows how to perform many tricks", model bisa memberi probabilitas pada kelanjutan yang mungkin, misalnya "For example, he can sit, stay, and roll over" sekitar 3,1 persen dan beberapa alternatif lain dengan nilai serupa. Pada skala yang jauh lebih besar, proses yang sama berulang untuk memprediksi token demi token sampai terbentuk respons yang utuh.

Coba dengan kalimat sendiri
Konsep ini lebih mudah dipahami ketika dilihat angkanya. Di lab Transformer, masukkan kalimat pendek, pilih token fokus, lalu lihat embedding, Q, K, V, dan attention matrix dihitung langsung. Setelah memahami attention, bandingkan dengan Neural Network dan CNN. Ketiganya belajar representasi, tetapi cara membaca struktur datanya berbeda.
Artikel ini diadaptasi dari AI But Simple Issue #19 karya Edwin Dong. Versi aslinya bisa dibuka di newsletter.aibutsimple.com.
Masukkan kalimat sendiri dan baca attention matrix
Lihat embedding, Q, K, V, dan bobot attention dihitung langsung dari kalimat yang kamu ketik.
Buka Lab Transformer →