1 poin oleh GN⁺ 2024-12-15 | 1 komentar | Bagikan ke WhatsApp
  • Byte Latent Transformer (BLT) adalah arsitektur LLM tingkat byte yang dilatih dengan byte mentah tanpa tokenisasi kosakata tetap, tetapi pada skala besar mampu menandingi performa LLM berbasis tokenisasi
  • Intinya adalah mengelompokkan byte bukan sebagai token tetap, melainkan sebagai patch berukuran dinamis, lalu mengalokasikan lebih banyak komputasi dan kapasitas model ke posisi dengan entropi tinggi untuk byte berikutnya
  • Meta melakukan studi scaling dengan FLOP terkontrol hingga 8B parameter dan 4T byte pelatihan untuk memvalidasi skalabilitas model tingkat byte
  • Semakin mudah data diprediksi, semakin panjang patch yang dipilih untuk meningkatkan efisiensi pelatihan dan inferensi, dan peningkatan kualitatif juga terlihat pada inferensi serta generalisasi long-tail
  • Pada biaya inferensi tetap, pendekatan BLT yang memperbesar ukuran patch dan ukuran model secara bersamaan menunjukkan scaling yang lebih baik dibanding model berbasis tokenisasi

Struktur LLM tingkat byte yang diusulkan BLT

  • Byte Latent Transformer (BLT) adalah arsitektur LLM tingkat byte yang menggunakan byte mentah sebagai unit input, alih-alih tokenisasi berbasis kosakata tetap
  • Dalam konfigurasi skala besar, BLT mampu menandingi performa LLM berbasis tokenisasi, sekaligus menunjukkan peningkatan signifikan dalam efisiensi inferensi dan robustness

Patch dinamis menjadi unit komputasi

  • BLT mengenkode byte menjadi patch berukuran dinamis dan menggunakan patch ini sebagai unit komputasi utama
  • Pemisahan patch dilakukan secara dinamis berdasarkan entropi byte berikutnya
    • Pada titik dengan kompleksitas data yang meningkat, lebih banyak komputasi dan kapasitas model dialokasikan
    • Saat data dapat diprediksi, patch yang lebih panjang dipilih untuk mengurangi komputasi

Eksperimen scaling dengan FLOP terkontrol

  • Meta melakukan studi scaling dengan FLOP terkontrol pada model tingkat byte
  • Skala eksperimennya mencapai 8B parameter dan 4T byte pelatihan
  • Hasilnya menunjukkan bahwa model yang dilatih dengan byte mentah tanpa kosakata tetap juga dapat diskalakan

Hasil efisiensi dan generalisasi

  • Pendekatan yang secara dinamis memilih patch panjang meningkatkan efisiensi pelatihan maupun efisiensi inferensi
  • Dalam hasil kualitatif, terlihat peningkatan pada inferensi dan generalisasi long-tail
  • Pada biaya inferensi tetap, BLT menunjukkan scaling yang lebih baik dibanding model berbasis tokenisasi
    • Pendekatan yang digunakan adalah memperbesar ukuran patch dan ukuran model secara bersamaan

Materi

