Kata ke Angka
Penerjemah di Perbatasan
Model bahasa tidak pernah melihat teks. Ia melihat bilangan bulat. Tokenizer berada di perbatasan: kata-kata manusia mengalir masuk, ID bilangan bulat mengalir keluar. Generasi membalik aliran: ID bilangan bulat kembali, tokenizer merender teks.
Tiga tugas:
1. Segmentasi. Potong string menjadi potongan-potongan (token).
2. Pemetaan. Tetapkan setiap potongan dengan ID integer unik dari kosa kata tetap.
3. Pembalikan. Rekonstruksi teks dari ID pada saat generasi.
Mengapa Potongan, Bukan Kata Utuh
Kosa kata kata utuh meledak. Bahasa Inggris saja memiliki ratusan ribu bentuk. Lebih buruk lagi, model yang dilatih pada kata utuh tidak dapat menangani kesalahan ketik, nama baru, atau frasa asing: kata yang belum terlihat dipetakan ke slot <UNK> tunggal.
Tokenisasi subword memperbaiki itu. Kosa kata potongan-potongan umum dapat disusun menjadi kata apa pun, termasuk yang belum pernah dilihat selama pelatihan. Dua strategi yang mendominasi: BPE (byte pair encoding) & segmentasi distributif. ANDREA memilih strategi kedua.
Mengapa Subword
Di Mana Kata Terputus
Zellig Harris, 1955
Seorang linguis bernama Zellig Harris menyadari sesuatu. Di dalam sebuah kata, jumlah huruf unik yang mengikuti urutan huruf tertentu bervariasi secara tajam. Setelah un Anda bisa menemukan puluhan huruf: a, b, c, d, e ... Setelah unbel hanya sedikit huruf yang mengikuti: i (kemudian ievable).
Lonjakan variasi penerus menandai batas morfem yang mungkin. Setelah un (awalan), variasi melonjak karena banyak akar yang bisa mengikuti. Di dalam akar seperti believ, variasi tetap rendah karena huruf-huruf saling memprediksi. Pada transisi antara morfem, variasi melonjak lagi.
Dari Lonjakan Variasi ke Segmen
Jalankan detektor itu di seluruh korpus pelatihan. Setiap kata menyumbangkan bukti statistik. Sebuah tokenizer mengumpulkan segmen berfrekuensi tinggi yang berulang pada batas berbentuk morfem: un, re, pre, believ, know, ing, able, ly, tion, ed.
Tidak ada label. Tidak ada linguis yang menandai morfem secara manual. Statistik ko-okurensi huruf yang melakukan pekerjaan.
Harris vs BPE
| Properti | Harris | BPE |
|---|---|---|
| Kriteria batas | Lonjakan variasi penerus | Frekuensi pasangan |
| Bentuk linguistik | Selaras dengan morfem (awalan, akar, akhiran) | Pasangan byte yang sering |
Contoh: unbelievably | un + believ + abl + y | unb + eli + eva + bly |
| Generalisasi | Kuat (akar + afiks bere kombinasi) | Lebih lemah (pasangan tidak harus selaras) |
Keduanya menghasilkan potongan subkata. Potongan Harris cenderung selaras dengan apa yang disebut linguis sebagai morfem: unit bermakna terkecil. Potongan BPE mengoptimalkan kompresi: pasangan byte paling sering digabung, terlepas dari makna.
Segmentasikan Sebuah Kata
Tiga Lapisan Kosa Kata
Anatomi Kosa Kata ANDREA
Tokenisasi Harris menghasilkan kosa kata dengan tiga lapisan:
Slab 1: 256 byte dasar. Setiap byte UTF-8 yang mungkin (0x00 hingga 0xFF) mendapatkan ID token sendiri. Jaring pengaman: karakter apa pun yang ada dalam korpus, tokenizer dapat merepresentasikannya sebagai urutan byte. Tidak ada <UNK> yang pernah aktif.
Slab 2: N segmen morfem. Potongan umum yang ditemukan melalui analisis distribusional. ANDREA-12M dilatih dengan N = 4096; ANDREA-120M dilatih dengan N = 8192. Setiap segmen mengompresi string multi-byte berulang menjadi satu token tunggal.
Slab 3: 1 token BOS. Penanda khusus yang ditempatkan di awal setiap urutan pelatihan. Memungkinkan model mempelajari 'posisi ini tidak memiliki masa lalu'. ANDREA-12M & ANDREA-120M keduanya menyediakan tepat satu ID untuk BOS.
Ukuran Kosa Kata
| Model | Base bytes | Segmen morfem (N) | BOS | Ukuran vocab |
|---|---|---|---|---|
| ANDREA-12M | 256 | 4096 | 1 | 4353 |
| ANDREA-120M | 256 | 8192 | 1 | 8449 |
256 + N + 1 = ukuran vocabulary. Sederhana. Dapat direproduksi. Terbuka.
Mengapa Byte Slab Penting
Fallback byte menjamin cakupan. Jika model menemui 日本語 & tokenizer tidak memiliki morfem Jepang, byte UTF-8 individual membawa urutan melalui. Model dilatih pada byte; kualitas pada skrip langka bergantung pada kapasitas & paparan, tapi tidak ada input yang pernah meruntuhkan tokenizer.
Hitung Ukuran Kosa Kata
Awal Urutan
Mengapa Urutan Membutuhkan Penanda
Transformer decoder-only memprediksi token berikutnya dari konteks sebelumnya. Posisi 0 tidak memiliki konteks sebelumnya. Tanpa penanda, posisi 0 berada di lubang logis: model tidak memiliki apa pun untuk dihadapi.
BOS mengatasi lubang tersebut. Token khusus tunggal (ID = 256 + N) ditempatkan di awal setiap urutan selama pelatihan. Model mempelajari:
- 'Ketika kamu melihat BOS, prediksi token pertama yang mungkin dari teks alami.'
- 'Ketika kamu melihat BOS diikuti oleh kata, kata tersebut adalah awal urutan, bukan kelanjutan.'
Satu Token, Banyak Penggunaan
BOS muncul di:
- Waktu pelatihan: ditambahkan di depan setiap potongan teks yang dimasukkan ke model.
- Waktu inferensi: ditambahkan di depan prompt agar model melihat sinyal 'awal baru' yang familiar.
- Pemandaian batas: di beberapa pipeline, sebagai pemisah antara dokumen yang disatukan.
ANDREA menyediakan tepat satu ID untuk BOS. Tidak ada EOS, tidak ada PAD, tidak ada token khusus selain yang dibutuhkan oleh kosa kata. Kesederhanaan tetap menjadi nilai permacomputer: setiap token harus membenarkan tempatnya.
Aktivitas 3 Berlanjut
Aktivitas 3 (grow_a_language_model_tokenizer_diet) membahas apa yang terjadi ketika N terlalu besar atau korpus tokenizer menyimpang dari korpus pelatihan. ANDREA-12M membuang 63,6% dari kosa katanya; ANDREA-120M memperbaikinya. Baca lebih lanjut.