- Penulis membangun model transformer mirip GPT-2 secara manual untuk memprediksi urutan sederhana dan memperoleh pemahaman yang lebih mendalam tentang transformer serta mekanisme attention.
- Transformer ini tidak dilatih menggunakan bobot yang sudah ada sebelumnya; setiap bobot ditetapkan secara manual.
- Tugas yang dipilih untuk transformer ini adalah memprediksi urutan "aabaabaabaab...", yang mengharuskan model melihat dua token sebelumnya untuk menentukan keluaran berikutnya.
- Penulis menggunakan skema tokenisasi yang merepresentasikan 'a' sebagai 0 dan 'b' sebagai 1.
- Kode model didasarkan pada implementasi picoGPT GPT-2 milik jaymody, dengan beberapa modifikasi untuk penyederhanaan.
- Dimensi model mencakup panjang konteks 5, ukuran kosakata 2, dan ukuran embedding 8.
- Penulis merancang bobot embedding, dengan 5 elemen pertama digunakan untuk embedding one-hot posisi, dan dua elemen berikutnya untuk embedding one-hot token id.
- Blok transformer dirancang untuk menghasilkan matriks q, k, v, memproyeksikan hasilnya kembali ke embedding, lalu memproyeksikannya lagi ke kumpulan logit token berikutnya menggunakan bobot embedding token.
- Penulis memberikan penjelasan rinci tentang desain head attention dan proyeksi ke ruang embedding.
- Langkah terakhir mencakup mengalikan hasil eksekusi blok transformer dengan bobot embedding token yang ditransposisikan untuk memperoleh logit akhir.
- Model menggunakan fungsi softmax untuk inferensi dan dapat menghasilkan kelanjutan yang masuk akal untuk urutan yang diberikan.
- Model mencapai tingkat keberhasilan 100% saat diuji dengan konteks yang tidak ambigu.
- Penulis mendorong pembaca untuk mendapatkan pemahaman yang lebih intuitif tentang transformer dan attention, serta mencoba membuat model mereka sendiri.
- Artikel ini mencakup kode lengkap model yang menggunakan numpy untuk perhitungan dan mendefinisikan fungsi untuk tokenisasi, prediksi, dan penyelesaian urutan.
- Penulis menyarankan bahwa efisiensi model dapat ditingkatkan dengan memperkecil context window dan menggunakan teknik seperti fused multiply-add serta KV caching.
- Artikel ini ditujukan bagi pembaca yang tertarik pada bidang language model, khususnya mereka yang berminat pada machine learning dan AI.
1 komentar
Komentar Hacker News