Lensa ML

Decoder-Only Transformer

Langkah 1 dari 6: Arsitekturnya

Di dalam decoder-only transformer block

Decoder block (N)5
Struktur Decoder-Only TransformerModel lengkap (kiri) dan satu decoder block (kanan)Vector token output#sarecool.!×5Decoder blockDecoder blockDecoder blockDecoder blockDecoder blockPosemb+++++Vector token inputLLM#sarecool.Satu decoder blockLayer NormMasked Self-Attention+Layer NormFFNN+Struktur model decoder-only transformer
Blok
5
Komponen/blok
5
Attention
Causal

Model decoder-only kecil dengan 5 blok. Token input diubah menjadi vector lalu digabung dengan position embedding (supaya model tahu urutan kata). Setiap decoder block menerapkan masked self-attention (token hanya melihat masa lalu), diikuti feed-forward network, dengan residual connection dan layer norm. Output-nya memprediksi token berikutnya di setiap posisi.

Geser slider Decoder block (N) dari 5 sampai 12. GPT-1 (2018) menumpuk 12 blok seperti ini. Layer terakhir memetakan vector tiap posisi ke satu skor per token kosakata, dan banyak model memakai ulang matriks input embedding untuk output layer ini (weight tying). Cara ini menghemat parameter sebanyak kosakata × lebar, sekitar 38,6 juta pada GPT-2 Small (50.257 × 768). Karena satu tumpukan membaca prompt sekaligus menulis jawaban, weight yang sama melayani setiap tugas. Itulah sebagian besar alasan desain ini menggeser model encoder-decoder untuk model bahasa serbaguna.

Langkah 2 dari 6: Causal Masking

Token hanya bisa melihat masa lalu

Posisi query3
Causal Mask: token hanya melihat masa laluSegitiga atas = di-mask menjadi −∞ sebelum softmaxQueryKeyThecatsatonthematThecatsatonthemat1.00✕✕✕✕✕0.650.35✕✕✕✕0.260.410.33✕✕✕0.310.190.270.23✕✕0.150.280.180.240.15✕0.140.230.160.190.140.15"on" (posisi 3) bisa memperhatikan:The31%cat19%sat27%onquerythemaskedmatmasked
Posisi query
3
Terlihat
4
Masked
2
Entropy
1.98

Posisi 3 melihat 4 token. Konteks yang lebih banyak menghasilkan entropy lebih tinggi (1,98 bit) karena attention tersebar ke lebih banyak token. Di posisi terakhir, model melihat seluruh sequence, seperti saat inference. Inilah sebabnya training decoder-only efisien: satu forward pass menghasilkan 5 sinyal training (satu per posisi).

Geser slider Posisi query dari 0 sampai 5 dan perhatikan angka ENTROPY. Karena tidak ada token yang bisa melihat token sesudahnya, representasi sebuah token tidak pernah berubah ketika teks ditambahkan di belakangnya. Sifat inilah yang memungkinkan caching: key dan value yang dihitung untuk prompt tetap berlaku sepanjang percakapan. Bidirectional encoder seperti BERT tidak punya sifat ini, karena menambah satu kata mengubah setiap representasi sebelumnya. Sebagian model memakai prefix-LM mask, yang membuat token prompt saling melihat sepenuhnya dan hanya bagian yang dihasilkan yang bersifat causal.

Langkah 3 dari 6: Layer Normalization

Menstabilkan aktivasi di transformer yang dalam

Skala aktivasi5
Layer NormalizationMenstabilkan aktivasi di antara perkalian matriksAktivasi Mentah (skala = 5×)4.0-6.01.510.5-2.58.0-4.52.0γ · (x − μ) / √(σ² + ε) + βSetelah LayerNorm0.44-1.40-0.021.63-0.761.17-1.120.07Pre-Norm (LLM modern)LayerNorm→Sublayer→Add
Mean
1.63
Std
5.45
RMS
5.69
Varian
LayerNorm

Layer Normalization standar menghitung mean dan varians pada dimensi embedding untuk tiap token secara terpisah. Lalu ia menormalkan ke mean nol dan varians satu, dan menerapkan parameter skala (γ) dan geser (β) yang dipelajari. Dengan skala=5×, aktivasi mentah berkisar dari -6,0 sampai 10,5, tetapi setelah LayerNorm nilainya stabil antara -1,40 dan 1,63. LLM modern memakai pre-norm: normalisasi sebelum setiap sublayer (attention, FFN), bukan sesudahnya, sehingga model yang dalam jauh lebih stabil saat di-train.

Geser slider Skala aktivasi dari 1 sampai 20, lalu pindah antara LayerNorm dan RMSNorm. LayerNorm menghitung y = γ · (x − μ) / √(σ² + ε) + β untuk setiap token; RMSNorm menghitung y = γ · x / √(mean(x²) + ε). Transformer asli menormalkan setelah setiap penjumlahan residual (post-norm), yang butuh learning-rate warmup agar training-nya andal. Xiong dkk. (2020) menunjukkan bahwa normalisasi sebelum setiap sublayer (pre-norm) menjaga gradient tetap stabil saat inisialisasi, sehingga warmup jauh kurang berpengaruh. GPT-2 memakai pre-norm, dan hampir semua LLM sesudahnya mengikuti.

