Wednesday

18-06-2025 Vol 19

Decoding”Attention Is All You Need…….”

Decoding “Attention Is All You Need”: Panduan Komprehensif untuk Transformator

Makalah “Attention Is All You Need” yang diperkenalkan pada tahun 2017 oleh Vaswani dkk. merevolusi bidang pemrosesan bahasa alami (NLP). Memperkenalkan arsitektur Transformator, ia menghilangkan kebutuhan akan jaringan saraf berulang (RNN) dan jaringan saraf konvolusi (CNN) tradisional, mengandalkan sepenuhnya pada mekanisme perhatian. Artikel ini akan mengupas tuntas makalah tersebut, menjelaskan konsep-konsep kunci, arsitektur, dan dampaknya yang mendalam pada lanskap AI.

Mengapa “Attention Is All You Need” Begitu Penting?

Sebelum Transformator, model NLP didominasi oleh RNN seperti LSTM dan GRU. Meskipun efektif dalam menangkap dependensi berurutan, RNN menderita beberapa keterbatasan:

  1. Serialisasi Inheren: RNN memproses data secara berurutan, yang membuatnya sulit untuk diparalelkan, sehingga memperlambat pelatihan.
  2. Vanishing/Exploding Gradients: RNN kesulitan menangani urutan yang panjang karena masalah vanishing atau exploding gradients.
  3. Kesulitan Menangkap Dependensi Jarak Jauh: Meskipun LSTM dan GRU mencoba mengatasi masalah ini, menangkap dependensi jarak jauh masih menjadi tantangan.

Transformator mengatasi batasan ini dengan memperkenalkan mekanisme perhatian yang memungkinkan model untuk fokus pada bagian-bagian yang relevan dari urutan input saat menghasilkan output. Arsitektur ini memungkinkan paralelisasi, menangani urutan yang panjang secara efektif, dan menangkap dependensi jarak jauh dengan lebih mudah.

Kerangka Artikel: Memahami Transformator Selangkah Demi Selangkah

Artikel ini akan membahas topik-topik berikut secara mendalam:

  1. Pengantar Mekanisme Perhatian: Menjelaskan konsep dasar perhatian, berbagai jenis perhatian, dan bagaimana perhatian memungkinkan model untuk fokus pada bagian-bagian yang relevan dari input.
  2. Arsitektur Transformator: Membahas arsitektur encoder-decoder dari Transformator, menjelaskan setiap komponen (self-attention, multi-head attention, feed-forward network, layer normalization, residual connections).
  3. Self-Attention Secara Mendalam: Penjelasan rinci tentang bagaimana self-attention bekerja, termasuk perhitungan query, key, dan value, dan fungsi softmax.
  4. Multi-Head Attention: Menjelaskan keuntungan dari multi-head attention dan bagaimana ia meningkatkan kemampuan model untuk menangkap berbagai jenis dependensi.
  5. Encoder dan Decoder: Analisis mendalam dari encoder dan decoder Transformator, menjelaskan peran dan fungsi masing-masing.
  6. Positional Encoding: Menjelaskan mengapa positional encoding diperlukan dan bagaimana ia menambahkan informasi tentang posisi kata-kata dalam urutan.
  7. Pelatihan dan Inferensi: Membahas proses pelatihan dan inferensi Transformator, termasuk fungsi loss, optimizer, dan teknik dekode.
  8. Aplikasi Transformator: Menjelajahi berbagai aplikasi Transformator dalam NLP dan bidang lainnya, seperti terjemahan mesin, ringkasan teks, penjawaban pertanyaan, dan visi komputer.
  9. Variasi dan Perkembangan Transformator: Meninjau variasi dan perkembangan dari arsitektur Transformator asli, seperti BERT, GPT, dan lainnya.
  10. Keuntungan dan Kerugian Transformator: Menimbang kekuatan dan kelemahan Transformator dibandingkan dengan arsitektur lainnya.
  11. Kesimpulan dan Arah Masa Depan: Merangkum dampak Transformator pada bidang AI dan membahas arah penelitian di masa depan.

1. Pengantar Mekanisme Perhatian

Mekanisme perhatian adalah inti dari Transformator. Singkatnya, perhatian memungkinkan model untuk fokus pada bagian-bagian yang relevan dari urutan input saat menghasilkan output. Ini meniru bagaimana manusia memusatkan perhatian pada bagian-bagian penting dari informasi untuk memahami konteks.

