1 poin oleh GN⁺ 2024-05-13 | 1 komentar | Bagikan ke WhatsApp
  • LLM memisahkan pembuatan tokenizer dan pelatihan model, sehingga token tertentu seperti _SolidGoldMagikarp dapat 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
    • untrained hanya 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

 
GN⁺ 2024-05-13
Komentar Hacker News
  • Video glitch token dari Computerphile setahun lalu bagus: https://www.youtube.com/watch?v=WO2X3oZEJOA

    • Entah kenapa video ini terlihat lebih menarik daripada pracetak makalahnya
  • 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

    • Menurutku distilasi model melakukan hal ini. SparseGPT adalah contoh besar, dan kalau ingatanku benar, ia menghapus 50% parameter tanpa kehilangan akurasi yang besar
      Aku juga pernah melihat makalah terbaru yang mengutip SparseGPT dan mencapai sparsity sekitar 70–80%, cukup mengesankan
    • Bukankah “menghapus bobot yang hampir tidak dilalui data” itu ide dari jaringan saraf sparse?
    • Model reguler sudah bisa dikompresi atau digabungkan
  • 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?

    • Selain yang sudah dikatakan orang lain, meskipun tokenizer bisa dilatih persis pada dataset pelatihan yang sama, masalah seperti ini tidak semuanya hilang
      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
    • Ada dua alasan yang terpikir mengapa tokenizer digunakan ulang
      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
    • Dari abstraknya, teknik seperti ini tampaknya berguna ketika tidak punya akses ke korpus. Misalnya, bobot open source bisa diunduh, tetapi korpusnya tertutup
      Kalau tidak begitu, rasanya cukup menghitung histogram token dari sampel statistik korpus
    • Biasanya orang mulai dengan niat memakai korpus yang sama untuk tokenizer dan LLM, tetapi setelah tokenizer dilatih lalu LLM diuji, mereka menemukan bahwa sebagian korpus ternyata sampah yang tidak berguna
      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
    • Bisa saja, tetapi kalau korpusnya sangat besar, secara praktis sulit
  • Judul makalahnya benar-benar bagus

    • Judul lengkapnya adalah “Fishing for Magikarp: Automatically Detecting Under-trained Tokens in Large Language Models