Arsitektur transformer adalah desain jaringan saraf yang dibangun di sekitar self-attention. Alih-alih terutama mengandalkan pemrosesan langkah demi langkah, arsitektur ini memungkinkan setiap token mengumpulkan informasi dari token lain yang relevan dalam urutan.

Itulah sebabnya transformer bekerja sangat baik untuk bahasa dan tugas urutan lainnya. Jika satu kata bergantung pada kata lain yang letaknya jauh, attention memberi model jalur langsung di antara keduanya.

Apa yang dimaksud dengan arsitektur transformer

Sebuah blok transformer melakukan lebih dari sekadar menerapkan satu rumus, tetapi self-attention adalah gagasan utamanya. Dalam self-attention, setiap token menghasilkan tiga vektor:

  • query, yang merepresentasikan apa yang dicari token ini
  • key, yang merepresentasikan apa yang ditawarkan token ini untuk dicocokkan
  • value, yaitu informasi yang dapat diteruskan

Jika representasi token disusun dalam sebuah matriks XX, satu attention head biasanya membentuk

Q=XWQ,K=XWK,V=XWVQ = XW_Q, \qquad K = XW_K, \qquad V = XW_V

dengan WQW_Q, WKW_K, dan WVW_V adalah matriks yang dipelajari.

Rumus scaled dot-product attention standar adalah

Attention(Q,K,V)=softmax ⁣(QKTdk)V\operatorname{Attention}(Q, K, V) = \operatorname{softmax}\!\left(\frac{QK^T}{\sqrt{d_k}}\right)V

Di sini dkd_k adalah dimensi key. Penskalaan dengan dk\sqrt{d_k} membantu menjaga agar skor dot product mentah tidak menjadi terlalu besar saat dimensinya bertambah.

Softmax diterapkan per baris. Setiap baris menjawab pertanyaan satu token: "Seberapa besar attention yang harus saya berikan kepada token-token lain?"

Cara kerja self-attention dalam bahasa sederhana

Self-attention biasanya tidak memilih satu token lalu mengabaikan sisanya. Ia membangun rata-rata berbobot dari vektor-vektor value.

Jika satu token sangat cocok dengan key token lain, token itu mendapat bobot yang lebih besar. Jika kecocokannya lemah, bobotnya lebih kecil. Karena itu, keluaran untuk satu token menjadi campuran informasi dari urutan yang sudah mempertimbangkan konteks.

Ini membantu dalam kesesuaian subjek-predikat, rujukan kata ganti, dan hubungan jarak jauh lainnya. Model tidak perlu menunggu informasi melewati banyak langkah perantara sebelum informasi itu tersedia.

Contoh self-attention yang dikerjakan

Ambil satu query dan dua token kandidat dalam satu attention head. Agar perhitungannya sederhana, gunakan dk=1d_k = 1.

Misalkan token saat ini memiliki query

q=[2]q = [2]

dan dua token kandidat memiliki

k1=[2],k2=[1]k_1 = [2], \qquad k_2 = [1]

dengan value

v1=[10],v2=[4].v_1 = [10], \qquad v_2 = [4].

Skor attention mentah adalah dot product:

qk1T=4,qk2T=2.qk_1^T = 4, \qquad qk_2^T = 2.

Karena dk=1d_k = 1, faktor skalanya adalah 1=1\sqrt{1} = 1, jadi skor yang sudah diskalakan tetap 44 dan 22.

Sekarang terapkan softmax pada dua skor tersebut:

α1=e4e4+e20.881,α2=e2e4+e20.119.\alpha_1 = \frac{e^4}{e^4 + e^2} \approx 0.881, \qquad \alpha_2 = \frac{e^2}{e^4 + e^2} \approx 0.119.

Keluaran attention adalah kombinasi berbobot

α1v1+α2v2=0.881(10)+0.119(4)9.29.\alpha_1 v_1 + \alpha_2 v_2 = 0.881(10) + 0.119(4) \approx 9.29.

Gagasan utamanya sederhana: keluaran berada lebih dekat ke v1v_1 karena query lebih cocok dengan k1k_1 daripada dengan k2k_2.