Langkah 4 dari 6: Prediksi Token Berikutnya

Tujuan training yang berlaku umum

Temperature1.0
Prediksi Token Berikutnya"The cat sat down" → prediksi kata berikutnyaThecatsatdownDecoder-Only TransformerLinear (d → vocab_size)Softmax (T=1.0)Distribusi probabilitas pada kosakatain25.6%sat15.5%cat15.4%mat ✓14.9%ran6.5%down4.8%Loss = −log(P("mat")) = 1.90Setiap posisi memprediksi token berikutnya → 3 sinyal training per sequence
Temperature
1.0
Prediksi teratas
in
Loss
1.90
Perplexity
6.7

Pada temperature 1,0, distribusinya seimbang. Model mengeluarkan logit (skor mentah), membaginya dengan temperature, lalu menerapkan softmax. Loss = −log(P(benar)) = 1.90. Perplexity 6,7 berarti model sebingung memilih di antara ~7 token yang sama mungkinnya.

Geser slider Temperature dari 0,1 sampai 3,0 dan perhatikan LOSS serta PERPLEXITY. Perplexity adalah e^loss, eksponensial dari rata-rata cross-entropy dalam nat, jadi loss 2,3 setara dengan perplexity sekitar 10. Pretraining hanya memakai tujuan ini pada teks mentah, tanpa label, itu sebabnya skalanya bisa mencapai triliunan token. Kemampuan mengikuti instruksi dan bercakap-cakap datang belakangan, dari fine-tuning pada contoh dan dari preference training seperti RLHF. Dalam satu batch, loss dirata-ratakan pada setiap posisi di setiap sequence.

Langkah 5 dari 6: Generasi Autoregressive

Cara LLM menghasilkan teks token demi token

Token maksimum4
Generasi AutoregressiveHasilkan satu token setiap kali, tambahkan, ulangiSequence saat ini (2 token)thepromptcatpromptForward Pass (causal masked)Langkah 1: prediksi token berikutnyacat27.7%mat18.0%in13.6%on10.4%<pad>5.6%KV Cache: simpan K,V dari token sebelumnyaSetiap langkah hanya menghitung ulang token baru → O(n), bukan O(n²)
Dihasilkan
0/4
Panjang sequence
2
Berikutnya
cat
Keyakinan
28%

Mulai dari prompt "the cat". Tekan Putar atau Langkah untuk menghasilkan teks. Di setiap langkah model membaca sequence sejauh ini, dan distribusi output di posisi terakhir memilih token berikutnya. Inilah generasi autoregressive: setiap token baru bergantung pada semua token sebelumnya.

Tekan Putar atau Langkah, dan geser Token maksimum dari 1 sampai 8. Sistem sungguhan menjalankan generasi dalam dua fase. Prefill memproses seluruh prompt dalam satu lintasan paralel dan mengisi KV cache; decode lalu menambahkan satu token per lintasan. Cache tumbuh sebesar 2 (key dan value) × jumlah layer × lebar × jumlah token. Untuk model 7B dengan 32 layer dan attention selebar 4.096 dalam presisi 16-bit, itu sekitar 0,5 MB per token, atau 2 GB untuk 4.096 token. Sampling sering memangkas ekornya, dengan menyimpan k token teratas atau himpunan terkecil yang probabilitasnya mencapai p (nucleus sampling).

Langkah 6 dari 6: Varian Modern dan Skala

RoPE, GQA, SwiGLU, dan scaling law

Metode50
Perbaikan Arsitektur LLM ModernFondasi decoder-only yang sama, komponen yang disempurnakanEvolusi Positional EncodingAbsolutesin/cos atau dipelajariGPT-2, BERT012345RoPERotasi berpasanganLLaMA, Mistral012345ALiBiBias attention linearBLOOM, MPT0.0-0.1-0.2-0.3-0.4-0.5
Kategori
Posisi
Terpilih
RoPE
Dipakai oleh
LLaMA

Positional encoding berubah seiring waktu. Transformer asli memakai encoding sinusoidal tetap. RoPE (Rotary Position Embeddings) menerapkan matriks rotasi pada Q dan K di setiap layer, sehingga posisi relatif muncul sebagai sudut antar-vector. ALiBi mengurangkan bias linear berbasis jarak dari skor attention, tanpa parameter yang dipelajari.

Klik Posisi, Attention, FFN, dan Scaling, lalu geser slider di masing-masing. SwiGLU memakai tiga matriks weight, bukan dua, jadi LLaMA mengecilkan lebar feed-forward dari 4d menjadi sekitar (2/3) · 4d ≈ 2.7d agar jumlah parameternya tetap sama. Kaplan dkk. (2020) menemukan bahwa loss turun mengikuti power law terhadap parameter, data, dan komputasi. Hasil Chinchilla (Hoffmann dkk., 2022) setara dengan sekitar 20 token training per parameter untuk anggaran tetap, meskipun banyak model sekarang dilatih jauh lebih lama karena model yang lebih kecil lebih murah dijalankan.

