Decoder (Transformer) (ID)
Dekoder (Ingg. Decoder) — dalam Machine Learning dan deep learning, ini adalah komponen Neural Network yang tugas utamanya adalah mengubah representasi yang telah dikodekan (misalnya, vektor konteks atau urutan hidden state yang diperoleh dari encoder) menjadi urutan data keluaran (misalnya, teks atau gambar). Dekoder menghasilkan data keluaran langkah demi langkah, umumnya dalam mode autoregressive.
Dalam pengertian yang lebih luas, dalam teori informasi, dekoder adalah perangkat atau algoritma apa pun yang mengubah data yang telah dikodekan kembali ke format asli atau format yang dapat dipahami.
Konsep dan Tujuan
Jika encoder bertanggung jawab atas pemahaman dan kompresi data masukan, maka dekoder bertanggung jawab atas pembangkitan dan penguraian data keluaran. Dekoder mengambil representasi yang ringkas namun kaya informasi dan secara berurutan mengubahnya menjadi format yang diinginkan, baik itu kalimat dalam bahasa lain, deskripsi teks dari sebuah gambar, maupun urutan not musik.
Karakteristik utama dari sebagian besar dekoder adalah sifatnya yang autoregressive: untuk menghasilkan elemen berikutnya dalam urutan (misalnya, kata atau piksel), dekoder menggunakan baik representasi yang telah dikodekan maupun semua elemen yang telah dihasilkan sebelumnya.
Dekoder dalam Berbagai Arsitektur
Dekoder dalam Autoencoder
Dalam arsitektur autoencoder, dekoder menjalankan tugas yang merupakan kebalikan dari encoder:
- Encoder mengompresi data masukan menjadi representasi tersembunyi.
- Dekoder mengambil representasi tersembunyi tersebut dan mencoba memulihkan (merekonstruksi) data asli darinya.
Pelatihan jaringan semacam itu memungkinkan dekoder digunakan secara terpisah untuk menghasilkan data baru dengan cara memasukkan vektor dari ruang laten ke masukannya.
Dekoder dalam Recurrent Neural Network (RNN/LSTM)
Dalam model sequence-to-sequence (seq2seq) klasik yang berbasis RNN atau LSTM, dekoder berupa jaringan rekuren yang menghasilkan urutan keluaran token demi token.
- Prinsip kerja: Dekoder diinisialisasi dengan hidden state akhir (vektor konteks) dari encoder. Pada setiap langkah, dekoder menerima token yang sebelumnya telah dihasilkan beserta hidden state-nya sebelumnya, lalu menghasilkan token berikutnya dan memperbarui state-nya. Proses ini berlanjut sampai token khusus akhir urutan (`<EOS>`) dihasilkan.
Dekoder dalam Arsitektur Transformer
Dekoder berbasis arsitektur Transformer juga bekerja secara autoregressive, tetapi struktur internalnya berbeda. Dekoder terdiri dari tumpukan () lapisan-lapisan yang identik, di mana setiap lapisan memiliki tiga sublapis utama:
- Masked Multi-Head Self-Attention (Perhatian Diri Multi-Kepala dengan Masking): Mekanisme ini bekerja seperti pada encoder, tetapi dengan satu perbedaan penting — masking. Masker mencegah setiap posisi untuk "memperhatikan" posisi-posisi berikutnya dalam urutan. Hal ini menjamin bahwa prediksi untuk posisi hanya bergantung pada keluaran yang sudah diketahui pada posisi , sehingga sifat autoregressive tetap terjaga.
- Multi-Head Cross-Attention (Perhatian Silang Multi-Kepala): Ini adalah mekanisme kunci yang menghubungkan dekoder dengan encoder. Di sini, Query berasal dari lapisan dekoder sebelumnya, sedangkan Key dan Value berasal dari representasi keluaran encoder. Hal ini memungkinkan dekoder untuk fokus pada bagian-bagian yang paling relevan dari urutan masukan pada setiap langkah pembangkitan.
- Feed-Forward Network (Jaringan Neural Terhubung Penuh): Serupa dengan yang digunakan dalam encoder.
Jenis-Jenis Model Berbasis Dekoder
Model Encoder-Dekoder
Ini adalah arsitektur klasik di mana encoder dan dekoder bekerja berpasangan.
- Prinsip kerja: Encoder membuat representasi dari data masukan, dan dekoder menghasilkan data keluaran menggunakan representasi tersebut.
- Contoh: Transformer asli, T5, BART.
Model Decoder-Only (Hanya Dekoder)
Model-model ini, yang telah menjadi dominan dalam AI generatif, secara eksklusif menggunakan tumpukan dekoder Transformer.
- Prinsip kerja: Model-model semacam ini tidak memiliki cross-attention ke encoder karena memang tidak ada encoder. Model bekerja murni dalam mode autoregressive, memprediksi token berikutnya berdasarkan semua token sebelumnya dalam urutan yang sama. Prompt masukan dan teks yang telah dihasilkan diproses bersama-sama.
- Penerapan: Ideal untuk tugas-tugas yang mengharuskan melanjutkan teks yang diberikan (pembangkitan teks, sistem dialog, chatbot).
- Contoh: Seri GPT, LLaMA, Claude.
Hubungan dengan Encoder
Interaksi antara encoder dan dekoder merupakan prinsip fundamental untuk tugas-tugas transformasi.
- Encoder mengompresi informasi tentang urutan masukan ke dalam sekumpulan vektor.
- Dekoder menggunakan sekumpulan vektor tersebut untuk secara berurutan menghasilkan urutan baru.
Cross-attention memungkinkan dekoder pada setiap langkah untuk "berkonsultasi" dengan encoder guna memahami bagian mana dari teks asli yang perlu difokuskan saat itu. Misalnya, saat menerjemahkan sebuah kalimat, dekoder yang sedang menghasilkan kata dalam bahasa Jerman dapat "melihat" kata padanannya dalam bahasa Inggris dari masukan.
Lihat Juga
- GPT
Referensi
- Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.