Pengenalan Transformer

Revolusi dalam Natural Language Processing

๐ŸŽฏ Mengapa Transformer Penting?

Transformer adalah arsitektur neural network yang merevolusi dunia AI, terutama dalam pemrosesan bahasa alami (NLP). Model seperti GPT, BERT, dan ChatGPT semuanya dibangun di atas arsitektur Transformer.

Masalah yang Dipecahkan:

  • โŒ RNN lambat karena harus memproses sequence secara berurutan
  • โŒ Sulit menangkap dependensi jarak jauh dalam kalimat panjang
  • โœ… Transformer memproses semua token secara parallel
  • โœ… Attention mechanism memungkinkan setiap token "melihat" semua token lain

๐Ÿ“š Apa yang Akan Anda Pelajari?

๐Ÿ”ค

Konsep Dasar

Tokens, embeddings, dan representasi sequence

๐Ÿ‘๏ธ

Attention Mechanism

Bagaimana model "memperhatikan" bagian penting

๐Ÿงฎ

Matematika

Query, Key, Value, dan perhitungan attention

๐Ÿ—๏ธ

Arsitektur

Encoder-Decoder, Multi-Head Attention

๐ŸŽจ Analogi Sederhana

Bayangkan Anda membaca kalimat: "Kucing itu mengejar ekornya"

Untuk memahami kata "ekor", Anda perlu melihat kata "kucing" dan "nya". Transformer melakukan hal yang sama - setiap kata bisa "memperhatikan" kata-kata lain yang relevan!

Konsep Dasar

Memahami tokens, embeddings, dan sequences

๐Ÿ”ค Tokenization: Memecah Teks

Langkah pertama dalam memproses teks adalah mengubahnya menjadi tokens (unit-unit kecil).

Kalimat: "Saya belajar Transformer"
Saya belajar Transformer

๐Ÿ”ข Word Embeddings: Angka untuk Kata

Komputer tidak mengerti kata-kata. Kita perlu mengubah setiap token menjadi vektor angka (embedding).

"Saya"
โ†’
[0.2, -0.5, 0.8, 0.1, ...]

Biasanya memiliki dimensi 512 atau 768

๐Ÿ“Š Sequence Representation

Seluruh kalimat direpresentasikan sebagai matrix di mana setiap baris adalah embedding dari satu token.

Saya [0.2, -0.5, 0.8, ...]
belajar [0.1, 0.3, -0.2, ...]
Transformer [-0.4, 0.7, 0.5, ...]

Attention Mechanism

Inti dari arsitektur Transformer

๐Ÿ’ก Konsep Attention

Attention memungkinkan model untuk fokus pada bagian penting dari input ketika memproses setiap token.

Analogi: Mencari di Perpustakaan

Bayangkan Anda mencari informasi tentang "Python programming":

  • Query: Pertanyaan Anda ("Python programming")
  • Keys: Judul-judul buku di perpustakaan
  • Values: Isi dari buku-buku tersebut

Attention mencocokkan Query dengan Keys untuk menemukan Values yang relevan!

๐Ÿ”‘ Query, Key, Value (QKV)

Setiap token embedding ditransformasi menjadi 3 representasi berbeda:

Query (Q)

"Apa yang saya cari?"

Q = X ร— WQ

Key (K)

"Apa yang saya tawarkan?"

K = X ร— WK

Value (V)

"Informasi yang akan diberikan"

V = X ร— WV

๐Ÿงฎ Perhitungan Attention

Attention Score dihitung dengan 4 langkah:

1

Dot Product

Score = Q ร— KT

Mencocokkan seberapa relevan setiap token

2

Scaling

Score = Score / โˆšdk

Normalisasi untuk stabilitas

3

Softmax

Weights = softmax(Score)

Mengubah ke probabilitas (0-1)

4

Weighted Sum

Output = Weights ร— V

Menggabungkan informasi yang relevan

Formula Lengkap:

Attention(Q, K, V) = softmax(QKT / โˆšdk) V

๐ŸŽฌ Visualisasi Interaktif

Self-Attention

Token memperhatikan token lain dalam sequence yang sama

๐Ÿ”„ Apa itu Self-Attention?

Self-Attention adalah attention di mana Query, Key, dan Value semuanya berasal dari input yang sama (sequence itu sendiri).

Standard Attention

Q dari satu sequence, K & V dari sequence lain

(misalnya: dalam translation)

Self-Attention โญ

Q, K, V semuanya dari sequence yang sama

(token "berbicara" dengan token lain)

๐Ÿ“– Contoh Konkret

Kalimat: "Kucing itu makan ikan di dapur"

Kucing
itu
makan
ikan
di
dapur

Ketika memproses kata "itu":

  • Perhatian tinggi ke โ†’ "Kucing" (merujuk pada kucing)
  • Perhatian rendah ke โ†’ "makan", "ikan", "di", "dapur"

Demo Interaktif:

Klik pada kata untuk melihat attention weights:

๐ŸŽฏ Mengapa Self-Attention Powerful?

โšก

Parallelization

Semua token diproses bersamaan, tidak sequential seperti RNN

๐Ÿ”—

Long-range Dependencies

Bisa menangkap hubungan antar kata yang berjauhan

๐ŸŽฏ

Context-Aware

Representasi setiap kata disesuaikan dengan konteksnya

Multi-Head Attention

Belajar dari multiple perspectives secara parallel

๐ŸŽญ Konsep Multi-Head

Daripada satu attention, kita menggunakan multiple attention heads yang bekerja parallel, masing-masing fokus pada aspek berbeda.

Analogi: Tim Reviewer

Bayangkan membaca paper ilmiah dengan beberapa reviewer:

  • ๐Ÿ‘ค Reviewer 1: Fokus pada metodologi
  • ๐Ÿ‘ค Reviewer 2: Fokus pada eksperimen
  • ๐Ÿ‘ค Reviewer 3: Fokus pada kesimpulan

Setiap head adalah seperti reviewer yang fokus pada aspek berbeda!

๐Ÿ—๏ธ Arsitektur Multi-Head

Input
Embeddings (d_model = 512)
Split into Heads
Head 1
(d_k = 64)
Head 2
(d_k = 64)
Head 3
(d_k = 64)
...
Head 8
(d_k = 64)
Attention per Head
Attention
Attention
Attention
...
Attention
Concatenate & Project
Output (d_model = 512)

Formula:

MultiHead(Q, K, V) = Concat(headโ‚, ..., head_h) W^O
dimana head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)

๐Ÿ”ข Contoh Perhitungan

Transformer base menggunakan:

  • Number of heads (h) = 8
  • Model dimension (d_model) = 512
  • Dimension per head (d_k) = d_model / h = 64

Setiap head bekerja dengan vektor kecil 64-dim, lalu hasil digabungkan kembali jadi 512-dim.

๐ŸŽฌ Visualisasi Multi-Head

Positional Encoding

Memberikan informasi urutan pada model

โ“ Mengapa Perlu Positional Encoding?

Self-attention tidak peduli dengan urutan token. Kalimat "Kucing makan ikan" dan "Ikan makan kucing" akan menghasilkan attention yang sama!

โŒ Masalah

Tanpa positional info:

"Dog bites man" โ‰ˆ "Man bites dog"

โœ… Solusi

Tambahkan positional encoding:

Setiap posisi punya signature unik

๐ŸŒŠ Sine dan Cosine Functions

Transformer menggunakan fungsi trigonometri untuk encoding posisi:

Formula Positional Encoding:

PE(pos, 2i) = sin(pos / 100002i/d_model)
PE(pos, 2i+1) = cos(pos / 100002i/d_model)

pos = posisi, i = dimensi

Mengapa sine/cosine?

  • Menghasilkan pola unik untuk setiap posisi
  • Model bisa belajar relative positions
  • Generalisasi ke panjang sequence yang belum pernah dilihat

๐ŸŽจ Visualisasi Positional Encoding

Warna menunjukkan nilai encoding di berbagai dimensi

โž• Penambahan ke Embeddings

Positional encoding ditambahkan langsung ke word embeddings:

Word Embedding
[0.2, -0.5, 0.8, ...]
+
Positional Encoding
[0.0, 0.1, -0.2, ...]
=
Final Embedding
[0.2, -0.4, 0.6, ...]

Arsitektur Transformer Lengkap

Menyatukan semua komponen

๐Ÿ›๏ธ Gambaran Umum

Transformer terdiri dari dua bagian utama: Encoder dan Decoder.

๐Ÿ“ฅ Encoder

Memproses input sequence

  • Multi-Head Self-Attention
  • Feed-Forward Network
  • Layer Normalization
  • Residual Connections

๐Ÿ“ค Decoder

Menghasilkan output sequence

  • Masked Self-Attention
  • Encoder-Decoder Attention
  • Feed-Forward Network
  • Layer Normalization

๐Ÿ”„ Flow Data

๐Ÿงฉ Komponen Tambahan

Feed-Forward Network

Dua linear transformations dengan ReLU:

FFN(x) = max(0, xWโ‚ + bโ‚)Wโ‚‚ + bโ‚‚

Layer Normalization

Normalisasi untuk stabilitas training:

LayerNorm(x) = ฮณ(x - ฮผ)/ฯƒ + ฮฒ

Residual Connections

Skip connections untuk gradient flow:

output = LayerNorm(x + Sublayer(x))

๐Ÿ“Š Ukuran Model

Model Layers d_model Heads Parameters
Base 6 512 8 65M
Large 12 1024 16 340M
GPT-3 96 12288 96 175B

Contoh Kasus Nyata

Aplikasi Transformer dalam berbagai domain

๐ŸŒ Neural Machine Translation

Aplikasi pertama dan paling terkenal dari paper "Attention is All You Need"

Input (English):

"The cat sat on the mat"

โ†’

Output (French):

"Le chat รฉtait assis sur le tapis"

Cara Kerja:

  • Encoder: Memproses kalimat English
  • Decoder: Generate kalimat French word-by-word
  • Attention: Decoder memperhatikan bagian relevan dari input

๐Ÿค– BERT - Understanding Language

Bidirectional Encoder Representations from Transformers

Masked Language Modeling:

Saya suka makan [MASK] goreng

Prediksi: nasi (99%), pisang (0.5%)

Aplikasi BERT:

โœ“ Question Answering
โœ“ Sentiment Analysis
โœ“ Named Entity Recognition
โœ“ Text Classification

โœ๏ธ GPT - Text Generation

Generative Pre-trained Transformer

Autoregressive Generation:

Prompt: "Artificial intelligence is"

Generated: "Artificial intelligence is transforming how we live and work. From virtual assistants to autonomous vehicles..."

Keunggulan GPT:

  • ๐ŸŽฏ Zero-shot & Few-shot learning
  • ๐Ÿ’ฌ Conversational AI (ChatGPT)
  • ๐Ÿ“ Creative writing & Code generation
  • ๐Ÿ”„ Task adaptation tanpa fine-tuning

๐Ÿ–ผ๏ธ Vision Transformer (ViT)

Transformer tidak hanya untuk teks! ViT menggunakan Transformer untuk image classification.

1

Image dipecah jadi patches (16ร—16)

2

Setiap patch di-flatten jadi vector

3

Treat patches seperti tokens

4

Transformer encoder memproses

๐ŸŽ‰ Selamat!

Anda telah menyelesaikan tutorial Transformer dari dasar!

Yang Telah Anda Pelajari:

  • โœ… Konsep tokens dan embeddings
  • โœ… Attention mechanism (Query, Key, Value)
  • โœ… Self-Attention dan Multi-Head Attention
  • โœ… Positional Encoding
  • โœ… Arsitektur lengkap Encoder-Decoder
  • โœ… Aplikasi nyata: Translation, BERT, GPT, ViT

Langkah Selanjutnya:

๐Ÿ“š Baca paper asli: "Attention is All You Need"

๐Ÿ’ป Implementasi: Coba coding Transformer dari scratch

๐Ÿงช Eksperimen: Fine-tune BERT atau GPT untuk task Anda