Konsep Dasar:

  • Query (Q): Representasi yang dihasilkan oleh decoder atau encoder yang digunakan untuk mencari informasi yang relevan.
  • Key (K): Representasi dari setiap elemen dalam urutan input yang digunakan untuk mencocokkan dengan query.
  • Value (V): Representasi dari setiap elemen dalam urutan input yang akan digunakan untuk menghasilkan output berbobot.

Proses perhatian melibatkan langkah-langkah berikut:

  1. Hitung skor kesamaan antara query dan setiap key.
  2. Normalisasi skor menggunakan fungsi softmax untuk menghasilkan bobot perhatian.
  3. Hitung jumlah berbobot dari value, di mana bobot adalah bobot perhatian.

Jenis-jenis Perhatian:

  • Self-Attention: Query, key, dan value berasal dari urutan input yang sama. Ini memungkinkan model untuk menangkap dependensi antara kata-kata dalam urutan yang sama.
  • Cross-Attention: Query berasal dari urutan output, dan key dan value berasal dari urutan input. Ini memungkinkan model untuk fokus pada bagian-bagian yang relevan dari urutan input saat menghasilkan output.
  • Global Attention vs. Local Attention: Global attention menghitung bobot perhatian untuk semua elemen dalam urutan input, sedangkan local attention hanya menghitung bobot perhatian untuk subset elemen.

Bagaimana Perhatian Bekerja?

Bayangkan Anda sedang membaca kalimat: “Kucing itu duduk di atas tikar.” Ketika Anda membaca kata “duduk“, perhatian Anda secara alami akan fokus pada kata “kucing” karena kata ini adalah subjek yang melakukan aksi duduk. Mekanisme perhatian dalam Transformator bekerja dengan cara yang serupa. Ia menghitung bobot perhatian yang menunjukkan seberapa penting setiap kata dalam input untuk menghasilkan output.

2. Arsitektur Transformator

Arsitektur Transformator adalah arsitektur encoder-decoder yang terdiri dari beberapa lapisan encoder dan decoder yang ditumpuk. Setiap lapisan encoder dan decoder berisi beberapa sub-lapisan, termasuk self-attention, multi-head attention, feed-forward network, layer normalization, dan residual connections.

Komponen Utama:

  1. Encoder: Memproses urutan input dan menghasilkan representasi kontekstual.
  2. Decoder: Menggunakan representasi kontekstual yang dihasilkan oleh encoder untuk menghasilkan urutan output.
  3. Self-Attention: Memungkinkan model untuk fokus pada bagian-bagian yang relevan dari urutan input.
  4. Multi-Head Attention: Meningkatkan kemampuan model untuk menangkap berbagai jenis dependensi.
  5. Feed-Forward Network: Menerapkan transformasi non-linear pada output dari lapisan perhatian.
  6. Layer Normalization: Menstabilkan pelatihan dan mempercepat konvergensi.
  7. Residual Connections: Memungkinkan informasi untuk mengalir langsung dari lapisan awal ke lapisan akhir, yang membantu mengatasi masalah vanishing gradients.
  8. Positional Encoding: Menambahkan informasi tentang posisi kata-kata dalam urutan.

Alur Data dalam Transformator:

  1. Urutan input diembedding menjadi vektor.
  2. Vektor embedding ditambahkan dengan positional encoding.
  3. Vektor yang dihasilkan dimasukkan ke dalam lapisan encoder.
  4. Lapisan encoder menghasilkan representasi kontekstual dari urutan input.
  5. Representasi kontekstual dimasukkan ke dalam lapisan decoder.
  6. Lapisan decoder menghasilkan urutan output.

3. Self-Attention Secara Mendalam

Self-attention adalah mekanisme perhatian yang paling penting dalam Transformator. Ini memungkinkan model untuk menangkap dependensi antara kata-kata dalam urutan yang sama.

Proses Self-Attention:

  1. Linear Projections: Input (misalnya, embedding kata) diproyeksikan menjadi tiga vektor: query (Q), key (K), dan value (V). Proyeksi ini dilakukan menggunakan matriks bobot yang dipelajari.
  2. Skor Kesamaan: Skor kesamaan dihitung antara setiap query dan setiap key. Skor ini biasanya dihitung menggunakan dot product, tetapi metode lain seperti penjumlahan atau jaringan saraf juga dapat digunakan.
  3. Softmax: Skor kesamaan dinormalisasi menggunakan fungsi softmax untuk menghasilkan bobot perhatian. Bobot perhatian menunjukkan seberapa penting setiap kata dalam input untuk kata tertentu.
  4. Weighted Sum: Hitung jumlah berbobot dari value, di mana bobot adalah bobot perhatian. Jumlah berbobot adalah output dari lapisan self-attention.

