Kosakata karakter
Langkah pertama melatih model bahasa karakter: kumpulkan semua karakter unik di korpus. Kembalikan list karakter unik dari text, terurut menurut kode Unicode (huruf besar sebelum huruf kecil, spasi dan baris baru paling awal).
"halo" → ["a", "h", "l", "o"]
"aku suka kamu" → [" ", "a", "k", "m", "s", "u"]
Token adalah satuan
Model bahasa tidak membaca huruf, ia membaca bilangan bulat. Kosakata (vocabulary) menentukan satuan apa yang diberi nomor:
| level | contoh token | ukuran kosakata | panjang urutan |
|---|---|---|---|
| karakter | m, a, k | puluhan | sangat panjang |
| subword (BPE) | makan, an, di | 30 ribu – 200 ribu | sedang |
| kata | makanan | ratusan ribu+ | pendek |
Level karakter paling sederhana dan tidak pernah bertemu kata yang “tidak dikenal”, karena itu kita memakainya untuk tiny GPT. Kekurangannya, urutannya panjang, jadi model harus belajar mengeja.
Urutan harus deterministik
Kosakata harus selalu disusun dengan urutan yang sama. Kalau set() dipakai tanpa diurutkan, nomor token bisa berbeda antar-run, dan model yang sudah dilatih jadi tidak bisa dipakai lagi.
Penjelasan
Yang diminta. Daftar karakter unik dalam teks, terurut.
Langkah di kode: sorted(set(text)). set membuang duplikat, sorted mengurutkannya menurut kode Unicode dan mengembalikan list.
Urutan Unicode. Baris baru (\n, kode 10) dan spasi (32) muncul paling awal, lalu tanda baca dan angka, lalu huruf besar (65–90), lalu huruf kecil (97–122). Itulah kenapa "Bba\nA" menghasilkan ["\n", "A", "B", "a", "b"].
Kenapa harus diurutkan. Urutan set di Python tidak dijamin sama antar-run. Kosakata menentukan nomor token: jika urutannya berubah, token 5 bisa berarti “a” hari ini dan “k” besok, dan model yang sudah dilatih jadi tidak berguna.
Yang dikembalikan: list string 1 karakter (kosong jika teksnya kosong).
Topik
Petunjuk 1
set(text) memberi karakter unik. sorted(...) mengurutkannya dan mengembalikan list.
Nilai ditulis sebagai JSON. Output yang diharapkan dihitung dari solusi referensi.