1 komentar

 
GN⁺ 2024-12-15
Komentar Hacker News
  • Makalah: https://scontent-sjc3-1.xx.fbcdn.net/v/t39.2365-6/470135129_...

  • Pada musim panas saat BERT keluar, saya bekerja di sebuah startup yang melakukan klasifikasi dengan model CNN berbasis karakter
    Di tim, kami banyak memikirkan representasi alternatif, dan anggota tim lain lebih menyukai word vector, tetapi saya kurang suka. Di dokumen yang kami tangani, kata-kata di luar kamus sering muncul, dan kata-kata itu penting, jadi terasa seperti membuangnya akan berujung pada kegagalan
    Kami juga sedang membuat “model dasar”, jadi masalahnya bukan hanya kata di luar kamus pada model akhir, tetapi juga kata di luar kamus pada tahap model dasar yang biaya latihnya lebih besar
    Klasifikasi dengan model berbasis karakter cukup lumayan, tetapi ekspektasi terhadap token besar karena ada anggapan bahwa menyimpan “kamus” di dalam jaringan saraf bukanlah cara yang baik memakai jaringan saraf
    Di sisi lain, saya begitu yakin pendekatan seperti Word2Vec tidak punya harapan sampai-sampai pernah meninggalkan proyek sebelumnya yang melatih RNN untuk menulis abstrak palsu dari laporan kasus PubMed demi membuat model dasar untuk pemahaman teks
    Saat byte-pair encoding muncul, saya ingat mengatakan dalam rapat bahwa itulah metode tokenisasi pertama yang benar-benar bisa saya dukung dari semua yang kami lihat
    Meski begitu, jujur saja saya masih merasa akan lebih baik jika bisa bekerja pada level karakter

    • Saya sangat berharap pada CANINE, tetapi pada akhirnya tidak benar-benar berlanjut besar
      Token hanyalah solusi sementara. Biasanya memang bekerja cukup baik, tetapi saat gagal, kegagalannya terlihat jelas
      [1] https://arxiv.org/abs/2103.06874
    • Saya penasaran apakah ini berarti semua keluaran generatif harus berupa rantai kata-kata yang ada di kamus
      Di dunia nyata, orang setiap hari menciptakan dan memakai kata yang tidak ada di kamus untuk berkomunikasi. Misalnya, “notify” ada di kamus, tetapi “notifier” yang berarti “sarana untuk memberi tahu seseorang” tidak ada, dan kode yang mengirim notifikasi email menjadi “email notifier”. Lalu berlanjut ke notifier pesan teks, panggilan suara, callback call center, dan seterusnya
      Setiap industri dan organisasi punya istilah khusus, kata kustom yang tidak ada di kamus, dan singkatan yang daya bedanya rendah
      Jika hanya bisa menangani komunikasi dunia nyata dengan buruk dan hanya menghasilkan respons dalam kamus yang dimurnikan ala laboratorium, saya tidak tahu bagaimana keluaran machine learning bisa berguna
  • Semoga ini berhasil. Tokenizer harus hilang
    Menarik bahwa ini adalah struktur hierarkis tetapi hanya punya dua tingkat. Menambahkan lebih banyak tingkat tampak seperti arah alami untuk riset lanjutan
    Sebagai referensi, saya juga menulis komentar ini di posting terkait lain[1], dan penulis menjawab seperti ini
    “Saya penulisnya :), saya rasa itu arah yang bagus untuk dieksplorasi! Hanya saja, selain jadi terlalu banyak pekerjaan untuk dilakukan sekaligus, kita juga harus hati-hati soal bagaimana membagi anggaran FLOP di seluruh hierarki. Dengan dua tingkat, satu tingkat (byte/encoder lokal) bisa dibuat efisien dalam FLOP, sementara tingkat lainnya (patch/encoder global) bisa dibuat intensif FLOP. Kita juga harus mencari cara mengelompokkan patch menjadi unit yang lebih besar. Meski begitu, masih banyak arah pengembangan dari sini!”
    [1] https://news.ycombinator.com/item?id=42413430

  • Untuk membuat patch, sebuah model kecil memprediksi kemungkinan karakter berikutnya dalam string masukan
    Jika string masukannya “Lazy dog jumped over a fence.”, model memprediksi kemungkinan tiap karakter
    Misalnya, mungkin model 100% yakin karakter berikutnya adalah “a”, atau mungkin “a” 10%, “b” 10%, dan seterusnya
    Lalu perkiraan karakter itu dikelompokkan bersama. Berapa banyak karakter? Cukup sampai total ketidakpastian tiap kelompok, yaitu entropi, menjadi mirip
    Dengan begitu terbentuklah patch atau “token”

    • Penjelasan di bagian 2.3 makalah tidak seperti itu
      Mereka hanya memakai entropi byte berikutnya, lalu melihat apakah itu melewati ambang batas (kendala global) atau lebih besar dari entropi byte sebelumnya sebesar ambang lain (kendala monotonic hampiran)
      Jadi seperti yang ditunjukkan di lampiran E, urutan yang panjang dan repetitif bisa menghasilkan patch yang sangat panjang secara patologis
      Yang benar-benar membuat saya penasaran adalah model byte-level CNN kecil yang memakai konteks 2 byte pada gambar 3(f), karena tidak disebut sama sekali di bagian lain makalah
    • Sebagai variasi, mungkin bisa dicoba melatih ini dengan algoritma kompresi standar
  • Post terkait terbaru:
    Riset, model, dan dataset baru dari Meta FAIR dibagikan - https://news.ycombinator.com/item?id=42412360 - Desember 2024, 61 komentar

  • Apakah ini berarti satu-satunya hal yang mengajarkan model, yaitu loss, hanyalah prediksi probabilitas di ruang satu byte?
    Kalau saya tidak salah paham, berarti itu saja sudah cukup, dan ini tampak cukup menjanjikan

  • Dari yang saya pahami, bukankah pendekatan ini menghilangkan bukan cuma tokenisasi tetapi juga sampling?
    Sampling bisa menjadi sumber masalah pada LLM, tetapi juga memungkinkan penggunaan menarik seperti memaksa tata bahasa agar model selalu menghasilkan JSON yang valid, menyesuaikan temperatur untuk mendapatkan distribusi yang lebih beragam, atau memakai sampling XTC
    Dalam BLT, apa padanannya?
    Saya hanya bisa membayangkan memberi byte yang diizinkan/dilarang sebagai masukan tambahan ke decoder, lalu mengulang decoding sampai keluaran valid muncul, tetapi mungkin ada pendekatan yang lebih sederhana dan jelas

    • Ini tidak menghilangkan sampling. Untuk memaksa tata bahasa dengan menentukan byte yang diizinkan/dilarang juga tidak perlu menjalankan decoder berulang kali
      Sama seperti model berbasis BPE, Anda cukup menghitung softmax pada lapisan keluaran hanya untuk byte yang diizinkan lalu melakukan sampling dari sana
  • Jadi ini berarti AI bisa dipra-latih juga pada biner?

    • Sekarang ada juga orang yang percaya AI nanti bisa menghasilkan biner terkompilasi. Misalnya, “tolong tambahkan fitur ini ke Notepad.exe”
      Kita mengira akhir permainan adalah AI menulis kode untuk kita, tetapi mungkin ia justru akan mengambil alih dengan cara yang jauh lebih sederhana
  • Menarik melihat betapa pendekatan linguistik dan pendekatan berbasis pengalaman tersisih dari tren
    Manusia, meskipun bisa, biasanya tidak membaca satu per satu karakter. Kita punya akar kata, dan memahami perubahan akhiran. Tokenisasi tidak mereproduksi pengalaman ini, dan itu makin jelas jika melihat token yang muncul di kosakata LLM; hal yang sama berlaku untuk pengodean karakter atau byte
    Manusia punya banyak cara untuk mengurai kata. Kita bisa memahami seluruh kalimat sekaligus, bisa membaca per frasa, bisa membaca per kata, atau mengeja kata baru suara demi suara berdasarkan karakternya
    Sangat sedikit makalah yang secara eksplisit berargumen bahwa suatu metode itu baik karena mereproduksi cara manusia menyelesaikan tugas atau memersepsikan dunia
    Semakin besar ketergantungan kita pada LLM, rasanya kita akan semakin ingin menyesuaikan model agar lebih dekat dengan pengalaman kita. Dengan begitu, saya rasa kesalahan yang dibuat model juga akan lebih mudah dipahami

  • Kalimat “tidak seperti tokenisasi, BLT tidak memiliki kosakata tetap untuk patch” berarti, jika saya memahaminya dengan benar, bahwa kosakata patch tidak diketahui sebelum pelatihan
    Setelah pelatihan menetapkan kosakata patch, sepertinya inferensi akan memakai kosakata tetap yang sama. Kalau tidak, saya tidak tahu bagaimana ini bisa bekerja
    Benarkah?