Jarak Semantik sebagai Jarak Euclidean
Ruang Vektor Berdimensi Tinggi
Setiap token dalam kosakata 8449-token ANDREA-120M dipetakan ke satu titik di R^768. Matriks embedding token memiliki bentuk 8449 x 768: 8449 baris, satu untuk setiap token kosakata; 768 kolom, satu untuk setiap dimensi embedding.
Tiga Sifat yang Membuat Ini Ruang Vektor
[BLOCK_TYPE SECTION/STEP]1. Penjumlahan. v_a + v_b berada di R^768. Jumlah dua embedding adalah vektor yang valid. [BLOCK_TYPE SECTION/STEP]
2. Perkalian skalar. alpha * v berada di R^768 untuk setiap alpha real. Meregangkan atau mengecilkan sepanjang arah yang sama. [BLOCK_TYPE SECTION/STEP]
3. Linearitas. alpha v_a + beta v_b berada di R^768. Kombinasi linear tetap berada di dalam ruang. [BLOCK_TYPE SECTION/STEP]
Sifat-sifat ini memberi kita alat geometri: jarak, sudut, proyeksi, basis, ortogonalitas. [BLOCK_TYPE SECTION/STEP]
Jarak sebagai Kesamaan Semantik
Cosine similarity dari dua embedding mengukur sudut di antara keduanya: cos(theta) = (v_a . v_b) / (||v_a|| * ||v_b||). Rentang: -1 (berlawanan) hingga +1 (sejajar).
Pola empiris setelah pelatihan: token dengan konteks serupa menghasilkan embedding dengan cosine similarity tinggi. ANDREA-120M menempatkan parakeet & monkey berdekatan (keduanya biologis, keduanya spesies, keduanya kategori hidup atau punah). Ia menempatkan Fourier & transform berdekatan (konteks pemrosesan sinyal). Ia menempatkan parakeet & Fourier berjauhan (ortogonalitas lintas domain).
Mengapa R^768 Bukan R^384
ANDREA-12M menggunakan d_model = 384. ANDREA-120M menggandakannya menjadi 768. Penggandaan ini penting: ruang 384 dimensi memiliki lebih sedikit 'sudut' yang tersedia, & disambiguasi lintas domain menjadi kurang efektif. Menggandakan kapasitas memberi model ruang untuk memisahkan bank (sungai) versus bank (keuangan) ke dalam cekungan berbeda dalam ruang embedding tanpa satu kolaps ke yang lain.
Pembaruan Embedding sebagai Translasi Vektor
Setiap langkah gradien menambahkan delta_v ke v_token. Secara geometris: translasi kecil dalam R^768 menggeser posisi setiap token menuju wilayah yang mengurangi loss. Dalam 200K langkah, setiap token berpindah dari inisialisasi acak ke lokasi yang telah dipelajari.
Menghitung Jarak
Tiga embedding yang telah dilatih (disederhanakan ke R^3 untuk aritmetika):
- v(parakeet) = (1.0, 0.5, 0.0)
- v(monkey) = (1.2, 0.3, 0.1)
- v(Fourier) = (0.0, 0.0, 1.5)
Proyeksi ke Subruang Query
Apa yang Dihitung oleh Attention
Untuk token pada posisi t, attention menghitung:
<translated content> [BLOCK_TYPE SECTION/STEP]
softmax(Q K^T / sqrt(d_k)) V [BLOCK_TYPE SECTION/STEP]
<translated content> [BLOCK_TYPE SECTION/STEP]
Di mana Q adalah query (pertanyaan token ini), K adalah keys (pengidentifikasi setiap token sebelumnya), V adalah values (konten setiap token sebelumnya). Output mencampur V dengan bobot berdasarkan seberapa besar query berhubungan dengan setiap key. [BLOCK_TYPE SECTION/STEP]
<translated content> [BLOCK_TYPE SECTION/STEP]
Pembacaan Geometris
[BLOCK_TYPE SECTION/STEP]Anggap K sebagai daftar vektor dalam R^d_k. Setiap baris adalah key dari satu token sebelumnya. Q adalah satu vektor dalam R^d_k: pertanyaan token ini. [BLOCK_TYPE SECTION/STEP]
<translated content>
Q K^T memproyeksikan setiap key ke arah Q. Hasil dot product q . k_i mengukur seberapa besar k_i sejajar dengan arah vektor q. Proyeksi panjang = key sangat relevan dengan query. Proyeksi pendek = key hampir tidak relevan.
softmax menormalisasi proyeksi-proyeksi tersebut menjadi bobot yang jumlahnya 1. Jumlah berbobot dari V menghasilkan satu vektor tunggal: campuran konten masa lalu, ditimbang berdasarkan relevansinya terhadap query saat ini.
Multi-Head Attention sebagai Proyeksi Multi-Subruang
ANDREA-120M menggunakan 12 attention head. d_model = 768; d_k = 768 / 12 = 64. Setiap head memproyeksikan ke subruang 64-dimensi yang berbeda dalam R^768. Dua belas head memberikan dua belas pandangan independen terhadap urutan yang sama: satu head mungkin melacak peran gramatikal, head lain melacak kemiripan semantik, dan head lainnya melacak referensi jarak jauh.
Secara geometris: setiap head mendefinisikan subruang berorientasi 64-dimensi (sebuah 'jendela') yang digunakan untuk melihat masa lalu.
Topeng Kausal
Model decoder-only menambahkan topeng kausal: setiap entri Q K^T di atas diagonal diatur ke -infinity sebelum softmax. Secara geometris: proyeksi ke token masa depan mana pun mendapat bobot nol. Token t hanya dapat melihat token 0 hingga t.
Mengapa ini penting: pelatihan & inferensi menjadi simetris. Forward pass yang sama, proyeksi yang sama dengan topeng, tanpa logika generasi khusus.
Skala sqrt(d_k)
Tanpa penskalaan, hasil dot product bertambah seiring d_k. Dot product yang besar mendorong softmax ke wilayah one-hot (satu bobot mendekati 1, sisanya mendekati 0). Membagi dengan sqrt(d_k) menjaga proyeksi pada skala varians-unit, mempertahankan ketajaman softmax pada rentang nilai d_k yang luas.
Secara geometris: sqrt(d_k) menormalkan panjang proyeksi sehingga softmax melihat magnitudo yang sebanding terlepas dari dimensi subruang.
Membaca Proyeksi
Tiga kunci & satu kueri dalam R^4 (disederhanakan untuk aritmetika):
- q = (1, 0, 1, 0)
- k_1 = (1, 0, 0, 0) [token masa lalu 1]
- k_2 = (0, 0, 1, 0) [token masa lalu 2]
- k_3 = (0, 1, 0, 1) [past token 3]
d_k = 4, sehingga sqrt(d_k) = 2.
Gradient Descent sebagai Jalur di Medan [BLOCK_TYPE CONTENT loss_surface/terrain_content]
Permukaan dalam 120M+1 Dimensi
[BLOCK_TYPE CONTENT loss_surface/terrain_content]Setiap konfigurasi bobot ANDREA-120M adalah satu titik dalam R^120,000,000. Loss L(w) memetakan setiap titik ke bilangan real: training loss pada konfigurasi ini. Bersama-sama, nilai loss membentuk permukaan berdimensi (120M+1) di atas ruang parameter. [BLOCK_TYPE CONTENT loss_surface/terrain_content]
[BLOCK_TYPE CONTENT loss_surface/terrain_content]
Secara geometris mustahil untuk divisualisasikan secara langsung. Secara konseptual: sebuah medan. Pegunungan (loss tinggi), lembah (loss rendah), titik pelana, dataran tinggi, punggungan, cekungan. [BLOCK_TYPE CONTENT loss_surface/terrain_content]
[BLOCK_TYPE CONTENT loss_surface/terrain_content]
Gradien sebagai Kemiringan Lokal
[BLOCK_TYPE CONTENT loss_surface/terrain_content]grad L(w) adalah vektor dalam R^120M yang menunjuk ke arah kenaikan L yang paling curam. Menegasi vektor tersebut: -grad L(w) menunjuk ke arah penurunan yang paling curam.
Satu langkah AdamW menggeser w ke arah negatif gradien (dengan penskalaan adaptif dari m & v). Secara geometris: langkah kecil di sepanjang permukaan, menurun, dengan ukuran langkah dikendalikan oleh lr.
Cekungan Buruk v1
v1 mengambil langkah pertamanya pada LR = puncak (0.0003) pada bobot yang baru diinisialisasi. Gambaran geometris: w_0 berada di wilayah yang sangat melengkung (inisialisasi acak memiliki kurvatur tinggi di banyak arah), & langkah LR puncak mendarat di cekungan yang salah. Langkah-langkah berikutnya tidak dapat keluar. Model terjebak menghasilkan 'region region region' karena cekungan itu memiliki loss terendah yang dapat ditemukan model dari tempat ia mendarat.
Jalur Warmup v2
v2 mengambil 2000 langkah kecil dengan LR yang naik secara bertahap dari 0 ke puncak. Gambaran geometris: w_0 pertama-tama bergerak perlahan di sepanjang arah yang mulus (di mana kurvatur rendah). Pada langkah ke-2000, w telah berpindah ke wilayah yang lebih mudah dinavigasi; LR puncak kemudian dapat mendorongnya menuju cekungan yang lebih baik tanpa melampaui.
Warmup adalah protokol inisialisasi yang sadar geometri: biarkan model menemukan lingkungan lokal yang aman sebelum mendorongnya dengan keras.
Cekungan Lebar vs Sempit
Pada langkah 112K, ANDREA-120M berada di dalam sebuah cekungan. Pertanyaan: seberapa lebar cekungan tersebut?
Cekungan lebar = banyak konfigurasi bobot tetangga juga mencapai kerugian pelatihan yang rendah. Generalisasi cenderung baik (lebar cekungan memprediksi performa pengujian; lihat pelajaran PAC-Bayes, Bab 3).
Cekungan sempit = hanya sedikit bobot yang mencapai loss rendah. Generalisasi cenderung menurun.
v3 polish pada langkah 112.619 menggeser model di sepanjang permukaan (tanpa reset) menuju cekungan yang lebih lebar melalui curriculum perturbation: mengubah fungsi loss (bandit berbeda, campuran pelatihan berbeda), membiarkan SGD menemukan wilayah datar terdekat di bawah kebijakan baru.
Tebing Zombie
Loss anomali 0,13 pada langkah 112.080 adalah sebuah CLIFF: wilayah tajam dan sempit di mana satu pola input spesifik (substring repo-docs yang dihafal) menghasilkan loss mendekati nol. Model jatuh dari cekungan yang lebih luas ke dalam jurang sempit. Hard-exclusion repo-docs pada polish-pivot mengisi jurang tersebut sehingga SGD tidak lagi dapat menemukannya.
Membaca Medan
Campuran Kurikulum sebagai Perjalanan pada Simplex Diskrit
Apa Itu Simplex
Simplex berdimensi-n (khususnya simplex standar (n-1)) adalah himpunan n-tupel (w_1, w_2, ..., w_n) dengan setiap w_i >= 0 & sum(w_i) = 1.
Untuk n = 2: segmen garis dari (1, 0) ke (0, 1). Untuk n = 3: segitiga dengan titik-titik (1, 0, 0), (0, 1, 0), (0, 0, 1). Untuk n = 16 (daftar sumber lengkap ANDREA): sebuah simpleks 15-dimensi yang terletak di dalam R^16.
Bobot Bandit sebagai Koordinat Simpleks
Bandit ANDREA menghasilkan vektor bobot w atas sumber data pada setiap fase. Setiap komponen w_i adalah probabilitas untuk mengambil sampel sumber i. Probabilitas bernilai non-negatif & berjumlah 1: setiap vektor bobot berada pada simpleks.
Titik sudut = strategi murni (hanya mengambil sampel satu sumber). Interior = strategi campuran (mengambil sampel beberapa sumber, masing-masing dengan probabilitas positif). Sisi = campuran hanya dua sumber.
Lantai Sumber sebagai Wilayah Terbatas
ANDREA memberlakukan bobot minimum: hermes3-general pada batas bawah 0.7 (pasca-polish). Ini membentuk sub-ruang simplex: hanya vektor bobot dengan w_hermes3-general >= 0.7 yang dapat dicapai.
Secara geometris: batas bawah memotong simplex dengan sebuah hyperplane. Wilayah yang dapat dicapai adalah bagian simplex yang berada di sisi yang benar dari setiap hyperplane batas bawah.
Batas Atas sebagai Pembatas Lainnya
ANDREA juga memberlakukan bobot maksimum: dictionary pada batas atas 0.25 (pasca-polish). Setiap batas atas adalah hyperplane lain, & wilayah yang dapat dicapai harus berada di sisi yang benar dari setiap hyperplane batas atas juga.
Mengecualikan suatu sumber sepenuhnya (cap = 0.0) adalah batas atas paling kuat: koordinat tersebut dipaksa menjadi nol, mengurangi dimensi simplex efektif sebanyak satu.
Transisi Fase sebagai Perjalanan Simplex
Setiap transisi fase (setiap 7-42 langkah) menghasilkan vektor bobot baru. Setiap vektor baru adalah titik pada simplex. Selama 200K langkah, bandit menelusuri jalur panjang melalui wilayah yang dapat dijangkau pada simplex.
Fase acak = teleport ke titik acak seragam di dalam wilayah yang dapat dijangkau.
Fase dikendalikan bandit = melangkah menuju verteks UCB-terbaik yang konsisten dengan batas bawah & batas atas.
Pivot poles = menggambar ulang wilayah yang dapat dijangkau (batas bawah baru, batas atas baru, beberapa sumber dikecualikan), & perjalanan berlanjut dari titik awal baru.
Mengapa Vertex Berbahaya
Fase pure-source (satu w_i = 1, sisanya = 0) berada di vertex simplex. Keanekaragaman nol. Model dilatih hanya pada satu distribusi. Sebagian keruntuhan v1 dapat ditelusuri ke bandit yang berkemah di dekat vertex repo-docs; sampel hanya mereproduksi distribusi sumber tersebut.
Floor mencegah vertex-camping: floor pada 0.7 berarti 'jangan pernah biarkan bobot sumber mana pun turun di bawah 0.7' (atau nilai floor yang berlaku untuk sumber prioritas).
Menjelajahi Wilayah yang Dapat Dijangkau
Tiga sumber: hermes3-general (H), gutenberg (G), dictionary (D). Batasan: floor H = 0.5, cap D = 0.25. (Implisit: semua bobot >= 0, jumlah = 1, tidak ada batasan lain.)
Membatasi Dimensi untuk 20K Langkah Pertama
Apa yang Dilakukan Pemanasan Kurikulum v2
v2 menetapkan curriculum_warmup_sources ke tujuh sumber: hermes3-general, hermes3-creative, hermes3-roleplay, chat, smoltalk, oasst, gutenberg. Untuk 20K langkah pertama, HANYA tujuh sumber tersebut yang berkontribusi. Setelah langkah 20K, seluruh 16-sumber firehose diaktifkan.
Pembacaan Geometris
Simplex 16-sumber penuh berada di R^16. Membatasi ke 7 sumber membuat 9 dari 16 koordinat menjadi nol. Perjalanan bandit berlangsung dalam sub-simplex berdimensi 6 (satu kurang dari jumlah sumber, karena kendala jumlah-ke-1).
Secara geometris: sebuah SUBMANIFOLD dari simplex penuh. Berdimensi lebih rendah, lebih halus, lebih mudah dinavigasi.
Mengapa Ini Membantu Pelatihan Awal
Di awal pelatihan, model belum mempelajari bahasa yang koheren sama sekali. Sumber yang beragam membingungkannya: setiap sumber memiliki gaya sendiri, distribusi kosakata sendiri, dan pola sendiri. Mencampur 16 sumber pada inisialisasi acak menciptakan distribusi target yang terlalu luas sehingga model tidak dapat menyesuaikan.
Membatasi ke 7 sumber percakapan/prosa memberikan target yang lebih seragam. Model terlebih dahulu mempelajari representasi yang stabil, kemudian berkembang.
Jalur Geometris Melalui Pelatihan
1. Langkah 0 hingga 20K (warmup). Walk berjalan di 6-D sub-simplex. Pola bahasa yang stabil muncul dalam model.
2. Langkah 20K hingga 112K (full firehose). Walk meluas ke 15-D full simplex. Keluasan domain muncul.
3. Langkah 112K dan seterusnya (polish). Walk dibatasi lagi: repo-docs & repo-docstrings dikecualikan, conversational floors dinaikkan. Poligon yang lebih kecil dalam full simplex; kualitas percakapan menguat.
Mengapa Polish Menetapkan curriculum_warmup_steps = 0
Polish dimulai pada langkah 112K. Model sudah berbicara bahasa yang koheren. Membatasi ke sub-simplex sekarang akan kehilangan keluasan tanpa keuntungan apa pun (manfaat warmup adalah untuk model fresh-init). Menetapkan warmup_steps = 0 berarti: tetap di full simplex, tetapi dengan batas & lantai baru.
Tiga Geometri, Satu Proses Pelatihan
v2 warmup: sub-simplex berdimensi rendah.
v2 firehose: simplex penuh 15-D.
v3 polish: simplex penuh dengan poligon lebih kecil (lebih banyak kendala).
Proses pelatihan yang sama sebanyak 200K langkah, tiga rezim geometri berbeda. Masing-masing disesuaikan untuk fase kematangan model yang berbeda.