#
Arsitektur Transformer

Di bagian sebelumnya, kita telah memperkenalkan arsitektur umum Transformer dan menjelajahi bagaimana model-model ini menyelesaikan berbagai tugas. Sekarang, mari kita lihat lebih dekat tiga varian arsitektur utama dari model Transformer dan pahami kapan sebaiknya menggunakan masing-masing arsitektur.

Ingat bahwa sebagian besar model Transformer menggunakan salah satu dari tiga arsitektur: encoder-only, decoder-only, atau encoder-decoder (sequence-to-sequence). Memahami perbedaan ini akan membantu kamu memilih model yang tepat untuk tugas tertentu.

##
Model Encoder

Model encoder hanya menggunakan bagian encoder dari arsitektur Transformer. Pada setiap tahap, lapisan atensi dapat mengakses seluruh kata dalam kalimat awal. Model ini sering disebut memiliki atensi “bi-directional”, dan dikenal sebagai auto-encoding models.

Pretraining biasanya dilakukan dengan merusak kalimat (misalnya dengan memask kata secara acak), lalu meminta model untuk memulihkan kalimat aslinya.

Model encoder sangat cocok untuk tugas-tugas yang membutuhkan pemahaman penuh terhadap kalimat, seperti klasifikasi kalimat, named entity recognition, dan question answering ekstraktif.

Seperti yang kita lihat di [Bagaimana 🤗 Transformers menyelesaikan tugas](/chapter1/5), model encoder seperti BERT sangat baik dalam memahami teks karena dapat melihat konteks dari dua arah. Ini membuatnya ideal untuk tugas-tugas yang membutuhkan pemahaman menyeluruh terhadap input.

Contoh model:

- BERT
- DistilBERT
- ModernBERT

##
Model Decoder

Model decoder hanya menggunakan bagian decoder dari Transformer. Setiap kata hanya dapat melihat kata-kata sebelumnya dalam kalimat. Model ini dikenal sebagai auto-regressive models.

Pretraining biasanya melibatkan prediksi kata berikutnya dalam kalimat.

Model ini sangat cocok untuk tugas-tugas yang melibatkan generasi teks.

Model decoder seperti GPT dirancang untuk menghasilkan teks dengan memprediksi satu token pada satu waktu. Seperti yang telah kita bahas di [Bagaimana 🤗 Transformers menyelesaikan tugas](/chapter1/5), model ini hanya dapat melihat token-token sebelumnya, yang membuatnya sangat baik untuk generasi teks kreatif, namun kurang ideal untuk tugas-tugas yang membutuhkan pemahaman dua arah.

Contoh model:

- SmolLM Series
- LLaMA
- Gemma
- DeepSeek V3

###
Large Language Models (LLMs) Modern

Sebagian besar LLM saat ini menggunakan arsitektur decoder-only. Model ini mengalami peningkatan pesat baik dari segi ukuran maupun kemampuan.

####
Dua fase pelatihan:

1. Pretraining – belajar memprediksi token berikutnya
2. Instruction tuning – dilatih untuk mengikuti instruksi manusia

####
Kemampuan umum LLM saat ini:

Kemampuan | Deskripsi | Contoh
--- | --- | ---
Generasi teks | Menulis teks relevan & koheren | Menulis cerita, esai
Ringkasan | Meringkas dokumen panjang | Ringkasan eksekutif
Terjemahan | Bahasa-ke-bahasa | Inggris ke Spanyol
QA | Jawaban fakta | “Apa ibu kota Prancis?”
Generasi kode | Membuat fungsi dari deskripsi | Kode Python
Penalaran | Menyelesaikan langkah demi langkah | Masalah logika
Few-shot learning | Belajar dari 2–3 contoh | Klasifikasi teks

Anda dapat bereksperimen dengan LLM berbasis decoder langsung di peramban Anda melalui halaman repositori model di Hub. Berikut contoh dengan GPT-2, model open source klasik dari OpenAI:

##
Model Sequence-to-Sequence

Model encoder-decoder (atau sequence-to-sequence) menggunakan kedua bagian arsitektur Transformer. Encoder melihat seluruh input, sementara decoder hanya melihat token sebelumnya.

Contoh pretraining: T5 mengganti span teks dengan token [MASK], dan model diminta memulihkan teks tersebut.

Model ini sangat cocok untuk tugas yang melibatkan transformasi teks ke teks, seperti ringkasan, terjemahan, atau QA generatif.

Model seperti BART dan T5 menggabungkan kekuatan dua arsitektur: pemahaman input (encoder) dan generasi output (decoder). Ini membuat mereka unggul dalam tugas seperti ringkasan dan terjemahan.

###
Aplikasi praktis:

Aplikasi | Deskripsi | Contoh model
--- | --- | ---
Terjemahan | Bahasa-ke-bahasa | Marian, T5
Ringkasan | Meringkas teks panjang | BART, T5
Data-to-text | Data terstruktur → teks | T5
Koreksi tata bahasa | Memperbaiki kalimat | T5
QA generatif | Jawaban berdasarkan konteks | BART, T5

Contoh model:

- BART
- mBART
- Marian
- T5

##
Memilih Arsitektur yang Tepat

