Belajar AI #47: Transformer dari Dalam — Multi-Head Attention, Positional Encoding, dan Kenapa Arsitektur Ini Mendominasi

Di episode #16 saya pernah menyentuh Transformer dari sisi konsep: attention sebagai mekanisme “menaruh perhatian”. Season 3 ini saya ingin membukanya — apa yang sebenarnya terjadi di dalam satu blok Transformer, kenapa arsitektur ini mendominasi LLM dari GPT sampai model open source 2026, dan keputusan desain di dalamnya yang masih relevan sampai sekarang.

Satu blok Transformer: pola yang diulang berkali-kali

Inti Transformer adalah satu blok yang di-copy-paste berkali-kali ke atas. Dalam satu blok ada dua sub-lapisan: multi-head self-attention, lalu feed-forward network (MLP) yang diterapkan per posisi. Masing-masing diselingi residual connection dan layer normalization. Kalau model punya 32 lapis, berarti blok ini diulang 32 kali — bobotnya berbeda tiap lapis, tapi bentuknya identik.

Ini analogi yang saya pakai: attention = hash map lookup yang diajarkan. Query adalah kunci yang kita cari, key adalah indeks yang tersimpan, value adalah isi yang keluar. Bedanya, lookup di hash map bersifat keras — cocok atau tidak. Attention bersifat lembut: skor query terhadap semua key, di-softmax jadi bobot antara 0 dan 1, lalu value digabung dengan bobot itu. Jadi “apa yang relevan” bukan keputusan binary, melainkan proporsi.

Multi-head: banyak sudut pandang sekaligus

Pertanyaan yang muncul waktu saya pertama kali baca: kenapa tidak pakai satu attention saja, tapi 8, 16, atau 32 head? Jawabannya, satu attention hanya bisa “menaruh perhatian” menurut satu kriteria pada satu waktu. Multi-head memecah dimensi menjadi beberapa sub-dimensi, masing-masing head punya projection sendiri (W_Q, W_K, W_V sendiri), sehingga bisa belajar pola yang berbeda: satu head mengikuti dependensi gramatikal seperti subjek ke kata kerja, satu lagi mengikuti referensi antar-kalimat, satu lagi pola lokal yang berdekatan, dan seterusnya. Hasil semua head digabung lewat projection keluaran.

Yang menarik bagi saya: hasil head tidak dibatasi kelipatan tertentu. Setiap head bekerja di sub-dimensi d dibagi jumlah head, lalu hasilnya digabung dan diproyeksikan ulang. Ini mirip parallel channels di CNN: tiap channel menangkap fitur berbeda dari input yang sama.

Positional encoding: Transformer tidak tahu urutan

Attention sendiri tidak peka urutan. Kalimat “kucing mengejar tikus” dan “tikus mengejar kucing” menghasilkan himpunan token yang sama — attention-nya identik, maknanya kebalik. Maka setiap token ditambahkan vektor posisi (positional encoding). Versi asli Transformer (2017) memakai sinus dan cosinus deterministik; model modern lebih sering pakai RoPE (rotary positional embedding) yang memutar vektor berdasarkan posisi relatif, plus attention bias untuk jarak. Hasilnya: model bisa membedakan “kata di posisi 5” versus “posisi 500”, sekaligus lebih stabil saat konteks memanjang.

Kenapa feed-forward tetap ada

Feed-forward per token (MLP dua layer dengan aktivasi seperti SwiGLU) kadang dianggap sepele, tapi riset menunjukkan MLP inilah yang menyimpan sebagian besar parameter model — di LLM modern, sekitar dua pertiga bobot ada di MLP, bukan di attention. Kalau attention bertugas “bertukar informasi antar token”, MLP bertugas “memproses informasi itu per token”. Analogi programmer-nya: attention = jaringan komunikasi antar service, MLP = logika bisnis di dalam tiap service.

KV cache, GQA, dan konsekuensi praktisnya

Karena attention bersifat autoregresif (token baru hanya melihat token sebelumnya), saat menghasilkan token berikutnya semua key dan value dari token lama di-cache — ini yang saya bahas sebagai KV cache di episode #38. Konsekuensi aritekturnya: head attention yang banyak berarti makin banyak KV yang harus disimpan. Maka muncul Grouped-Query Attention (GQA) — beberapa query head berbagi satu key/value head. Qwen, Llama, dan sebagian besar model 2025–2026 memakai GQA karena menekan memori KV tanpa menurunkan kualitas berarti. Ini contoh bagus: keputusan arsitektur lahir dari tekanan biaya inferensi, bukan sekadar akurasi.

Catatan penting: di balik “satu blok diulang N kali” ada fenomena residual stream — satu vektor yang mengalir dari lapisan pertama sampai terakhir, tiap blok hanya menambahkan koreksi kecil ke dalamnya. Ini memudahkan pelatihan lapisan-lapisan dalam karena gradien punya jalur “jalan tol” lewat residual.

Yang saya ambil

Membedah Transformer mengubah cara saya memandang LLM: bukan kotak hitam yang ajaib, tapi tumpukan mekanisme yang bisa ditunjuk satu per satu — attention yang lembut, multi-head yang paralel, posisi yang disuntikkan, MLP yang menyimpan pengetahuan, dan residual stream yang membuat semuanya bisa dilatih dalam. Pemahaman ini langsung kepakai waktu saya menjerat kenapa output model salah urutan, atau kenapa latensi naik saat konteks memanjang — semuanya punya penjelasan arsitektural.

Sumber

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses