- GPT adalah transformer yang telah dipralatih dengan data berskala besar; ia memprediksi distribusi probabilitas untuk potongan teks berikutnya, lalu menghasilkan kalimat dengan melakukan sampling berulang dari distribusi tersebut
- Struktur yang sama tidak hanya digunakan untuk pembuatan teks, tetapi juga pengenalan suara, suara sintetis, pembuatan gambar, dan penerjemahan; di sini fokusnya adalah prediksi token berikutnya, yang menjadi dasar alat seperti ChatGPT
- Teks masukan dipecah menjadi token lalu menjadi vektor embedding, kemudian melewati blok attention dan blok multi-layer perceptron sambil menyerap konteks di sekitarnya
- GPT-3 memiliki 175 miliar parameter yang tersimpan dalam sekitar 28.000 matriks; embedding dan unembedding saja masing-masing memuat sekitar 617 juta bobot
- Vektor akhir melewati matriks unembedding dan softmax untuk menjadi distribusi probabilitas token berikutnya, sementara temperature mengatur keseimbangan antara keterdugaan dan keragaman
Peran dasar GPT dan transformer
- Tiga kata dalam GPT masing-masing berarti Generative, Pretrained, dan Transformer
- Generative berarti menghasilkan teks baru
- Pretrained berarti model dilatih terlebih dahulu dengan data dalam jumlah sangat besar, lalu dapat disesuaikan untuk tugas tertentu melalui pelatihan tambahan
- Transformer adalah arsitektur jaringan saraf yang dipandang sebagai penemuan inti di balik ledakan AI saat ini
- Transformer digunakan dalam berbagai bentuk model
- Model yang menerima audio sebagai masukan dan menghasilkan transkrip
- Model yang membuat suara sintetis dari teks
- Alat seperti DALL-E dan Midjourney yang menghasilkan gambar dari deskripsi teks
- Penerjemahan mesin, yang merupakan penggunaan asli transformer saat pertama kali diperkenalkan Google pada 2017
- Varian yang dibahas di sini adalah model prediksi teks berikutnya, dasar dari alat seperti ChatGPT
- Model menerima teks, dan dalam beberapa kasus juga gambar atau suara di sekitarnya, lalu memprediksi apa yang akan muncul berikutnya
- Keluarannya adalah distribusi probabilitas untuk berbagai potongan teks yang mungkin muncul berikutnya
Bagaimana prediksi token berikutnya berubah menjadi generasi teks
- Prediksi kata berikutnya dan pembuatan teks sekilas terlihat seperti tujuan yang berbeda, tetapi jika model prediksi dijalankan berulang kali, ia dapat menghasilkan teks panjang
- Masukkan teks awal
- Model membuat distribusi probabilitas untuk potongan berikutnya
- Ambil sampel secara acak dari distribusi itu dan tambahkan ke teks
- Masukkan kembali seluruh teks baru dan ulangi proses yang sama
- Jika GPT-2 dijalankan dengan cara yang sama di laptop, akan muncul contoh cerita yang tidak tersambung dengan baik
- Jika diganti dengan API GPT-3 yang memperbesar struktur dasar yang sama, cerita yang lebih meyakinkan dapat dihasilkan
- Proses ChatGPT dan model bahasa besar lain dalam membuat jawaban kata demi kata pada dasarnya adalah prediksi dan sampling berulang
- Titik awal sederhana untuk membuatnya menjadi chatbot adalah menyusun situasi percakapan sebagai teks
- Sediakan system prompt yang berisi pengaturan bahwa seorang AI assistant yang berguna berinteraksi dengan pengguna
- Masukkan pertanyaan pengguna sebagai potongan percakapan pertama
- Buat model memprediksi apa yang akan dikatakan assistant semacam itu berikutnya
- Agar cara ini bekerja dengan baik, diperlukan tahap pelatihan tambahan
Alur data di dalam transformer
- Masukan dibagi menjadi potongan kecil yang disebut token
- Dalam teks, token bisa berupa kata, bagian kata, atau kombinasi karakter yang umum
- Jika gambar atau suara disertakan, patch gambar atau potongan suara juga dapat menjadi token
- Setiap token dihubungkan dengan vektor, yaitu daftar angka
- Vektor ini mengenkode makna potongan tersebut dengan cara tertentu
- Jika dilihat sebagai koordinat dalam ruang berdimensi tinggi, kata-kata yang maknanya mirip cenderung berada pada vektor yang saling berdekatan
- Urutan vektor pertama-tama melewati blok attention
- Blok attention membuat vektor saling bertukar informasi dan memperbarui nilainya
- Ini menangani makna yang berubah sesuai konteks, seperti kata model dalam “a machine learning model” dan “a fashion model”
- Blok ini menentukan seberapa relevan suatu kata terhadap pembaruan makna kata lain, serta bagaimana pembaruan itu dilakukan
- Setelah itu vektor melewati blok yang disebut multi-layer perceptron atau feed-forward layer
- Pada tahap ini, vektor tidak saling berbicara satu sama lain, melainkan menjalani operasi yang sama secara paralel
- Ini dianalogikan sebagai mengajukan daftar pertanyaan panjang ke setiap vektor dan memperbaruinya sesuai jawaban
- Seluruh jaringan mengulang blok attention dan blok multi-layer perceptron
- Di antaranya juga ada tahap normalisasi, tetapi dihilangkan dalam gambaran tingkat tinggi ini
- Pada akhirnya, diharapkan makna inti kalimat tersimpan dalam vektor terakhir pada urutan
- Vektor terakhir itu digunakan untuk membuat distribusi probabilitas atas seluruh token berikutnya yang mungkin
Bentuk deep learning dan skala parameter GPT-3
- Deep learning adalah pendekatan machine learning yang menggunakan data untuk menentukan perilaku model
- Digunakan untuk masalah yang memerlukan intuisi dan pengenalan pola, seperti membuat label dari gambar atau memprediksi kata berikutnya setelah sebuah teks
- Alih-alih menuliskan prosedur dalam kode seperti AI awal, pendekatan ini membuat struktur fleksibel dengan parameter yang dapat disesuaikan, lalu menyesuaikan nilainya dengan data contoh
- Regresi linear adalah contoh machine learning yang paling sederhana
- Ini menangani kasus ketika masukan dan keluaran masing-masing berupa satu angka, seperti luas rumah dan harga
- Ia mencari garis lurus terbaik dengan dua parameter kontinu: kemiringan dan intersep-y
- GPT-3 tidak memiliki dua parameter, melainkan 175 miliar parameter
- Model raksasa seperti ini dapat overfit terhadap data pelatihan atau menjadi mustahil dilatih
- Model deep learning dipandang sebagai keluarga model yang terbukti dapat diskalakan dengan baik dalam beberapa dekade terakhir
- Algoritme pelatihan bersama yang menyatukan keluarga ini adalah backpropagation
- Agar backpropagation bekerja dengan baik pada skala besar, model harus mengikuti format tertentu
- Masukan harus direpresentasikan sebagai array bilangan real
- Array terus diubah menjadi array bilangan real lain saat melewati banyak lapisan
- Lapisan akhir model teks adalah daftar angka yang merepresentasikan distribusi probabilitas dari seluruh token berikutnya yang mungkin
- Parameter dalam deep learning biasanya disebut bobot
- Cara bobot berinteraksi dengan data adalah weighted sum
- Fungsi nonlinier juga disisipkan di antaranya, tetapi tidak bergantung pada parameter
- Representasi aktual sering kali mengelompokkan weighted sum sebagai perkalian matriks-vektor, alih-alih menampilkannya secara langsung
- 175 miliar bobot GPT-3 disusun dalam sekitar 28.000 matriks
- Matriks-matriks ini terbagi menjadi 8 kategori
- Bobot model adalah “otak” yang diperoleh selama pelatihan, sedangkan data yang diproses dalam satu kali eksekusi mengenkode contoh spesifik seperti teks masukan
Embedding, ukuran konteks, dan distribusi probabilitas keluaran
- Tahap pertama adalah membagi teks masukan menjadi token dan mengubah setiap token menjadi vektor
- Token sebenarnya bisa berupa bagian kata atau tanda baca, tetapi dalam penjelasan ini diperlakukan seperti kata agar mudah dipahami
- Model sudah memiliki vocabulary, yaitu daftar token yang mungkin
- Matriks embedding menentukan vektor apa yang digunakan untuk mengubah setiap token
- Ditulis sebagai W_E
- Nilainya dimulai secara acak, tetapi kemudian ditentukan melalui pelatihan berbasis data
- Ukuran vocabulary GPT-3 adalah 50.257 dan dimensi embedding-nya 12.288
- Jika keduanya dikalikan, matriks embedding memiliki sekitar 617 juta bobot
- Embedding kata dapat dipikirkan sebagai titik dalam ruang berdimensi tinggi
- Kata yang maknanya mirip cenderung berada di posisi yang berdekatan
- Seiring pelatihan berjalan, embedding cenderung tersusun sehingga arah dalam ruang itu memiliki makna
- Muncul contoh hubungan woman - man dan king - queen, serta Italy - Germany + Hitler yang menjadi dekat dengan Mussolini
- Pada contoh queen, juga dibahas catatan bahwa embedding queen yang sebenarnya bisa saja lebih jauh daripada sekadar king versi perempuan
- Dot product adalah cara untuk mengukur seberapa sejajar dua vektor
- Jika searah hasilnya positif, jika tegak lurus hasilnya 0, dan jika berlawanan arah hasilnya negatif
- Hipotesis bahwa cats - cat mungkin merupakan arah yang merepresentasikan pluralitas diuji dengan dot product
- Nilai untuk nomina jamak cenderung lebih tinggi daripada nomina tunggal
- Ada juga contoh nilai dot product dengan kata seperti one, two, three yang meningkat
- Vektor dalam transformer tidak boleh hanya merepresentasikan satu kata, tetapi juga harus mampu menyerap konteks
- Vektor yang pertama kali dibuat hanya memiliki makna token tunggal yang diambil dari matriks embedding
- Saat melewati jaringan, tujuannya adalah memuat makna yang lebih spesifik dengan mencerminkan kata-kata di sekitar hingga konteks yang jauh
- Context size GPT-3 adalah 2048, sehingga dilatih untuk memproses 2048 vektor sekaligus
- Ukuran konteks ini membatasi panjang teks yang dapat dipertimbangkan model saat memprediksi kata berikutnya
- Ini terkait dengan alasan mengapa chatbot seperti ChatGPT awal terasa kehilangan konteks dalam percakapan panjang
- Tahap terakhir adalah membuat distribusi probabilitas token berikutnya
- Vektor terakhir dari konteks akhir dikalikan dengan matriks unembedding W_U untuk membuat daftar angka berukuran vocabulary
- Setiap komponen dari keluaran mentah ini disebut logit untuk prediksi kata berikutnya
- W_U memiliki baris untuk setiap token dalam vocabulary, dan panjang setiap baris sama dengan dimensi embedding
- Untuk GPT-3, W_U juga menambahkan sekitar 617 juta parameter
- Jika embedding dan unembedding digabungkan, jumlah parameter kumulatif sedikit di atas 1 miliar
- softmax mengubah daftar angka sembarang menjadi distribusi probabilitas yang valid
- Setiap nilai harus berada di antara 0 dan 1, dan jumlah keseluruhannya harus 1
- Untuk setiap angka masukan, softmax mengambil pangkat e agar menjadi positif, lalu menormalkannya dengan membagi jumlah total
- Nilai masukan yang besar mendapat probabilitas besar mendekati 1, sementara nilai kecil menjadi mendekati 0
- Ini lebih halus daripada hanya memilih nilai maksimum, sehingga nilai-nilai lain yang hampir sama besarnya juga bisa mendapat probabilitas yang bermakna
- Temperature mengatur ketajaman distribusi softmax
- Jika T besar, nilai rendah juga mendapat bobot lebih besar sehingga distribusi menjadi lebih merata
- Jika T kecil, nilai besar mendominasi lebih kuat
- T=0 adalah ekstrem ketika semua bobot terkonsentrasi pada nilai maksimum
- Pada temperature 0, model selalu memilih kata yang paling dapat diprediksi; dalam contoh, cerita klise bergaya Goldilocks dihasilkan
- Temperature yang lebih tinggi memberi peluang memilih kata yang kemungkinannya lebih rendah, tetapi dalam contoh, cerita dimulai dengan lebih orisinal lalu cepat menjadi tidak masuk akal
- API tidak mengizinkan temperature ditetapkan lebih besar dari 2; ini bukan karena alasan matematis, melainkan batas arbitrer untuk mencegah alat menghasilkan keluaran yang terlalu tidak masuk akal
1 komentar
Komentar Hacker News
Kalau ada yang paham cara kerja GPT, saya penasaran soal ini. Saya kira model seperti ini memilih kata berikutnya yang paling masuk akal, tetapi bukankah memilih “salah satu kata yang masuk akal” bisa mengarah ke situasi di mana daftar prediksi kata berikutnya setelah itu menjadi jauh kurang masuk akal?
Jika secara komputasi memungkinkan, sepertinya lebih menguntungkan untuk menjalankan kandidat sebagai “dua kata sekaligus”, lalu diperluas menjadi 3, 4, hingga n kata; saya penasaran apakah pendekatan seperti ini memang ada
Setelah menonton videonya dan membaca komentarnya, saya jadi tahu bahwa ini adalah beam search, dan digunakan bersama temperature yang mengatur perilaku ini
Temperature dan
top_kadalah parameter yang cukup mirip, dan diperkenalkan untuk mencerminkan bahwa setiap kalimat yang bisa diucapkan manusia pada dasarnya tidak dapat diprediksi secara probabilistik. Ada contoh di sini yang mereproduksi grafik lama dari dokumentasi Hugging Face 2018/2019 dengan cara serupa pada 2021: https://lilianweng.github.io/posts/2021-01-02-controllable-t...Beam search dengan panjang yang jauh lebih besar mungkin bisa lebih baik, dan pendekatan yang menggabungkan beberapa teknik mungkin juga bisa berhasil, tetapi sepertinya tidak demikian. Bagian query-key-value pada transformer berfokus pada semacam agregasi tunggal dalam relasinya dengan seluruh konteks. Arsitekturnya sendiri tidak disesuaikan untuk unit yang lebih panjang seperti ini, dan juga tidak ada sistem dasar “dua token”
Jika sebagian besar model GPT memiliki 50 ribu hingga 100 ribu token, maka Anda akan berhadapan dengan parameter yang jauh lebih banyak seperti 50 ribu*50 ribu, dan juga muncul masalah kelangkaan data. Bahkan tanpa mempertimbangkan kompleksitas pelatihan, banyak elemen model GPT terlalu terfokus pada menggali kekayaan dari satu token atau satu indeks token, sehingga sulit mengatakan bahwa model tersebut dirancang agar cocok dengan beam search semacam ini
Teknik seperti beam search memang membantu, tetapi hanya bisa menambahkan peningkatan dengan faktor konstan. Meski begitu, large language model tetap bisa mencapai performa saat ini walaupun memiliki keterbatasan ini
Contohnya beam search: https://www.width.ai/post/what-is-beam-search
Intinya, metode ini mempertahankan jendela probabilitas dari token-token yang diprediksi untuk meningkatkan kualitas keluaran akhir
Jika Anda melakukan chunking pada blok yang lebih besar, seluruh proses ini bercampur sehingga hal yang sama bisa dilakukan dalam ruang konsep. Misalnya, jika Anda memakai metode acuan seperti sentence embedding, itu bisa menjadi blok kerja untuk perbandingan
Saya tidak bisa membayangkan orang yang lebih baik daripada dia untuk mengajarkan mekanisme attention kepada publik. Rasanya seperti mimpi yang jadi kenyataan
Kalau belum menonton bagian-bagian sebelumnya, saya sangat merekomendasikannya
Kalau Anda suka ini, di kanal Andrej Karpathy juga ada video-video menarik yang menjelaskan jaringan saraf dan cara kerjanya di dalam. Kontennya ditujukan untuk orang yang paham pemrograman
Saya sendiri terlalu nekat langsung terjun, dan walaupun dia menyarankan untuk menonton video sebelumnya, saya salah mengira tetap akan bisa memahaminya sambil jalan. Ada istilah-istilah yang wajib diketahui agar bisa benar-benar menangkap isinya
Saya menyerah, menutup celah itu lewat pembelajaran lain, lalu kembali lagi; setelah itu video-videonya terasa jauh lebih bernilai. Kalau Anda ingin belajar jaringan saraf, saya sangat menyarankan untuk belajar dari kesalahan saya
Di tengah konten April Mop, ini terasa seperti penawar yang luar biasa bagus. Rasanya ingin langsung memasukkannya ke pembuluh darah
Terkait ini, visualisasi interaktif ini juga layak dilihat: https://bbycroft.net/llm
Diskusi sebelumnya: https://news.ycombinator.com/item?id=38505211
3B1B adalah salah satu pendidik STEM terbaik di YouTube
Dikatakan bahwa token berikutnya diambil dengan sampling logit pada kolom terakhir setelah unembedding; kalau begitu, bukankah itu hanya mengambil token terakhir lagi? Atau apakah ukuran matriks berubah menjadi N+1 pada tahap tertentu?
Saya menantikan video-video berikutnya. Kali ini rasanya saya akhirnya bisa memahami dan benar-benar menyerap bagaimana semua ini bekerja di dalam diri saya