Tugas | Arsitektur | Contoh Model
--- | --- | ---
Klasifikasi teks | Encoder | BERT, RoBERTa
Generasi teks | Decoder | GPT, LLaMA
Terjemahan | Encoder-Decoder | T5, BART
Ringkasan | Encoder-Decoder | BART, T5
Named Entity Recognition | Encoder | BERT, RoBERTa
QA ekstraktif | Encoder | BERT
QA generatif | Decoder atau Seq2Seq | GPT, T5
Chatbot | Decoder | GPT, LLaMA

Saat memilih model: 1. Apakah tugasmu membutuhkan pemahaman dua arah? 2. Apakah kamu menganalisis teks atau membuat teks baru? 3. Apakah kamu mentransformasi satu bentuk teks ke bentuk lain?

Jawaban-jawaban ini akan membantumu memilih arsitektur yang tepat.

##
Mekanisme Attention

Sebagian besar model Transformer menggunakan full attention, dalam arti bahwa matriks attention berbentuk persegi. Ini bisa menjadi hambatan komputasi besar saat menangani teks panjang. Longformer dan Reformer adalah model yang mencoba menjadi lebih efisien dengan menggunakan versi sparsity (jarang) dari matriks attention untuk mempercepat pelatihan.

Mekanisme attention standar memiliki kompleksitas komputasi sebesar O(n²), di mana n adalah panjang urutan. Ini menjadi masalah untuk urutan yang sangat panjang. Mekanisme attention khusus di bawah ini membantu mengatasi keterbatasan tersebut.

###
Attention LSH

Reformer menggunakan attention LSH (Locality-Sensitive Hashing). Dalam perhitungan softmax(QKᵗ), hanya elemen terbesar (pada dimensi softmax) dari matriks QKᵗ yang akan memberikan kontribusi berarti. Jadi, untuk setiap query `q` dalam Q, kita hanya mempertimbangkan key `k` dalam K yang dekat dengan `q`. Fungsi hash digunakan untuk menentukan apakah `q` dan `k` cukup dekat. Attention mask dimodifikasi untuk memblokir token saat ini (kecuali pada posisi pertama), karena query dan key akan sama (dan jadi sangat mirip). Karena hasil hash bisa bersifat acak, beberapa fungsi hash digunakan dalam praktik (ditentukan oleh parameter `n_rounds`) dan hasilnya dirata-rata.

###
Attention Lokal

Longformer menggunakan attention lokal: sering kali, konteks lokal (misalnya, dua token di kiri dan kanan) sudah cukup untuk menentukan aksi dari sebuah token. Selain itu, dengan menumpuk lapisan attention yang memiliki jendela kecil (small window), lapisan terakhir akan memiliki bidang pengamatan (receptive field) yang lebih luas dari hanya token dalam jendela, sehingga memungkinkan model membangun representasi dari seluruh kalimat.

Beberapa token input yang telah dipilih juga diberi global attention: untuk token-token ini, matriks attention bisa mengakses semua token, dan proses ini bersifat simetris — semua token lain juga dapat mengakses token khusus tersebut (di samping token dalam jendela lokal mereka). Ini digambarkan dalam Gambar 2d pada makalah aslinya, dan contoh attention mask-nya dapat dilihat di bawah:

Dengan menggunakan matriks attention yang memiliki parameter lebih sedikit, model dapat menerima input dengan panjang urutan yang lebih besar.

###
Positional Encoding Aksial

Reformer menggunakan axial positional encodings: dalam model Transformer tradisional, positional encoding `E` adalah matriks berukuranl l l ×d d d, denganl l l sebagai panjang urutan dand d d sebagai dimensi hidden state. Untuk teks yang sangat panjang, matriks ini bisa menjadi sangat besar dan memakan banyak ruang di GPU.

Untuk mengatasinya, axial positional encodings memfaktorkan matriks besar `E` menjadi dua matriks yang lebih kecil, `E1` dan `E2`, dengan ukuran masing-masingl 1×d 1 l_{1} \times d_{1}l 1​×d 1​ danl 2×d 2 l_{2} \times d_{2}l 2​×d 2​, sedemikian hinggal 1×l 2=l l_{1} \times l_{2} = l l 1​×l 2​=l dand 1+d 2=d d_{1} + d_{2} = d d 1​+d 2​=d. (Dengan hasil perkalian panjang urutan, ini jauh lebih kecil ukurannya.) Embedding untuk langkah waktuj j j dalam `E` diperoleh dengan menggabungkan (concatenate) embedding darij%l 1 j \% l1 j%l 1 di `E1` danj//l 1 j // l1 j//l 1 di `E2`.

##
Kesimpulan

Di bagian ini, kita telah mempelajari tiga arsitektur utama Transformer serta beberapa mekanisme attention khusus. Memahami perbedaan arsitektur ini sangat penting untuk memilih model yang tepat untuk tugas NLP tertentu.

Saat Anda melanjutkan kursus ini, Anda akan mendapatkan pengalaman langsung dengan berbagai arsitektur tersebut dan mempelajari cara fine-tuning untuk kebutuhan spesifik Anda. Di bagian selanjutnya, kita akan melihat beberapa keterbatasan dan bias yang ada dalam model-model ini — hal-hal penting yang perlu Anda pahami saat akan menggunakannya dalam dunia nyata.

< > Update on GitHub