English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

tamu
1 / ?
kembali ke pelajaran

Mengapa Batas Bawah Ada

Deretan Hadiah Buruk Dapat Membuat Sumber Prioritas Kelaparan

Bandit ANDREA memilih lengan fokus berdasarkan peringkat UCB1. Peringkat UCB bergantung pada mean_reward(k), yang bergantung pada perbaikan loss yang diamati. Deretan dokumen dengan loss tinggi dari sumber prioritas (misalnya dictionary) dapat menyeret mean_reward(k) ke bawah. Sekarang dictionary peringkat rendah, mendapat sedikit tarikan fokus, & mean_reward(k)-nya tidak dapat pulih (tidak ada tarikan = tidak ada pengamatan segar).


Risiko yang sama berlaku untuk sumber apa pun yang diinginkan oleh desainer pelatihan ANDREA dalam campuran terlepas dari sinyal hadiah jangka pendek.


Lantai sebagai Bobot Minimum

Konfigurasi pelatihan ANDREA menentukan lantai per sumber: bobot sampling minimum yang diterima sumber tersebut apa pun yang dikatakan output UCB. Lantai berkisar dari 0.0 hingga 1.0. Contoh:


hermes3-general lantai = 0.8 (sumber percakapan prioritas)

chat lantai = 0.8

dictionary lantai = 0.7 (kerangka ingatan faktual)

gutenberg lantai = 0.7 (koherensi prosa)

synthetic-chat floor = 0.0 (tidak ada floor; bandit memutuskan secara bebas)


Bagaimana Floor Diterapkan

Setelah UCB1 merangking lengan & dice control menyusun set fokus, setiap sumber mendapatkan bobot sementara. Kemudian penegakan floor dijalankan:


final_weight_k = max(tentative_weight_k, floor_k)


Jika bandit menetapkan bobot 0.3 untuk hermes3-general tetapi floor-nya adalah 0.8, floor menang: bobot akhir = 0.8. Suara bandit hanya ditimpa ke atas; tidak pernah ditimpa ke bawah.


Floors & Epoch Penalty Layout


Konfigurasi Berbeda, Lantai Berbeda

ANDREA menyediakan beberapa konfigurasi pelatihan: chatbot, tool-caller, bash-commander. Setiap konfigurasi menetapkan lantai yang berbeda untuk sumber prioritasnya. Konfigurasi chatbot menetapkan lantai tinggi untuk hermes3-general & chat. Tool-caller menetapkan repo-docstrings lebih tinggi. Bash-commander menetapkan repo-commits lebih tinggi. Algoritma yang sama, prioritas berbeda.

Terapkan Lantai

Setelah UCB1 + kontrol dadu, bandit menetapkan bobot sementara ini: hermes3-general 0.30, dictionary 0.55, gutenberg 0.85, synthetic-chat 0.40. Lantai adalah: hermes3-general 0.80, dictionary 0.70, gutenberg 0.70, synthetic-chat 0.00. Hitung bobot akhir untuk setiap sumber setelah penerapan lantai. Kemudian jelaskan dalam satu kalimat sumber mana yang bobotnya dinaikkan paling banyak.

Risiko Memorization

Sumber Kecil Mudah Dihafal

Sumber data ANDREA bervariasi liar dalam ukuran. synthetic-chat memiliki sekitar 1.400 dokumen. gutenberg memiliki 500.000+. Jika bandit menarik secara merata, synthetic-chat kehabisan kumpulan dokumennya dengan cepat: setelah 1.400 tarikan, setiap dokumen telah dilihat setidaknya sekali. Tarik 2.800 kali & setiap dokumen telah dilihat setidaknya dua kali secara rata-rata.


Paparan berulang terhadap kumpulan kecil dokumen menyebabkan memorization: model berhenti belajar pola yang dapat digeneralisasi & mulai mengulang urutan token spesifik dari data pelatihan. Memorization buruk karena dua alasan: (1) membuang kapasitas pada pengingatan hafalan daripada generalisasi, & (2) dapat membocorkan data pelatihan melalui generasi.


Epochs Sebagai Proksi Memorization

Definisikan sebuah epoch atas sumber k sebagai satu kali pemrosesan penuh melalui semua dokumen k:


