CUDA Belge İndekslerini Raporlar
Bir CUDA Eğitmeni Hangi Belgeyi Örneklediğini Bilir
Her eğitim adımı, birçok belgeyi uç uca paketleyen bir .btok ikilisinden bir diziyi çeker. CUDA, kayıp ile birlikte bir belge indeksi kaydeder: adım 47213, kaynak=gutenberg, doc=128407, kayıp=2.81. Bir vekil bu raporları toplar & kaynak başına görülen benzersiz belge indeksleri kümesini korur.
Sayılardan Kapsama
Kaynağın kapsama oranı = unique_docs_seen / n_docs. Birkaç örnek:
| Kaynak | n_docs | benzersiz görülen | kapsama |
|---|---|---|---|
| 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% |
Küçük kaynaklar hızlıca doyuyor. Büyük kaynaklar haftalarca %50'nin altına düşüyor. Kapsama bonusu, bir kaynağı henüz örneklememiş bir belgeyi ziyaret eden bandite ödül veriyor.
Bonus Formülü
Kapsama bonusu, %0 kapsamada 1.3x'ten %50 kapsamada 1.0x'e lineer olarak ölçeklenir, ardından %50'nin üzerinde 1.0x'te sabit kalır:
if coverage < 0.5:
bonus = 1.0 + 0.3 * (1.0 - coverage / 0.5)
else:
bonus = 1.0
%0 kapsama sahip bir kaynak 1.3x kazanır; %25 kapsama sahip bir kaynak 1.15x kazanır; %50 kapsama sahip bir kaynak 1.0x'e düşer. %50'nin üzerinde, bonus uygulanmaz.
Bonusu Hesapla
İki Farklı Tazelik Sinyali
Aynı Hedef, Farklı Granularite
ANDREA'nın tek bir kaynaktan aşırı eğitim yapılmasını önleyen iki mekanizması vardır. Bunlar benzer geliyor; farklı şeyleri ölçerler.
Epoch cezası. Toplam aşırı çekmeyi izler. lifetime_pulls / n_docs > 1.0 olduğunda, bir kaynak teorik olarak her belgeyi en az bir kez dolaşmıştır. Ceza = 1 / (1 + epochs). 1.4K-belgeli synthetic-chat kaynağı 5.600 ömür boyu çekişte (epochs = 4) 1/5 = 0.2x ceza alır. Epoch sayıları yeniden başlatmalarda kalıcıdır; asla azalmaz.
Kapsam bonusu. Bir kaynak içindeki belge başına tazeliği izler. CUDA belge indekslerini raporlar; vekil kaynak başına bir küme tutar. Benzersiz belgelerin %50 kapsama altında olan kaynaklar en fazla 1.3x kazanır. Kapsam, bir kaynağın kuyruğunu keşfetmeyi ödüllendirir; epoch cezası onu tüketmeyi cezalandırır.
Neden İkisi de Önemli
| Sinyal | Takip Eder | Yön | Şapka | Yeniden başlatmalarda kalıcı mı |
|---|---|---|---|---|
| Epoch cezası | toplu aşırı çekme | azaltır | 1/(1+e) | evet |
| Kapsam bonusu | belge başına tazelik | artırır | 1.3x | evet |
500K-belgeli bir gutenberg kaynağı, 200K eğitim boyunca %50 kapsama altında kalabilirken epoch=1'e hiç yaklaşmaz. Epoch cezası onu görmezden gelir; kapsam bonusu bir banditi gutenberg'in keşfedilmemiş %70 kuyruğuna aktif olarak çeker.
Tersine, 1.4K sentetik-sohbet kaynağı birkaç bin çekme içinde kapsama doygunluğuna (%100) ulaşır; kapsam bonusu 1.0x'te kalırken epoch cezası büyür.
Ayırt Et
Kapsama Bonusu ANDREA'ya Ne Kazandırır
Önlediği Arıza Modu
Belge düzeyinde izleme olmadan, adım başına ödül üzerinden seçim yapan bir bandit, .btok dizilerini açgözlü bir şekilde seçer. 500K-belge Gutenberg korpusu, düşük çapraz entropiye sahip birkaç bin dizi (tutarlı düzyazı, yaygın kelime dağarcığı) içerir. Yalnızca ödül odaklı bandit, güçlü ödül sinyalleri üretmeye devam ettikleri için bu dizilere tekrar tekrar döner.
Sonuç: 500K-belge korpusu, 200K eğitim adımında belki 2K-5K farklı dizi üzerinden örneklenir. Model, gerisini hiç görmeden bu dizileri ezberler. Kapasite boşa harcanır; kapsama %1'in altında takılır.
Kapsama Bonusu Ne Sağlar
%0 kapsamada 1.3x, %50'de 1.0x'e ölçeklenen. Bu itiş, UCB1 seçimi boyunca yayılır: düşük kapsama sahip kollar, çekim başına ödülleri düşse bile rekabetçi kalır. Bandit, tesadüfen değil tasarım gereği kuyruğu keşfeder.
500K-belge Gutenberg üzerinde 200K-adımlık bir çalışmada, kapsama bonusu gözlemlenen kapsama oranını genellikle ~%3'ten (bonus yok) ~%25-30'a (bonus var) yükseltir. Aynı hesaplama, sekiz ila on kat daha fazla belgeye dokunur.
Takip Nerede Bulunur
| Bileşen | Sorumluluk |
|---|---|
microgpt_cuda.cu | Her eğitim adımında belge indeksini raporlar |
training_proxy.py | Kaynak başına seen_docs kümesini korur |
training_proxy.py | Kapsama hesaplar, bandit ödülüne bonus uygular |
training_proxy.py | seen_docs'u yeniden başlatmalar arasında .state.json'a kalıcı hale getirir |