- 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
- Download the Paper: Unduh makalah Byte Latent Transformer
1 komentar
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
Token hanyalah solusi sementara. Biasanya memang bekerja cukup baik, tetapi saat gagal, kegagalannya terlihat jelas
[1] https://arxiv.org/abs/2103.06874
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”
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
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
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?
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?