Apa itu decoder-only Transformer?

Decoder-only Transformer adalah tumpukan blok identik, masing-masing berisi masked self-attention dan feed-forward layer, yang dilatih untuk memprediksi token berikutnya dari sebuah teks berdasarkan token sebelumnya. Causal mask mencegah setiap posisi melihat token sesudahnya, sehingga satu kali lewat pada teks training menghasilkan prediksi dan loss di setiap posisi. Saat inference, model menghasilkan teks dengan memprediksi satu token, menambahkannya, lalu mengulanginya.

Inilah arsitektur di balik GPT, Llama, Mistral, Gemma, Claude, dan sebagian besar large language model lain. Network yang sama membaca prompt dan menulis jawaban, sehingga menjadi satu antarmuka umum untuk chat, coding, terjemahan, peringkasan, dan tugas penalaran. Pilihan desainnya, seperti pre-norm, RMSNorm, RoPE, grouped-query attention, dan SwiGLU, kini muncul di hampir semua model terbuka.

Ide utama

  • Model decoder-only adalah tumpukan blok masked self-attention dan feed-forward.
  • Causal mask membuat setiap posisi hanya melihat dirinya sendiri dan token sebelumnya.
  • Training meminimalkan cross-entropy token berikutnya di semua posisi sekaligus.
  • Generasi bersifat autoregressive: prediksi satu token, tambahkan, ulangi.
  • KV cache menyimpan key dan value sebelumnya, sehingga setiap token baru hanya butuh satu lintasan singkat.
  • LLM modern menambahkan pre-norm RMSNorm, RoPE, grouped-query attention, dan SwiGLU ke desain aslinya.

Pertanyaan umum

Apa bedanya model decoder-only dan encoder-decoder?

Model encoder-decoder seperti T5 membaca input dengan bidirectional encoder dan menghasilkan teks dengan decoder terpisah yang memperhatikan encoder lewat cross-attention. Model decoder-only menaruh input dan output dalam satu sequence dan memakai satu tumpukan causal untuk keduanya. Pemisahan encoder-decoder bisa lebih efisien untuk tugas dengan input panjang dan output pendek, seperti peringkasan, sedangkan model decoder-only lebih mudah diskalakan dan dipakai untuk tugas terbuka.

Kenapa sebagian besar large language model berupa decoder-only?

Tujuan training-nya tidak butuh label dan menghasilkan loss di setiap token, jadi teks apa pun bisa dipakai. Satu model menangani tugas apa pun yang bisa ditulis sebagai teks, dan KV cache membuat generasi efisien. GPT-3 juga menunjukkan bahwa model decoder-only besar bisa mempelajari tugas baru dari contoh di dalam prompt, sehingga memperbesar desain ini menjadi jalur utama.

Apa itu context window?

Context window adalah jumlah maksimum token yang bisa diperhatikan model sekaligus, gabungan prompt dan output. Batasnya datang dari rentang positional encoding yang dipakai saat training dan dari memori, karena KV cache dan biaya attention tumbuh seiring panjang teks. Model modern berkisar dari beberapa ribu sampai lebih dari satu juta token.

Bisakah model decoder-only menghasilkan embedding atau mengklasifikasikan teks?

Bisa. Karena causal mask, hidden state token terakhir adalah satu-satunya yang sudah melihat seluruh input, jadi sering dipakai sebagai summary vector untuk klasifikasi atau retrieval. Banyak model embedding saat ini adalah LLM decoder-only yang di-fine-tune. Untuk klasifikasi, model juga bisa diberi prompt agar mengeluarkan satu kata label.

Penjelasan terkait

  • Arsitektur Transformer · Panduan visual untuk paper "Attention Is All You Need"
  • Cara Kerja Self-Attention · Query, key, dan value, inti dari self-attention
  • Language Modeling · Memprediksi token berikutnya, tujuan yang menggerakkan GPT, BERT, dan NLP modern
  • Positional Encoding · Cara transformer mengetahui urutan kata
  • Tokenization & BPE · Cara teks menjadi angka, dari karakter sampai subword token lewat byte-pair encoding
  • RLHF · Menyelaraskan model bahasa dengan preferensi manusia lewat reward model dan policy optimization

Referensi

  1. Brown et al. (2020), "Language Models are Few-Shot Learners", NeurIPS
  2. Touvron et al. (2023), "LLaMA: Open and Efficient Foundation Language Models"
  3. Xiong et al. (2020), "On Layer Normalization in the Transformer Architecture", ICML
  4. Hoffmann et al. (2022), "Training Compute-Optimal Large Language Models"
  5. Holtzman et al. (2020), "The Curious Case of Neural Text Degeneration", ICLR

Terakhir diperbarui