- LLM memisahkan pembuatan tokenizer dan pelatihan model, sehingga token tertentu seperti
_SolidGoldMagikarpdapat memicu perilaku yang tidak terduga - Inti masalahnya adalah under-trained tokens yang ada di kosakata tokenizer tetapi hampir tidak pernah atau sama sekali tidak terlihat selama pelatihan, dan sering disebut sebagai ‘glitch tokens’
- Riset ini mengusulkan metode untuk menemukan token semacam itu secara otomatis dengan menggabungkan analisis tokenizer, metrik bobot embedding model, dan teknik prompting
- Token-token ini memboroskan kapasitas kosakata pada tokenizer berukuran tetap, serta dapat memengaruhi panjang input·output, biaya inferensi, halusinasi, atau keluaran yang rusak
- Dalam lingkungan penggunaan alat dan agen yang mengambil serta memproses data eksternal, deteksi dan pemurnian under-trained token berhubungan langsung dengan keamanan dan ketangguhan model yang diterapkan
Ketidaksesuaian antara tokenizer dan pelatihan model
- Sebagian besar komponen LLM dipelajari secara nirpengawas dari data skala besar, tetapi tokenizer biasanya dilatih secara terpisah dengan algoritme berbeda dan dataset yang lebih kecil
- GPT-2 membentuk banyak fondasi bagi language modeling berbasis Transformer saat ini, dan kerangka tokenisasi berbasis byte-pair encoding (BPE) juga diadopsi secara luas
- Tokenisasi BPE mengubah teks masukan menjadi urutan token subkata, lalu berulang kali menggabungkan dua token yang berdekatan menurut aturan merge yang tetap
- Aturan merge dipelajari dengan algoritme greedy pada dataset yang lebih kecil, yang harus selaras secara representatif dengan data pelatihan LLM
Struktur yang melahirkan glitch token
- Ketika tokenizer dan pelatihan model dipisahkan, sebagian token bisa berada dalam kondisi hampir tidak pernah atau sama sekali tidak muncul selama pelatihan model
- Jika token semacam itu dimasukkan ke dalam input, hal itu dapat memicu perilaku tak terduga seperti halusinasi atau keluaran yang rusak
- Riset ini membedakan token-token tersebut sebagai under-trained tokens atau untrained tokens
untrainedhanya digunakan ketika ada indikasi jelas bahwa token tertentu tidak muncul dalam data pelatihan model- Secara umum, token semacam ini juga disebut ‘glitch tokens’
- Contoh representatif yang disebutkan adalah token
_SolidGoldMagikarp
Keterbatasan pendekatan tokenisasi saat ini dan alternatifnya
- Riset terbaru juga membahas pendekatan yang menghapus tokenisasi dan beralih ke input byte mentah, tetapi pilihan ini biasanya menimbulkan biaya kecepatan inferensi yang besar
- Biaya kecepatan itu dapat dikompensasi dengan arsitektur khusus pada layer awal·akhir atau komputasi variabel pada layer tengah
- Pendekatan semacam ini masih belum diadopsi luas, dan sebagian besar model modern tetap bergantung pada tokenisasi subkata
- Alternatif utama untuk BPE adalah metode Unigram, tetapi meskipun ada riset yang menunjukkan hasil lebih baik daripada BPE, pendekatan ini umumnya belum banyak digunakan
Masalah nyata dari under-trained token
- Under-trained token menempati kapasitas kosakata pada tokenizer berukuran tetap yang seharusnya bisa digunakan oleh token yang lebih sering muncul
- Ini dapat membuat peluang untuk mengurangi rata-rata panjang input·output dan biaya inferensi menjadi hilang
- Jika token semacam ini dimasukkan ke data input secara sengaja atau tidak sengaja, model dapat menghasilkan keluaran yang tidak diinginkan dan merusak aplikasi downstream
- Seiring meningkatnya penggunaan alat oleh LLM dan agen yang mengambil serta memproses data eksternal, ketangguhan terhadap input tak terduga maupun input berbahaya menjadi makin penting
- Ketika model terdorong ke luar distribusi pelatihannya, token-token ini juga berpotensi disalahgunakan untuk mengakali guardrail
Pendekatan deteksi otomatis dan alat terbuka
- Sebelumnya sudah ada upaya untuk menemukan token-token ini lewat analisis model dan tokenizer, tetapi masih kurang metode otomatis yang andal yang bekerja konsisten di berbagai model
- Riset ini menggabungkan tiga metode untuk mengidentifikasi token bermasalah
- analisis tokenizer
- metrik berbasis bobot embedding model
- teknik prompting
- Metode-metode ini diterapkan pada beberapa model berbobot terbuka yang populer dan baru dirilis, dan juga secara singkat mengeksplorasi cara memperluasnya ke model tertutup
- Alat analisis umum yang kompatibel dengan model Hugging Face serta hasil rinci per model juga telah dipublikasikan
1 komentar
Komentar Hacker News
Video glitch token dari Computerphile setahun lalu bagus: https://www.youtube.com/watch?v=WO2X3oZEJOA
Jangan hanya mencari token yang kurang terlatih; token pada dasarnya adalah lapisan pertama jaringan saraf, jadi kita juga perlu mencari ketidakseimbangan data pelatihan di semua bobot pada semua lapisan lainnya
Jika bobot seperti itu ditemukan, mungkin lebih baik menghapus bobot yang hampir tidak dilalui data; ini bisa membuat model lebih kecil atau membantu generalisasi
Aku juga pernah melihat makalah terbaru yang mengutip SparseGPT dan mencapai sparsity sekitar 70–80%, cukup mengesankan
Agak sulit dipercaya bahwa model dari perusahaan Kanada punya token kurang terlatih yang terkait hoki, meski itu dalam bahasa Jerman
Candaan aside, ini cukup keren, dan aku menantikan pemahaman yang lebih baik tentang dampak tokenisasi terhadap model. Temuan bahwa cukup banyak model open source awal bermasalah dengan carriage return sangat menonjol, karena tergantung sumber datanya, carriage return bisa masuk dengan frekuensi yang tidak terlalu jarang
Ada metode diagnosis pelatihan berbasis teori matriks acak yang menggunakan kerapatan spektral matriks korelasi bobot
Kerapatan spektral tiap lapisan dicocokkan dengan power law terpotong, dan jika eksponen power law alfa sedikit lebih besar dari 2, itu dianggap terlatih dengan baik
https://jmlr.org/beta/papers/v22/20-410.html
Bukankah solusinya cukup melatih tokenizer pada korpus yang sama dengan LLM? Aku tidak begitu paham kenapa penggunaan ulang tokenizer begitu umum. Ada yang tahu?
Dalam pendekatan BPE, token tertentu bisa menjadi sangat langka karena digabungkan dengan token lain. Jika ada token X dan Y, dan hampir setiap X diikuti oleh Y, proses BPE akan membuat token baru XY, tetapi tidak menghapus token X yang lama, sehingga X menjadi kurang terlatih
Untuk memperbaikinya, sepertinya dibutuhkan algoritma penggabungan yang lebih canggih daripada penggabungan greedy
Pertama, ketika ingin melanjutkan prapelatihan model alih-alih mulai dari nol. Namun mungkin ada orang yang tidak tahu bahwa bobot model sebenarnya cukup mudah digunakan ulang meski melatih dengan tokenizer baru. Aku menulis artikel tentang caranya: https://umarbutler.com/how-to-reuse-model-weights-when-train...
Kedua, kenyamanan bagi pengguna akhir. Men-tokenize korpus yang sangat besar dan membaginya menjadi chunk bisa memakan waktu lama; jika korpus yang sama sudah diproses sekali dengan tokenizer GPT2 lalu dipakai untuk melatih beberapa model, kita tidak perlu men-tokenize semuanya lagi
Kalau tidak begitu, rasanya cukup menghitung histogram token dari sampel statistik korpus
Tanpa bermaksud buruk kepada SolidGoldMagikarp yang berusaha di subreddit counting, bagian seperti itu kemudian dikeluarkan dari pelatihan berikutnya. Namun pada saat itu tokenizer sudah menjadi bagian dari API, jadi jika diganti ke versi baru, hal-hal lain akan rusak, dan akhirnya token yang tidak diperlukan tetap tertinggal di kosakata
Judul makalahnya benar-benar bagus