Apa yang Diprediksi Model Bahasa
Mesin Kelanjutan Probabilistik
Model bahasa mengambil urutan token & menetapkan distribusi probabilitas atas token apa yang datang selanjutnya. Berikan the cat sat on the & ia menghasilkan probabilitas di seluruh kosa kata: massa tinggi pada mat, floor, couch; massa rendah pada xylophone, Tuesday.
Mensampling distribusi tersebut, menambahkan token, & memasukkannya kembali: loop itu menghasilkan teks satu token pada satu waktu. Generasi Autoregresif, dinamai karena setiap langkah merujuk pada output sebelumnya sendiri.
Tiga Angka Mendefinisikan Model Bahasa
Ukuran kosa kata (V). Berapa banyak token berbeda yang dapat dihasilkan model. ANDREA-12M menggunakan 4.353 token; ANDREA-120M menggunakan 8.449.
Jendela konteks (T). Berapa banyak token yang muat dalam satu forward pass. Model ANDREA menggunakan T = 1.024.
Jumlah parameter (P). Berapa banyak bobot yang dipelajari di dalamnya. 12M, 120M, & 480M menamai keluarga berdasarkan P.
Sebuah Keluarga dari Tiga
| Varian | d_model | Heads | Layers | Context | Params |
|---|---|---|---|---|---|
| ANDREA-12M | 384 | 12 | 6 | 1024 | 12.8M |
| ANDREA-120M | 768 | 12 | 12 | 1024 | ~120M |
| ANDREA-480M | 1536 | 24 | 16 | 1024 | ~480M |
Tiga pengatur skala: d_model (lebar setiap vektor internal), n_layer (kedalaman blok transformer bertumpuk), n_head (proyeksi perhatian paralel). Kosakata & konteks tetap tetap di seluruh keluarga.
Membaca Tabel Keluarga
Mengapa Kecil Penting
Kendala sebagai Pembebasan
Model bahasa besar dengan ratusan miliar parameter memerlukan ribuan GPU, dataset milik pribadi, & anggaran korporat. Sedikit orang yang bisa melatihnya. Sedikit orang yang bisa memperbaikinya.
Model bahasa kecil pada satu GPU membalikkan itu. Siapa pun dengan 4090 (atau 3060) bisa mereproduksi ANDREA dari data terbuka. Resep pelatihan juga berfungsi sebagai model card. Kode terbuka, bobot terbuka, data terbuka; proveniensi lengkap dalam 72 jam komputasi.
Kapasitas vs Kualitas
Model yang lebih kecil tidak bisa menghafal korpus pelatihan mereka. ANDREA-12M, dengan 12,8 juta parameter, kekurangan kapasitas untuk menyimpan konten faktual; ia belajar struktur giliran, distribusi kosa kata, & bentuk respons. ANDREA-120M, dengan kapasitas 10×, belajar pengingatan faktual, koherensi multi-paragraf, & lebar domain (terverifikasi melalui penilaian eksternal 9,5/10 pada sampel biologi & pengolahan sinyal).
Poin utamanya: kapasitas menetapkan batas atas. Kurikulum menentukan apakah batas atas tersebut tercapai. Aktivitas 14-23 membahas kurikulum. [TITLE decoder_only/]
Tiga Varian Transformer
Encoder, Decoder, Keduanya
Transformer asli (Vaswani et al., 2017) dilengkapi dengan encoder & decoder, yang disatukan untuk terjemahan. Tiga garis arsitektur turunan berasal dari makalah tersebut:
Encoder-only (garis keturunan BERT). Perhatian dua arah, tanpa topeng kausal. Dioptimalkan untuk klasifikasi, bukan generasi. Sebuah token melihat masa lalu & masa depannya selama pelatihan.
Encoder-decoder (T5, BART). Encoder membaca input; decoder menghasilkan output, memperhatikan encoder melalui cross-attention. Digunakan untuk terjemahan, ringkasan.
Decoder-only (GPT, ANDREA). Causal mask: setiap token hanya melihat masa lalunya. Dilatih untuk memprediksi token berikutnya. Generasi gratis; pelatihan & inferensi berbagi forward pass yang sama.
Mengapa Decoder-Only Unggul pada Satu GPU
Tiga alasan:
1. Tujuan tunggal. Prediksi token berikutnya bekerja pada teks apa pun. Tidak perlu pasangan sumber/target.
2. Simetri pelatihan & inferensi. Forward pass yang sama, tidak ada logika generasi khusus.
3. Kesederhanaan memori. Tidak ada cross-attention; satu tumpukan lapisan; satu aliran aktivasi.
ANDREA mewarisi pilihan decoder-only dari microGPT, yang mewarisi dari nanoGPT, yang mewarisi dari GPT-2. Garis keturunan tetap standar; yang berubah terletak pada tokenisasi, infrastruktur pelatihan, & kurikulum.
Mengapa Decoder-Only untuk ANDREA
Apa yang Muat di 24 GB
Byte Per Parameter
RTX 4090 dilengkapi dengan 24 GB VRAM. Pelatihan ANDREA-12M menggunakan 1,4 GB. ANDREA-120M menggunakan jauh lebih banyak. Kesenjangan tersebut berasal dari latihan akuntansi sederhana: setiap parameter muncul beberapa kali di memori selama pelatihan.
Untuk setiap parameter, pelatihan menyimpan:
- Bobot itu sendiri (1× bobot)
- Momen pertama Adam (m): bentuk sama dengan bobot (1× bobot)
- Momen kedua Adam (v): bentuk sama dengan bobot (1× bobot)
- Gradien: bentuk sama dengan bobot (1× bobot)
- Aktivasi & sementara: ~2-4× bobot (beragam dengan batch & konteks)
Total: ~6-8× jumlah bobot, dalam byte ditentukan oleh presisi.
Presisi Mengalikan Semuanya
| Presisi | Byte/param | Total untuk 120M bobot | Catatan |
|---|---|---|---|
| FP32 | 4 | 480 MB | Baseline; paling aman, terlama |
| FP16 | 2 | 240 MB | cuBLAS, setengah memori |
| FP8 E4M3 | 1 | 120 MB | Tensor cores, risiko NaN |
Kali 6-8× untuk jejak lengkap saat pelatihan. ANDREA-120M berlatih dengan nyaman di FP16 (~2 GB untuk bobot + optimizer + grads); FP8 E4M3 memotong waktu pelatihan menjadi setengah di tensor cores RTX 4090.
Aktivitas 13 (grow_a_language_model_precision) membahas secara detail trade-off presisi FP.
Menentukan Ukuran Status Optimizer ANDREA-120M
Dua Puluh Lima Aktivitas
Dua Bagian
Kursus ini terbagi dengan rapi. Bagian pertama membahas apa yang diajarkan microGPT kepada bidang ini: sebuah transformer yang berjalan pada satu GPU. Bagian kedua membahas kontribusi aktual ANDREA: kurikulum yang belajar.
Bagian 1: Transformer pada Satu GPU (aktivitas 2-13)
| # | Aktivitas | Beat |
|---|---|---|
| 2 | Tokenisasi morfem Harris | segmentasi distributif, kosakata 256+N+1 |
| 3 | Penyelarasan tokenizer-diet | titik saturasi, mengapa 12M terbuang 63.6% |
| 4 | Embedding & posisi | pencarian token + posisi yang dipelajari |
| 5 | Perhatian dot-product terukur | Q·Kᵀ/√d, topeng kausal, softmax |
| 6 | Perhatian multi-kepala | pemisahan kepala, proyeksi paralel |
| 7 | Blok Transformer | MLP, residual, normalisasi lapisan |
| 8 | Cross-entropy & kebingungan | log-likelihud, kerugian SMMA |
| 9 | Backprop di CUDA kustom | aturan rantai melintasi microgpt_cuda.cu |
| 10 | AdamW | penurunan bobot terpisah; mengapa Adam vanilla mati |
| 11 | Pemanasan LR + penurunan kosinus | ramp 2000 langkah; mengapa puncak instan merusak 120M |
| 12 | Pemotongan gradien | norma L2 global; 3 kernel CUDA |
| 13 | FP32 / FP16 / FP8 E4M3 | trade-off presisi; tensor cores |
Bagian 2: Kurikulum yang Belajar (aktivitas 14-24)
| # | Aktivitas | Mengalahkan |
|---|---|---|
| 14 | Multi-armed bandits | UCB1, eksplorasi vs eksploitasi |
| 15 | Kontrol dadu berbasis fase | 7/14/21/28/42 fase, dadu 1d3/1d4 |
| 16 | Atribusi hadiah & EMA | EMA kerugian per-sumber, penskalaan 1000× |
| 17 | Lantai sumber & penalti epoch | 1/(1+epochs) mencegah hafalan |
| 18 | Bonus cakupan | pelacakan tingkat dokumen, 1.3× kesegaran |
| 19 | Pemanasan kurikulum | 7 sumber obrolan/prosa pada 20K langkah pertama |
| 20 | Penyaringan berdasarkan bentuk, bukan karakter | has_system_prompt_shape() |
| 21 | Penghentian dini berbasis coherence-gated | bigram/trigram/word/char auto-halt |
| 22 | Checkpoint, resume, sinyal | format, SIGTERM/SIGUSR1, kontinuitas loss.json |
| 23 | Audit sampel & penilaian eksternal | membaca sebuah run, wilayah 9.5/10 |
| 24 | Dari microGPT ke ANDREA-120M | kolaps v1, perbaikan v2, patch v2.5, polesan v3 |
Plus sebuah pendamping: geometry_of_andrea melihat setiap lapisan sebagai geometri (ruang embedding, attention sebagai proyeksi, permukaan loss, bandit sebagai jalan pada simplex diskrit).
Urutan yang Disarankan
Aktivitas 2-13 membangun transformer yang berfungsi. Lewati ke bagian 2 jika Anda pernah melatih transformer sebelumnya; kembali ketika rasa penasaran muncul.
Setiap aktivitas berdiri sendiri sebanyak mungkin. Referensi matematika merujuk aktivitas sebelumnya dengan nama (lihat aktivitas 5: scaled dot-product attention). Referensi kode menunjuk ke microgpt/microgpt_cuda.cu & microgpt/training_proxy.py di ~/git/uncloseai-cli/.