Persamaan Matematis:

Bobot perhatian dihitung sebagai berikut:

Attention(Q, K, V) = softmax(QKT / √dk)V

di mana:

  • Q adalah matriks query.
  • K adalah matriks key.
  • V adalah matriks value.
  • dk adalah dimensi dari key.

Mengapa Membagi dengan √dk?

Pembagian dengan akar kuadrat dari dimensi key (√dk) membantu menstabilkan gradien selama pelatihan. Tanpa pembagian ini, dot product dari query dan key dapat menjadi sangat besar, yang menyebabkan fungsi softmax menjadi sangat tajam dan gradien menjadi sangat kecil.

4. Multi-Head Attention

Multi-head attention adalah variasi dari self-attention yang memungkinkan model untuk menangkap berbagai jenis dependensi.

Ide Dasar:

Alih-alih melakukan self-attention hanya sekali, multi-head attention melakukan self-attention beberapa kali secara paralel, dengan setiap “head” menggunakan set matriks bobot yang berbeda. Output dari setiap head kemudian digabungkan dan diproyeksikan untuk menghasilkan output akhir.

Keuntungan Multi-Head Attention:

  • Menangkap Berbagai Jenis Dependensi: Setiap head dapat mempelajari untuk fokus pada jenis dependensi yang berbeda. Misalnya, satu head mungkin fokus pada dependensi sintaksis, sedangkan head lain mungkin fokus pada dependensi semantik.
  • Meningkatkan Kapasitas Model: Multi-head attention meningkatkan kapasitas model, memungkinkannya untuk mempelajari representasi yang lebih kompleks.

Proses Multi-Head Attention:

  1. Linear Projections: Input diproyeksikan menjadi beberapa set query, key, dan value menggunakan matriks bobot yang berbeda.
  2. Self-Attention: Self-attention dilakukan pada setiap set query, key, dan value.
  3. Concatenation: Output dari setiap head digabungkan.
  4. Linear Projection: Output yang digabungkan diproyeksikan untuk menghasilkan output akhir.

Persamaan Matematis:

MultiHead(Q, K, V) = Concat(head1, …, headh)WO

di mana:

headi = Attention(QWQi, KWKi, VWVi)

  • WQi, WKi, WVi adalah matriks proyeksi untuk head ke-i.
  • WO adalah matriks proyeksi untuk output.
  • h adalah jumlah head.

5. Encoder dan Decoder

Encoder dan decoder adalah dua komponen utama dari arsitektur Transformator. Encoder memproses urutan input dan menghasilkan representasi kontekstual, sedangkan decoder menggunakan representasi kontekstual untuk menghasilkan urutan output.

Encoder:

Encoder terdiri dari beberapa lapisan encoder yang ditumpuk. Setiap lapisan encoder berisi dua sub-lapisan:

  1. Multi-Head Self-Attention: Memungkinkan model untuk fokus pada bagian-bagian yang relevan dari urutan input.
  2. Feed-Forward Network: Menerapkan transformasi non-linear pada output dari lapisan perhatian.

Setiap sub-lapisan diikuti oleh layer normalization dan residual connection.

Decoder:

Decoder juga terdiri dari beberapa lapisan decoder yang ditumpuk. Setiap lapisan decoder berisi tiga sub-lapisan:

  1. Masked Multi-Head Self-Attention: Memungkinkan model untuk fokus pada bagian-bagian yang relevan dari urutan output yang telah dihasilkan. Masking diperlukan untuk mencegah model untuk “melihat ke masa depan” selama pelatihan.
  2. Multi-Head Cross-Attention: Memungkinkan model untuk fokus pada bagian-bagian yang relevan dari urutan input yang dihasilkan oleh encoder.
  3. Feed-Forward Network: Menerapkan transformasi non-linear pada output dari lapisan perhatian.

Setiap sub-lapisan diikuti oleh layer normalization dan residual connection.

Perbedaan Utama antara Encoder dan Decoder:

  • Decoder menggunakan masked self-attention, sedangkan encoder menggunakan self-attention biasa.
  • Decoder menggunakan cross-attention untuk berinteraksi dengan output encoder.

6. Positional Encoding

