Kecerdasan Buatan
Model Bahasa Besar Berbasis Decoder: Panduan Lengkap
Model Bahasa Besar (LLM) telah merevolusi bidang pemrosesan bahasa alami (NLP) dengan menunjukkan kemampuan luar biasa dalam menghasilkan teks mirip manusia, menjawab pertanyaan, dan membantu berbagai tugas terkait bahasa. Inti dari model yang kuat ini terletak pada arsitektur transformator khusus dekoder, varian dari arsitektur transformator asli yang diusulkan dalam makalah penting “Perhatian Adalah Yang Anda Butuhkan” oleh Vaswani dkk.
Dalam panduan komprehensif ini, kita akan mengeksplorasi cara kerja LLM berbasis decoder, mempelajari blok bangunan mendasar, inovasi arsitektur, dan detail implementasi yang telah mendorong model ini ke garis depan penelitian dan aplikasi NLP.
Arsitektur Transformer: Penyegaran
Sebelum mendalami secara spesifik LLM berbasis dekoder, penting untuk meninjau kembali arsitektur transformator, yang menjadi landasan pembuatan model ini. Transformator memperkenalkan pendekatan baru pada pemodelan sekuens, hanya mengandalkan mekanisme perhatian untuk menangkap ketergantungan jangka panjang dalam data, tanpa memerlukan lapisan berulang atau konvolusional.
Arsitektur trafo asli terdiri dari dua komponen utama: encoder dan decoder. Encoder memproses urutan masukan dan menghasilkan representasi kontekstual, yang kemudian digunakan oleh decoder untuk menghasilkan urutan keluaran. Arsitektur ini awalnya dirancang untuk tugas-tugas terjemahan mesin, di mana encoder memproses kalimat masukan dalam bahasa sumber, dan decoder menghasilkan kalimat yang sesuai dalam bahasa target.
Perhatian Diri: Kunci Kesuksesan Transformer
Di jantung kota transformator terletak pada mekanisme perhatian diri, sebuah teknik ampuh yang memungkinkan model menimbang dan mengumpulkan informasi dari berbagai posisi dalam urutan masukan. Tidak seperti model urutan tradisional, yang memproses token masukan secara berurutan, perhatian mandiri memungkinkan model menangkap ketergantungan antara pasangan token apa pun, terlepas dari posisinya dalam urutan.
Operasi perhatian diri dapat dipecah menjadi tiga langkah utama:
- Proyeksi Kueri, Kunci, dan Nilai: Urutan masukan diproyeksikan menjadi tiga representasi terpisah: query (Q), kunci-kunci (K), dan nilai-nilai (V). Proyeksi ini diperoleh dengan mengalikan masukan dengan matriks bobot yang dipelajari.
- Perhitungan Skor Perhatian: Untuk setiap posisi dalam urutan masukan, skor perhatian dihitung dengan mengambil perkalian titik antara vektor kueri yang bersangkutan dan semua vektor kunci. Skor ini mewakili relevansi setiap posisi dengan posisi yang sedang diproses saat ini.
- Jumlah Nilai Tertimbang: Skor perhatian dinormalisasi menggunakan fungsi softmax, dan bobot perhatian yang dihasilkan digunakan untuk menghitung jumlah vektor nilai yang tertimbang, sehingga menghasilkan representasi keluaran untuk posisi saat ini.
Perhatian multi-kepala, suatu varian dari mekanisme perhatian diri, memungkinkan model untuk menangkap berbagai jenis hubungan dengan menghitung skor perhatian di berbagai “kepala” secara paralel, masing-masing dengan rangkaian proyeksi kueri, kunci, dan nilainya sendiri.
Varian dan Konfigurasi Arsitektur
Meskipun prinsip inti LLM berbasis dekoder tetap konsisten, para peneliti telah mengeksplorasi berbagai varian dan konfigurasi arsitektur untuk meningkatkan kinerja, efisiensi, dan kemampuan generalisasi. Di bagian ini, kita akan mempelajari berbagai pilihan arsitektur dan implikasinya.
Jenis Arsitektur
LLM berbasis decoder secara luas dapat diklasifikasikan menjadi tiga jenis utama: decoder-encoder, decoder kausal, dan decoder awalan. Setiap jenis arsitektur menunjukkan pola perhatian yang berbeda.
Arsitektur Encoder-Decoder
Berdasarkan model vanilla Transformer, arsitektur encoder-decoder terdiri dari dua tumpukan: encoder dan decoder. Pembuat enkode menggunakan lapisan perhatian mandiri multi-kepala yang bertumpuk untuk menyandikan urutan masukan dan menghasilkan representasi laten. Decoder kemudian melakukan perhatian silang pada representasi ini untuk menghasilkan urutan target. Meskipun efektif dalam berbagai tugas NLP, hanya sedikit LLM, seperti Flan-T5, adopsi arsitektur ini.
Arsitektur Decoder Kausal
Arsitektur decoder kausal menggabungkan topeng perhatian searah, yang memungkinkan setiap token masukan hanya memperhatikan token masa lalu dan token itu sendiri. Token input dan output diproses dalam decoder yang sama. Model terkenal seperti GPT-1, GPT-2, dan GPT-3 dibangun berdasarkan arsitektur ini, dengan GPT-3 menampilkan kemampuan pembelajaran dalam konteks yang luar biasa. Banyak LLM, termasuk OPT, BLOOM, dan Gopher, telah banyak mengadopsi decoder kausal.
Arsitektur Dekoder Awalan
Juga dikenal sebagai dekoder non-kausal, arsitektur dekoder awalan memodifikasi mekanisme penyembunyian dekoder kausal untuk mengaktifkan perhatian dua arah pada token awalan dan perhatian searah pada token yang dihasilkan. Seperti arsitektur encoder-decoder, decoder awalan dapat mengkodekan urutan awalan secara dua arah dan memprediksi token keluaran secara otomatis menggunakan parameter bersama. LLM berdasarkan decoder awalan termasuk GLM130B dan U-PaLM.
Ketiga tipe arsitektur dapat diperluas menggunakan campuran ahli (MoE) teknik penskalaan, yang secara jarang mengaktifkan subset bobot jaringan saraf untuk setiap masukan. Pendekatan ini telah diterapkan pada model seperti Switch Transformer dan GLaM, dengan peningkatan jumlah pakar atau ukuran parameter total yang menunjukkan peningkatan kinerja yang signifikan.
Transformator Khusus Dekoder: Merangkul Sifat Autoregresif
Meskipun arsitektur transformator asli dirancang untuk tugas-tugas urutan-ke-urutan seperti terjemahan mesin, banyak tugas NLP, seperti pemodelan bahasa dan pembuatan teks, dapat dibingkai sebagai masalah autoregresif, di mana model menghasilkan satu token pada satu waktu, dikondisikan pada token yang dihasilkan sebelumnya.
Masukkan trafo khusus dekoder, varian sederhana dari arsitektur trafo yang hanya mempertahankan komponen dekoder. Arsitektur ini sangat cocok untuk tugas autoregresif, karena menghasilkan token keluaran satu per satu, memanfaatkan token yang dibuat sebelumnya sebagai konteks masukan.
Perbedaan utama antara trafo khusus dekoder dan dekoder trafo asli terletak pada mekanisme perhatian mandiri. Dalam pengaturan khusus dekoder, operasi perhatian mandiri dimodifikasi untuk mencegah model memperhatikan token masa depan, sebuah properti yang dikenal sebagai kausalitas. Hal ini dicapai melalui teknik yang disebut “perhatian diri bertopeng,” di mana skor perhatian yang sesuai dengan posisi masa depan ditetapkan ke tak terhingga negatif, yang secara efektif menutupinya selama langkah normalisasi softmax.
Komponen Arsitektur LLM Berbasis Decoder
Meskipun prinsip inti perhatian diri dan perhatian diri terselubung tetap sama, LLM berbasis dekoder modern telah memperkenalkan beberapa inovasi arsitektur untuk meningkatkan kinerja, efisiensi, dan kemampuan generalisasi. Mari kita jelajahi beberapa komponen dan teknik utama yang digunakan dalam LLM mutakhir.
Representasi Masukan
Sebelum memproses urutan masukan, LLM berbasis decoder menggunakan teknik tokenisasi dan penyematan untuk mengubah teks mentah menjadi representasi numerik yang sesuai untuk model.
Tokenisasi: Proses tokenisasi mengubah teks masukan menjadi rangkaian token, yang dapat berupa kata, subkata, atau bahkan karakter individual, bergantung pada strategi tokenisasi yang digunakan. Teknik tokenisasi populer untuk LLM termasuk Byte-Pair Encoding (BPE), SentencePiece, dan WordPiece. Metode ini bertujuan untuk mencapai keseimbangan antara ukuran kosakata dan perincian representasi, sehingga memungkinkan model menangani kata-kata yang jarang atau di luar kosakata secara efektif.
Penyematan Token: Setelah tokenisasi, setiap token dipetakan ke representasi vektor padat yang disebut penyematan token. Penyematan ini dipelajari selama proses pelatihan dan menangkap hubungan semantik dan sintaksis antar token.
Penyematan Posisi: Model transformator memproses seluruh urutan masukan secara bersamaan, tidak memiliki gagasan yang melekat tentang posisi token yang ada dalam model berulang. Untuk menggabungkan informasi posisi, penyematan posisi ditambahkan ke penyematan token, memungkinkan model membedakan token berdasarkan posisinya dalam urutan. LLM awal menggunakan penyematan posisi tetap berdasarkan fungsi sinusoidal, sementara model yang lebih baru telah mengeksplorasi penyematan posisi yang dapat dipelajari atau teknik pengkodean posisi alternatif seperti penyematan posisi putar.
Blok Perhatian Multi-Kepala
Blok penyusun inti LLM berbasis dekoder adalah lapisan perhatian multi-kepala, yang melakukan operasi perhatian mandiri bertopeng yang dijelaskan sebelumnya. Lapisan-lapisan ini ditumpuk beberapa kali, dan masing-masing lapisan memperhatikan keluaran dari lapisan sebelumnya, sehingga memungkinkan model untuk menangkap dependensi dan representasi yang semakin kompleks.
Kepala Perhatian: Setiap lapisan perhatian multi-kepala terdiri dari beberapa “kepala perhatian”, yang masing-masing memiliki rangkaian proyeksi kueri, kunci, dan nilainya sendiri. Hal ini memungkinkan model untuk menangani berbagai aspek masukan secara bersamaan, menangkap beragam hubungan dan pola.
Koneksi Sisa dan Normalisasi Lapisan: Untuk memfasilitasi pelatihan jaringan dalam dan mengurangi masalah gradien hilang, LLM berbasis dekoder menggunakan koneksi sisa dan teknik normalisasi lapisan. Koneksi sisa menambahkan masukan lapisan ke keluarannya, memungkinkan gradien mengalir lebih mudah selama propagasi mundur. Normalisasi lapisan membantu menstabilkan aktivasi dan gradien, yang selanjutnya meningkatkan stabilitas dan kinerja pelatihan.
Lapisan Umpan-Maju
Selain lapisan perhatian multi-head, LLM berbasis dekoder menggabungkan lapisan feed-forward, yang menerapkan jaringan saraf feed-forward sederhana ke setiap posisi dalam urutan. Lapisan ini memperkenalkan non-linearitas dan memungkinkan model mempelajari representasi yang lebih kompleks.
Fungsi Aktivasi: Pilihan fungsi aktivasi di lapisan feed-forward dapat berdampak signifikan terhadap performa model. Meskipun LLM sebelumnya mengandalkan aktivasi ReLU yang banyak digunakan, model yang lebih baru telah mengadopsi fungsi aktivasi yang lebih canggih seperti Gaussian Error Linear Unit (GELU) atau aktivasi SwiGLU, yang telah menunjukkan peningkatan kinerja.
Perhatian Jarang dan Transformer yang Efisien
Meskipun mekanisme perhatian mandiri sangat kuat, mekanisme ini memiliki kompleksitas komputasi kuadrat sehubungan dengan panjang rangkaian, sehingga memerlukan biaya komputasi yang mahal untuk rangkaian yang panjang. Untuk mengatasi tantangan ini, beberapa teknik telah diusulkan untuk mengurangi kebutuhan komputasi dan memori untuk perhatian diri, memungkinkan pemrosesan urutan yang lebih panjang secara efisien.
Perhatian yang Jarang: Teknik perhatian renggang, seperti yang digunakan dalam model GPT-3, secara selektif memperhatikan subkumpulan posisi dalam urutan masukan, dibandingkan menghitung skor perhatian untuk semua posisi. Hal ini secara signifikan dapat mengurangi kompleksitas komputasi sekaligus mempertahankan kinerja yang wajar.
Perhatian Jendela Geser: Diperkenalkan dalam model Mistral 7B, perhatian jendela geser (SWA) adalah teknik sederhana namun efektif yang membatasi rentang perhatian setiap token ke ukuran jendela tetap. Pendekatan ini memanfaatkan kemampuan lapisan transformator untuk mengirimkan informasi melintasi beberapa lapisan, secara efektif meningkatkan rentang perhatian tanpa kompleksitas kuadrat dari perhatian mandiri penuh.
Cache Buffer Bergulir: Untuk lebih mengurangi kebutuhan memori, terutama untuk urutan yang panjang, model Mistral 7B menggunakan cache buffer bergulir. Teknik ini menyimpan dan menggunakan kembali vektor kunci dan nilai yang dihitung untuk ukuran jendela tetap, menghindari komputasi yang berlebihan dan meminimalkan penggunaan memori.
Perhatian Kueri yang Dikelompokkan: Diperkenalkan dalam model LLaMA 2, perhatian kueri yang dikelompokkan (GQA) adalah varian dari mekanisme perhatian multi-kueri yang membagi kepala perhatian menjadi beberapa kelompok, masing-masing kelompok berbagi matriks kunci dan nilai yang sama. Pendekatan ini mencapai keseimbangan antara efisiensi perhatian multi-kueri dan kinerja perhatian mandiri standar, memberikan waktu inferensi yang lebih baik sambil mempertahankan hasil berkualitas tinggi.