Encoder
- Menjelaskan proses mengubah teks menjadi vektor dan proses menambahkan informasi posisi ke embedding yang diperoleh dari sana.
- Tujuannya adalah menghasilkan embedding yang menangkap informasi makna dari teks masukan.
1. Embedding teks
- "Hello World" diubah menjadi vektor untuk membuat embedding.
- Untuk setiap token, nilai acak diberikan untuk membentuk vektor.
2. Encoding posisi
- Encoding posisi ditambahkan ke embedding untuk menambahkan informasi posisi kata.
- Menggunakan vektor tetap untuk memberikan pola angka yang unik namun konsisten pada setiap posisi.
3. Menggabungkan encoding posisi dan embedding
- Encoding posisi dan embedding dijumlahkan untuk membuat matriks baru yang akan digunakan sebagai masukan encoder.
Self-attention
- Menjelaskan attention, yaitu mekanisme yang memungkinkan model berfokus pada bagian tertentu dari masukan.
- Dengan menggunakan multi-head attention, model dapat secara bersamaan berfokus pada informasi dalam berbagai ruang representasi.
4.1 Definisi matriks
- Mendefinisikan matriks K, V, dan Q untuk setiap head attention.
4.2 Menghitung key, query, dan value
- Mengalikan embedding masukan dengan matriks bobot untuk menghitung matriks key, query, dan value.
4.3 Perhitungan attention
- Menghitung hasil kali dot antara query dan setiap vektor key, lalu membagi hasilnya dengan akar kuadrat dari dimensi vektor key.
- Menerapkan fungsi softmax untuk memperoleh bobot attention.
- Mengalikan setiap vektor value dengan bobot attention.
Feed-forward layer
- Pada encoder, terdapat jaringan saraf feed-forward setelah layer self-attention.
- Jaringan ini menggunakan dua transformasi linear dan fungsi aktivasi ReLU.
5.1 Layer feed-forward dasar
- Layer linear pertama memperluas dimensi masukan, lalu setelah fungsi aktivasi ReLU diterapkan, layer linear kedua mengecilkan dimensi kembali ke ukuran semula.
5.2 Menggabungkan seluruh proses encoder
- Menuliskan blok encoder dalam kode yang mencakup multi-head attention dan layer feed-forward.
5.3 Koneksi residual dan normalisasi layer
- Koneksi residual adalah menambahkan masukan layer ke keluarannya, sedangkan normalisasi layer adalah teknik untuk menormalkan masukan layer.
Opini GN⁺
- Artikel ini menjelaskan matematika yang rumit dengan cara yang disederhanakan untuk membantu pemahaman matematis tentang model Transformer.
- Secara khusus, artikel ini membantu memahami cara kerja mekanisme self-attention dan jaringan saraf feed-forward.
- Dengan menunjukkan bagaimana teknik seperti koneksi residual dan normalisasi layer berkontribusi pada stabilitas dan kinerja jaringan saraf, artikel ini memberikan wawasan tentang cara mengatasi masalah pembelajaran pada jaringan saraf dalam.
1 komentar
Komentar Hacker News
"Misteri" transformer adalah bahwa di setiap layer, alih-alih urutan linear dari bobot statis dan nilai, ia menggunakan 3 matriks berbeda yang diperoleh melalui perkalian bobot terlatih dari input yang sama, lalu mengalikan matriks-matriks itu satu sama lain. Ini memungkinkan lebih banyak pemrosesan paralel, tetapi rumus attention sangat terbatas karena bersifat statis.
Jika menginginkan pendekatan yang lebih kering, formal, dan ringkas, lihat "The Transformer Model in Equations" karya John Thickstun. Seluruh isinya muat dalam satu halaman dengan notasi matematika standar.
Saat membaca tulisannya, muncul pertanyaan.
Ingin mencari paper atau artikel tentang mengapa transformer tetap bisa menangani kata atau subword/token yang tidak ada di dataset pelatihan, meskipun ia bekerja hanya sebagai "prediktor token berikutnya".
Tutorial transformer mungkin adalah tutorial monad yang baru. Ini konsep yang sulit dipahami, tetapi seperti banyak hal lain di ilmu komputer, kita harus bersusah payah memahaminya dan berlatih dengan contoh.
Saya tahu beberapa katanya.
Sebagai seseorang yang pernah menulis ANN dari nol tanpa menggunakan TensorFlow, penjelasan ini tetap membingungkan.
Saya suka situs web Quarto. Saya melihat lebih banyak pengguna Python memakainya untuk publikasi.
Di langkah 7 decoder, saya penasaran apakah seharusnya
Z_encoder_decoder = layer_norm(Z_encoder_decoder + Z)diganti menjadiZ_encoder_decoder = layer_norm(Z_encoder_decoder + Z_self_attention), dan apakah di langkah 8 decoder adalayer_normyang terlewat.Ingin tahu apakah LLM menggunakan jaringan saraf, dan apa yang sebenarnya membentuk "neuron". Maksudnya, apakah ada struktur kode yang mendasari neuron, atau ini "sekadar" matematika yang kompleks.