Karena Transformator tidak menggunakan RNN atau CNN, ia tidak memiliki cara bawaan untuk mengetahui posisi kata-kata dalam urutan. Untuk mengatasi masalah ini, positional encoding ditambahkan ke embedding kata.

Mengapa Positional Encoding Diperlukan?

RNN dan CNN memproses data secara berurutan, sehingga mereka secara inheren mengetahui posisi kata-kata dalam urutan. Transformator, di sisi lain, memproses semua kata dalam urutan secara paralel. Oleh karena itu, positional encoding diperlukan untuk memberikan informasi tentang posisi kata-kata dalam urutan.

Cara Kerja Positional Encoding:

Positional encoding menambahkan vektor ke embedding kata yang mewakili posisi kata dalam urutan. Vektor ini dihitung menggunakan fungsi sinusoidal dengan frekuensi yang berbeda.

Persamaan Matematis:

PE(pos, 2i) = sin(pos / 100002i/dmodel)

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

di mana:

  • pos adalah posisi kata dalam urutan.
  • i adalah indeks dimensi.
  • dmodel adalah dimensi dari embedding kata.

Mengapa Menggunakan Fungsi Sinusoidal?

Fungsi sinusoidal dipilih karena mereka memungkinkan model untuk mempelajari hubungan relatif antara posisi yang berbeda. Misalnya, jika dua kata berjarak k posisi terpisah, maka embedding posisi mereka akan memiliki hubungan yang konsisten, terlepas dari posisi absolut mereka.

7. Pelatihan dan Inferensi

Pelatihan dan inferensi adalah dua tahap penting dalam siklus hidup model Transformator.

Pelatihan:

Selama pelatihan, model Transformator dipelajari untuk memprediksi urutan target diberikan urutan input. Proses pelatihan melibatkan langkah-langkah berikut:

  1. Data Preparation: Data pelatihan dipersiapkan dengan mengubah urutan teks menjadi representasi numerik (misalnya, embedding kata).
  2. Forward Pass: Urutan input dimasukkan ke dalam model Transformator, dan model menghasilkan urutan output.
  3. Loss Calculation: Loss dihitung antara urutan output yang diprediksi dan urutan target. Fungsi loss yang umum digunakan adalah cross-entropy loss.
  4. Backpropagation: Gradien dari loss dihitung dan digunakan untuk memperbarui bobot model menggunakan optimizer seperti Adam.
  5. Iteration: Proses diulangi untuk banyak iterasi hingga model mencapai konvergensi.

Inferensi:

Selama inferensi, model Transformator digunakan untuk menghasilkan urutan output diberikan urutan input yang baru. Proses inferensi melibatkan langkah-langkah berikut:

  1. Data Preparation: Urutan input dipersiapkan dengan mengubahnya menjadi representasi numerik.
  2. Forward Pass: Urutan input dimasukkan ke dalam model Transformator, dan model menghasilkan urutan output.
  3. Decoding: Urutan output yang diprediksi didekode menjadi urutan teks. Teknik dekode yang umum digunakan termasuk greedy decoding, beam search, dan sampling.

Teknik Decoding:

  • Greedy Decoding: Memilih kata dengan probabilitas tertinggi pada setiap langkah.
  • Beam Search: Mempertahankan sejumlah kecil hipotesis yang paling menjanjikan dan memperluasnya pada setiap langkah.
  • Sampling: Mengambil sampel kata dari distribusi probabilitas yang diprediksi oleh model.

8. Aplikasi Transformator

Transformator telah mencapai kesuksesan luar biasa dalam berbagai aplikasi, terutama di bidang NLP.

Aplikasi Utama:

  1. Terjemahan Mesin: Transformator telah merevolusi terjemahan mesin, mencapai hasil yang lebih baik daripada model tradisional seperti RNN.
  2. Ringkasan Teks: Transformator dapat digunakan untuk meringkas dokumen teks yang panjang secara otomatis.
  3. Penjawaaban Pertanyaan: Transformator dapat digunakan untuk menjawab pertanyaan berdasarkan teks yang diberikan.
  4. Pemodelan Bahasa: Transformator dapat digunakan untuk memodelkan bahasa dan menghasilkan teks yang koheren dan realistis.
  5. Klasifikasi Teks: Transformator dapat digunakan untuk mengklasifikasikan teks ke dalam berbagai kategori.
  6. Pengenalan Entitas Bernama: Transformator dapat digunakan untuk mengidentifikasi entitas bernama dalam teks, seperti nama orang, organisasi, dan lokasi.
  7. Visi Komputer: Transformator juga telah diterapkan pada tugas-tugas visi komputer, seperti klasifikasi gambar, deteksi objek, dan segmentasi gambar.

