Belajar AI #16: Transformer & LLM — Attention Mechanism dan GPT

Ini episode yang paling lama saya tunda, karena Transformer terasa seperti gunung. Padahal begitu naik, pemandangannya sederhana: satu ide besar bernama attention, plus keberanian membuang semua mekanisme lama. Hampir semua LLM (Large Language Model) yang Anda pakai hari ini — GPT, Claude, Gemini — adalah turunan arsitektur ini dari paper “Attention Is All You Need”. Episode ini catatan cara saya akhirnya paham attention tanpa tenggelam di rumus.

Masalah yang Dipecahkan Attention

Sebelum Transformer, model bahasa dominan memproses teks berurutan (RNN/LSTM): token demi token, kiri ke kanan, seperti membaca lewat celah kertas. Dua masalah fatal: pertama, tidak bisa diparalelkan — token ke-100 harus menunggu token ke-99 selesai, padahal GPU jago paralel. Kedua, memori jangka panjang buruk: informasi dari awal kalimat panjang tergerus sepanjang perjalanan.

Attention membalik pendekatannya: setiap token boleh “melihat” langsung semua token lain dan menimbang mana yang relevan. Analogi programmer: alih-alih iterasi serial dengan variabel state yang terus dioverwrite, attention adalah lookup dengan bobot relevansi — seperti join antar tabel di mana setiap baris menarik informasi dari baris-baris lain sesuai skor kecocokan.

Query, Key, Value

Inti attention adalah trio Query-Key-Value. Setiap token diproyeksikan jadi tiga vektor:

  • Query: “apa yang sedang saya cari?” — seperti parameter pencarian.
  • Key: “apa label/iklan saya?” — seperti index yang dicocokkan.
  • Value: “isi informasi yang saya tawarkan.”

Skor relevansi = dot product Query satu token dengan Key semua token. Skor dinormalisasi softmax jadi bobot, lalu Value semua token dijumlahkan tertimbang oleh bobot itu. Hasilnya: representasi baru tiap token yang sudah “menyerap” konteks relevan. Contoh favorit: pada kalimat “kucing mengejar bola karena ia lelah”, attention membantu model menghubungkan “ia” dengan “kucing”, bukan “bola”.

import torch
import torch.nn.functional as F

d = 8                       # dimensi embedding
Q = torch.randn(4, d)       # 4 token x d
K = torch.randn(4, d)
V = torch.randn(4, d)

scores = Q @ K.T / d**0.5   # (4, 4): skor tiap token thd semua token
weights = F.softmax(scores, dim=-1)
out = weights @ V           # (4, d): representasi kontekstual

print(weights.shape)        # (4, 4)
print(out.shape)            # (4, 8)

Itu self-attention utuh dalam enam baris. Pembagian dengan √d menjaga skala skor agar softmax tidak terlalu tajam. Multi-head attention hanyalah menjalankan mekanisme ini beberapa kali paralel dengan proyeksi berbeda, lalu menggabungkan hasilnya — tiap head belajar jenis relasi yang berbeda.

GPT: Decoder-Only dan Next-Token Prediction

Paper aslinya punya encoder dan decoder untuk terjemahan. GPT mengambil separuh decoder saja, lalu melatihnya dengan tujuan yang sangat sederhana: prediksi token berikutnya. Beri triliunan kata dari internet, model belajar pola bahasa, fakta, bahkan gaya penalaran — semuanya dari satu objective itu. Trik pentingnya bernama causal masking: token dilarang melihat masa depan, supaya prediksi token berikutnya tetap jujur saat training.

KomponenPeran
Token embeddingToken jadi vektor (episode 15)
Positional encodingInfo urutan, karena attention buta posisi
Multi-head self-attentionToken saling menukar informasi konteks
Feed-forward layerOlahan per-token, tempat mayoritas parameter
Output softmaxDistribusi probabilitas token berikutnya

Jujur soal batas pemahaman saya: detail presisi di dalam LLM modern — teknik scaling, RLHF, sampling strategy — masih wilayah yang saya pelajari bertahap. Tapi mental model di atas cukup kokoh untuk membaca artikel teknis dan tidak lagi merasa tertipu oleh jargon. Attention bukan sihir; ia perkalian matriks yang dirancang cerdas.

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