epochs_k = floor(lifetime_pulls_k / n_docs_k)


Jika synthetic-chat (n_docs=1400) telah ditarik 2.800 kali, epochs = floor(2800/1400) = 2: sumber tersebut telah dilihat dua kali secara penuh. Jika gutenberg (n_docs=500.000) telah ditarik 100.000 kali, epochs = floor(100000/500000) = 0: belum satu kali pemrosesan penuh.


Penalti 1/(1+epochs)

Ketika lifetime_pulls / n_docs > 1.0, ANDREA menerapkan penalti multiplikatif:


penalty = 1 / (1 + epochs)


final_weight = bandit_weight * penalty


Kurva:


epochspenaltypengurangan bobot
01.000tidak ada
10.500setengah
20.333sepertiga
30.250seperempat
50.167seperenam
100.091satu per sebelas

Hukuman bertambah dengan setiap putaran yang selesai. Setelah banyak epoch, bobot sumber mendekati nol & bandit secara alami melepaskannya.


Mengapa Lifetime Pulls Tetap Berlanjut di Seluruh Restart

Pelatihan ANDREA berlangsung selama berhari-hari. Crash terjadi. Server reboot. Konfigurasi disesuaikan & pelatihan dilanjutkan dari checkpoint. Lifetime pulls tetap berlanjut di seluruh peristiwa ini: proxy menulis hitungan pull ke disk secara terus-menerus.


Jika pulls direset pada setiap restart, sumber kecil bisa secara efektif direset ke epoch 0 setiap kali pelatihan restart. Hukuman tidak akan pernah terakumulasi, & penghafalan akan berlanjut apa adanya. Mempertahankan lifetime pulls membuat hukuman menjadi batasan nyata yang tumbuh secara monoton.

Hitung Epoch Penalty

Sumber `synthetic-chat` memiliki n_docs = 1.400. Setelah 4.200 tarikan seumur hidup, hitung (a) jumlah epoch, (b) penalty 1/(1+epochs), (c) bobot akhir jika bobot bandit adalah 1.0. Kemudian untuk `gutenberg` dengan n_docs = 500.000 & 100.000 tarikan seumur hidup, hitung (d) lifetime_pulls/n_docs, & (e) apakah penalty diterapkan (ya atau tidak, dengan alasan).

Menutup Stack Kurikulum Bandit

Apa yang Anda Miliki

Floors menjamin sampling minimum untuk sumber prioritas: final_weight = max(bandit_weight, floor_k). Epoch penalties membatasi memorisasi pada sumber kecil: ketika lifetime_pulls/n_docs > 1, bobot dikalikan dengan 1/(1+epochs). Lifetime pulls bertahan melintasi restart sehingga penalty menjadi kendala monoton, bukan penghitung yang dapat direset.


Pipeline Lengkap

Menggabungkan keempat aktivitas bandit ANDREA (76-79):


1. Aktivitas 76 (UCB1). Setiap langkah menghitung UCB(k) = mean_reward(k) + 0.5 * sqrt(ln(N)/n_k). Argmax memilih lengan.

2. Aktivitas 77 (fase dadu). Batas fase (setiap 7 hingga 42 langkah) melempar dadu untuk jumlah lengan fokus. Lengan acak terlebih dahulu, UCB mengisi sisanya. 25-33% fase berjalan sepenuhnya acak.

3. Aktivitas 78 (atribusi reward). CUDA melaporkan loss; EMA per-sumber melacak riwayat; reward = max(0, EMA - loss) * 1000. Reward terukur memberi makan mean_reward(k).

4. Aktivitas 79 (lantai & epoch, pelajaran ini). Setelah output UCB, lantai meningkatkan sumber prioritas; penalti epoch menurunkan bobot sumber yang dihafal. Tarikan seumur hidup tetap ada.


Bersama-sama: seorang bandit yang beradaptasi (UCB1), menjelajahi dengan andal (fase dadu), mendapatkan sinyal hadiah yang jujur (skala 1000x), menghormati prioritas desain pelatihan (lantai), & menghindari hafalan (penalti epoch).


Referensi

ANDREA whitepaper, bagian 3.5 & 3.6.