Contoh Model Berbasis Transformator:

  • BERT (Bidirectional Encoder Representations from Transformers): Model transformator yang telah dilatih sebelumnya yang dapat digunakan untuk berbagai tugas NLP.
  • GPT (Generative Pre-trained Transformer): Model transformator generatif yang dapat digunakan untuk menghasilkan teks yang koheren dan realistis.
  • T5 (Text-to-Text Transfer Transformer): Model transformator yang dapat digunakan untuk semua tugas NLP dengan mengubahnya menjadi masalah text-to-text.

9. Variasi dan Perkembangan Transformator

Sejak diperkenalkannya Transformator asli, ada banyak variasi dan perkembangan yang telah diusulkan.

Variasi Utama:

  1. BERT (Bidirectional Encoder Representations from Transformers): Menggunakan encoder Transformator untuk mempelajari representasi kontekstual dari teks. Dilatih menggunakan masked language modeling dan next sentence prediction.
  2. GPT (Generative Pre-trained Transformer): Menggunakan decoder Transformator untuk menghasilkan teks. Dilatih menggunakan autoregressive language modeling.
  3. T5 (Text-to-Text Transfer Transformer): Mengubah semua tugas NLP menjadi masalah text-to-text. Menggunakan arsitektur encoder-decoder Transformator.
  4. Transformer-XL: Memungkinkan model untuk memproses urutan yang sangat panjang dengan mempertahankan representasi kontekstual dari segmen sebelumnya.
  5. Reformer: Mengurangi kompleksitas komputasi Transformator dengan menggunakan locality-sensitive hashing (LSH) dan reversible layers.
  6. Longformer: Dirancang untuk menangani urutan yang sangat panjang dengan menggunakan pola perhatian yang berbeda, seperti sliding window attention dan global attention.

Arah Penelitian Masa Depan:

  • Mengurangi Kompleksitas Komputasi: Mengembangkan metode untuk mengurangi kompleksitas komputasi Transformator, memungkinkannya untuk diterapkan pada urutan yang lebih panjang dan perangkat keras yang lebih terbatas.
  • Meningkatkan Efisiensi Data: Mengembangkan metode untuk melatih Transformator dengan lebih sedikit data.
  • Memahami Interpretasi: Meningkatkan pemahaman kita tentang bagaimana Transformator bekerja dan mengapa mereka berhasil.
  • Menggabungkan Pengetahuan: Menggabungkan pengetahuan eksternal ke dalam Transformator untuk meningkatkan performa mereka.

10. Keuntungan dan Kerugian Transformator

Seperti arsitektur lainnya, Transformator memiliki kekuatan dan kelemahan.

Keuntungan:

  1. Paralelisasi: Transformator dapat diparalelkan, yang membuatnya lebih cepat untuk dilatih daripada RNN.
  2. Dependensi Jarak Jauh: Transformator dapat menangkap dependensi jarak jauh dengan lebih mudah daripada RNN.
  3. Performa: Transformator telah mencapai hasil yang lebih baik daripada arsitektur lainnya pada berbagai tugas NLP.

Kerugian:

  1. Kompleksitas Komputasi: Transformator memiliki kompleksitas komputasi yang tinggi, terutama untuk urutan yang panjang.
  2. Membutuhkan Data: Transformator membutuhkan banyak data untuk dilatih dengan baik.
  3. Interpretasi: Transformator sulit diinterpretasikan.

11. Kesimpulan dan Arah Masa Depan

Makalah “Attention Is All You Need” telah merevolusi bidang NLP dengan memperkenalkan arsitektur Transformator. Transformator telah mencapai kesuksesan luar biasa dalam berbagai aplikasi, dan telah menginspirasi banyak variasi dan perkembangan.

Meskipun Transformator memiliki beberapa keterbatasan, seperti kompleksitas komputasi yang tinggi dan kebutuhan data, mereka terus menjadi arsitektur yang dominan dalam NLP. Arah penelitian di masa depan meliputi mengurangi kompleksitas komputasi, meningkatkan efisiensi data, memahami interpretasi, dan menggabungkan pengetahuan.

Transformator akan terus memainkan peran penting dalam kemajuan AI dan akan memungkinkan pengembangan aplikasi baru yang menarik di masa depan.

“`

omcoding

Leave a Reply

Your email address will not be published. Required fields are marked *