CUDA Melaporkan Indeks Dokumen
Seorang Trainer CUDA Tahu Dokumen Mana yang Diambilnya
Setiap langkah pelatihan menarik urutan dari file .btok biner, yang mengemas banyak dokumen secara berurutan. CUDA mencatat indeks dokumen bersama dengan loss: step 47213, source=gutenberg, doc=128407, loss=2.81. Proksi mengumpulkan laporan ini & mempertahankan kumpulan indeks dokumen unik yang dilihat per sumber.
Dari Hitungan ke Cakupan
Cakupan sebuah sumber = unique_docs_seen / n_docs. Beberapa contoh:
| Sumber | n_docs | unique seen | cakupan |
|---|---|---|---|
| gutenberg | 512.000 | 154.000 | 30,1% |
| hermes3-general | 67.395 | 47.176 | 70,0% |
| dictionary | 88.000 | 88.000 | 100,0% |
| synthetic-chat | 1.400 | 1.400 | 100,0% |
Sumber kecil jenuh dengan cepat. Sumber besar turun di bawah 50% selama berminggu-minggu. Bonus cakupan memberi hadiah pada bandit untuk mengunjungi dokumen yang belum pernah disampling dalam suatu sumber.
Rumus Bonus
Bonus cakupan meningkat secara linier dari 1.3x pada cakupan 0% turun ke 1.0x pada cakupan 50%, kemudian tetap di 1.0x di atas 50%:
if coverage < 0.5:
bonus = 1.0 + 0.3 * (1.0 - coverage / 0.5)
else:
bonus = 1.0
Sumber dengan cakupan 0% mendapatkan 1.3x; sumber dengan cakupan 25% mendapatkan 1.15x; sumber dengan cakupan 50% turun menjadi 1.0x. Di atas 50%, tidak ada bonus yang berlaku.
Hitung Bonus
Dua Sinyal Kesegaran yang Berbeda
Tujuan yang Sama, Granularitas Berbeda
ANDREA memiliki dua mekanisme yang mencegah over-training pada satu sumber tunggal. Mereka terdengar mirip; mereka mengukur hal yang berbeda.
Hukuman epoch. Melacak aggregate over-pulling. Ketika lifetime_pulls / n_docs > 1.0, sebuah sumber secara teori telah melampaui setiap dokumen setidaknya sekali. Hukuman = 1 / (1 + epochs). Sumber synthetic-chat dengan 1.4K dokumen pada 5.600 lifetime pulls (epochs = 4) mendapat hukuman 1/5 = 0.2x. Hitungan epoch bertahan melintasi restart; mereka tidak pernah berkurang.
Bonus coverage. Melacak kesegaran per-dokumen dalam sebuah sumber. CUDA melaporkan indeks dokumen; proxy mempertahankan set per sumber. Sumber di bawah 50% coverage dokumen unik mendapat hingga 1.3x. Coverage memberi hadiah eksplorasi ekor sumber; hukuman epoch menghukum kelelahan sumber tersebut.
Mengapa Keduanya Penting
| Sinyal | Melacak | Arah | Batas | Bertahan lintas restart |
|---|---|---|---|---|
| Penalti epoch | agregat over-pulling | kurangi | 1/(1+e) | ya |
| Bonus cakupan | kesegaran per-dokumen | tingkatkan | 1.3x | ya |
Sumber gutenberg 500K-dokumen dapat tetap di bawah cakupan 50% selama seluruh pelatihan 200K sambil tidak pernah mendekati epoch=1. Penalti epoch mengabaikannya; bonus cakupan secara aktif menarik bandit menuju ekor 70% gutenberg yang belum dieksplorasi.
Sebaliknya, sumber synthetic-chat 1.4K jenuh cakupan (100%) dalam beberapa ribu tarikan; bonus cakupan tetap di 1.0x sementara penalti epoch tumbuh.
Bedakan Keduanya
Apa yang Dibeli Bonus Cakupan untuk ANDREA
Mode Kegagalan yang Dicegahnya
Tanpa pelacakan tingkat dokumen, bandit yang memilih berdasarkan reward per langkah memilih urutan .btok secara serakah. Korpus gutenberg 500K-dokumen berisi beberapa ribu urutan dengan cross-entropy rendah (prosa konsisten, kosakata umum). Bandit hanya berdasarkan reward kembali ke urutan-urutan tersebut berulang kali karena mereka terus menghasilkan sinyal reward yang kuat.
Hasil: korpus 500K-dokumen hanya disampling melintasi mungkin 2K-5K urutan berbeda selama 200K langkah pelatihan. Model menghafal urutan-urutan tersebut tanpa pernah melihat sisanya. Kapasitas terbuang; coverage terjebak di bawah 1%.
Apa yang Dibeli Bonus Coverage
1.3x pada 0% coverage, menurun secara linier menjadi 1.0x pada 50%. Dorongan itu merambat melalui seleksi UCB1: lengan dengan coverage rendah tetap kompetitif bahkan ketika reward per-pull mereka turun. Bandit mengeksplorasi ekor secara desain daripada secara kebetulan.
Selama pelatihan 200K langkah pada gutenberg 500K-dokumen, bonus coverage biasanya meningkatkan coverage yang diamati dari ~3% (tanpa bonus) menjadi ~25-30% (dengan bonus). Komputasi yang sama, delapan hingga sepuluh kali lebih banyak dokumen yang disentuh.
Di Mana Pelacakan Berada
| Komponen | Tanggung Jawab |
|---|---|
microgpt_cuda.cu | Melaporkan indeks dokumen per langkah pelatihan |
training_proxy.py | Mempertahankan set seen_docs per sumber |
training_proxy.py | Menghitung cakupan, menerapkan bonus ke hadiah bandit |
training_proxy.py | Mempertahankan seen_docs ke .state.json melintasi restart |