Ini adalah pola dasar di dalam model yang jauh lebih besar. Transformer nyata melakukan ini dalam dimensi yang lebih tinggi dan pada banyak token sekaligus, tetapi ide perhitungannya tetap sama.

Apa lagi yang ada di dalam blok transformer

Transformer lebih dari satu rumus attention. Sebuah blok standar biasanya berisi:

  • multi-head attention, agar model dapat mempelajari beberapa jenis hubungan sekaligus
  • jaringan feedforward per posisi, yang mentransformasikan setiap representasi token setelah attention
  • residual connection, yang membantu mempertahankan dan menyempurnakan informasi di seluruh layer
  • layer normalization, yang membantu menstabilkan pelatihan

Dalam arsitektur transformer asli untuk tugas sequence-to-sequence, model memiliki tumpukan encoder dan tumpukan decoder.

  • Encoder menggunakan self-attention pada urutan masukan.
  • Decoder menggunakan masked self-attention sehingga suatu posisi tidak dapat melihat token keluaran di masa depan.
  • Decoder juga dapat menggunakan cross-attention, di mana query berasal dari decoder dan key serta value berasal dari keluaran encoder.

Banyak model bahasa modern hanya menggunakan sisi decoder. Gagasan inti attention tetap ada, tetapi arsitektur keseluruhannya dikhususkan untuk prediksi token berikutnya.

Mengapa transformer membutuhkan informasi posisi

Attention saja bersifat permutation-equivariant terhadap token masukan. Dalam bahasa sederhana, jika Anda hanya menerapkan attention pada himpunan vektor token yang sama tanpa menambahkan posisi, model secara bawaan tidak tahu token mana yang muncul lebih dulu.

Itulah sebabnya transformer menambahkan informasi posisi, seperti embedding posisi yang dipelajari atau positional encoding. Tanpa sinyal tambahan itu, tugas yang peka terhadap urutan seperti bahasa akan jauh lebih sulit dimodelkan dengan benar.

Kesalahan umum tentang arsitektur transformer

Mengira attention adalah keseluruhan transformer

Itu memang gagasan utamanya, tetapi arsitekturnya juga bergantung pada layer feedforward, jalur residual, normalisasi, dan informasi posisi.

Mencampuradukkan self-attention dan cross-attention

Dalam self-attention, QQ, KK, dan VV berasal dari urutan yang sama. Dalam cross-attention, ketiganya tidak semuanya berasal dari sumber yang sama.

Melupakan peran masking

Model bahasa decoder-only memerlukan causal masking selama pelatihan dan inferensi agar suatu token tidak dapat memberi attention pada token-token masa depan.

Menganggap bobot attention sebagai penjelasan yang lengkap

Bobot attention bisa informatif, tetapi bukan bukti penuh tentang penalaran model. Perilaku akhir juga bergantung pada vektor value, layer berikutnya, dan transformasi nonlinier.

Kapan model transformer digunakan

Transformer banyak digunakan dalam language modeling, penerjemahan, peringkasan, pembuatan kode, ucapan, dan banyak tugas visi. Transformer bekerja sangat baik terutama ketika hubungan di seluruh urutan atau himpunan lebih penting daripada pola yang murni lokal.

Transformer bukan solusi ajaib untuk semua situasi. Untuk dataset yang sangat kecil, batasan real-time yang ketat, atau masalah yang paling bergantung pada struktur induktif lokal, arsitektur lain masih bisa lebih cocok.

Coba soal serupa

Ambil frasa tiga kata dan fokus pada satu kata. Tentukan kata lain mana yang seharusnya mendapat bobot attention tinggi dan mengapa, lalu buat contoh query-key-value kecil yang sesuai dengan intuisi itu.

Jika ingin melangkah sedikit lebih jauh, hitung satu keluaran attention kecil secara manual. Itu biasanya merupakan cara tercepat untuk beralih dari "Saya tahu rumusnya" ke "Saya paham apa yang dilakukan arsitektur ini."

Butuh bantuan mengerjakan soal?

Unggah pertanyaanmu dan dapatkan solusi terverifikasi langkah demi langkah dalam hitungan detik.

Buka GPAI Solver →