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

un

Gast
1 / ?

CUDA berichtet Dokumentenindizes

Ein CUDA-Trainer weiß, welches Dokument gesampelt wurde

Jeder Trainingsschritt zieht eine Sequenz aus einer .btok-Binärdatei, die viele Dokumente hintereinander packt. CUDA protokolliert einen Dokumentenindex neben dem Verlust: step 47213, source=gutenberg, doc=128407, loss=2.81. Ein Proxy sammelt diese Berichte & pflegt eine Menge eindeutiger Dokumentenindizes pro Quelle.


Von Zählungen zu Abdeckung

Abdeckung einer Quelle = unique_docs_seen / n_docs. Einige Beispiele:


Quellen_docsunique gesehenAbdeckung
gutenberg512.000154.00030,1%
hermes3-general67.39547.17670,0%
dictionary88.00088.000100,0%
synthetic-chat1.4001.400100,0%

Kleine Quellen sättigen sich schnell. Große Quellen fallen für Wochen unter 50 %. Der Coverage-Bonus belohnt einen Banditen dafür, Dokumente zu besuchen, die er noch nicht innerhalb einer Quelle probiert hat.


Coverage-Bonus pro Quelle


Bonus-Formel

Der Coverage-Bonus skaliert linear von 1,3x bei 0 % Abdeckung herunter auf 1,0x bei 50 % Abdeckung, dann flach bei 1,0x oberhalb von 50 %:


if coverage < 0.5:
bonus = 1.0 + 0.3 * (1.0 - coverage / 0.5)
else:
bonus = 1.0

Eine Quelle mit 0 % Abdeckung erhält 1,3x; eine Quelle mit 25 % erhält 1,15x; eine Quelle mit 50 % fällt auf 1,0x. Über 50 % gibt es keinen Bonus.

Bonus berechnen

Ein Lauf mit gutenberg Coverage bei 30% & hermes3-general Coverage bei 70%. Berechnen Sie den Coverage-Bonusmultiplikator für jede Quelle. Zeigen Sie Ihre Rechenarbeit.

Zwei unterschiedliche Frische-Signale

Gleiches Ziel, unterschiedliche Granularität

ANDREA verfügt über zwei Mechanismen, die ein Übertraining an einer einzelnen Quelle verhindern. Sie klingen ähnlich; sie messen unterschiedliche Dinge.


Epoch-Strafe. Verfolgt aggregiertes Überziehen. Wenn lifetime_pulls / n_docs > 1.0, hat eine Quelle theoretisch jede Dokument mindestens einmal umrundet. Strafe = 1 / (1 + epochs). Eine synthetic-chat-Quelle mit 1,4K-Dokumenten bei 5.600 lifetime pulls (epochs = 4) erhält Strafe 1/5 = 0,2x. Epoch-Zähler persistieren über Neustarts hinweg; sie verfallen nie.


Abdeckungsbonus. Verfolgt die Frische pro Dokument innerhalb einer Quelle. CUDA meldet Doc-Indizes; der Proxy pflegt einen Satz pro Quelle. Quellen unter 50% Abdeckung einzigartiger Docs erhalten bis zu 1,3x. Abdeckung belohnt das Erkunden des Schwanzes einer Quelle; Epoch-Strafe bestraft deren Erschöpfung.


Warum beide wichtig sind


SignalTracksDirectionCapPersists across restarts
Epoch-Strafeaggregiertes Überziehenreduziert1/(1+e)ja
Coverage-BonusFrische pro Dokumentsteigert1.3xja

Eine 500K-Dokumenten-Gutenberg-Quelle kann während des gesamten 200K-Trainingslaufs unter 50% Coverage bleiben, ohne je Epoch=1 zu erreichen. Epoch-Strafe ignoriert sie; Coverage-Bonus zieht einen Banditen aktiv zum unerforschten 70%-Schwanz von Gutenberg.


Umgekehrt sättigt eine 1.4K synthetische-Chat-Quelle die Coverage (100%) innerhalb weniger Tausend Züge; Coverage-Bonus bleibt bei 1.0x, während Epoch-Strafe wächst.

Die beiden unterscheiden

Stellen Sie sich zwei Quellen während des Trainings vor: Quelle A hat 1.400 Dokumente & 8.400 Lifetime-Pulls. Quelle B hat 500.000 Dokumente & 80.000 Lifetime-Pulls; der Proxy hat bisher 75.000 eindeutige Doc-Indizes für B protokolliert. Welches Signal (Epoch-Strafabzug oder Coverage-Bonus) bestimmt das Bandit-Gewicht jeder Quelle, & warum?

Was der Coverage-Bonus ANDREA bringt

Der Fehlerfall, den es verhindert

Ohne Doc-Level-Tracking wählt ein Bandit, der auf pro-Schritt-Belohnung selektiert, .btok-Sequenzen gierig aus. Ein 500K-Dokument-Gutenberg-Korpus enthält ein paar tausend Sequenzen mit niedriger Kreuzentropie (konsistente Prosa, gängiges Vokabular). Ein reiner Belohnungs-Bandit kehrt wiederholt zu diesen Sequenzen zurück, weil sie kontinuierlich starke Belohnungssignale produzieren.


Ergebnis: Ein 500K-Dokument-Korpus wird über 200K Trainings-Schritte auf vielleicht 2K-5K unterschiedliche Sequenzen gesampelt. Das Modell merkt sich diese Sequenzen, ohne je den Rest zu sehen. Kapazität verschwendet; Abdeckung bleibt unter 1% stecken.


Was der Coverage-Bonus bringt

1,3x bei 0% Abdeckung, abgestuft auf 1,0x bei 50%. Dieser Anstoß propagiert durch die UCB1-Selektion: Arme mit niedriger Abdeckung bleiben wettbewerbsfähig, selbst wenn ihre pro-Pull-Belohnung sinkt. Der Bandit erkundet den Schwanz gezielt statt zufällig.


Über einen 200K-Schritt-Lauf auf einem 500K-Doc-Gutenberg hebt der Coverage-Bonus die beobachtete Abdeckung typischerweise von ~3% (ohne Bonus) auf ~25-30% (mit Bonus). Gleiche Rechenleistung, acht- bis zehnmal mehr Dokumente berührt.


Wo die Verfolgung stattfindet


KomponenteVerantwortung
microgpt_cuda.cuMeldet Doc-Index pro Trainingsschritt
training_proxy.pyPflegt seen_docs-Menge pro Quelle
training_proxy.pyBerechnet Abdeckung, wendet Bonus auf Banditen-Belohnung an
training_proxy.pySpeichert seen_docs in .state.json über Neustarts hinweg

Verknüpfen mit einer konkreten Engineering-Entscheidung

Stellen Sie sich vor, Sie entfernen den Coverage-Bonus aus dem ANDREA-120M-Training. Vorhersagen Sie eine konkrete Konsequenz speziell für den gutenberg-Arm (der 500K+ Dokumente hat) über einen 200K-Schritt-Lauf. Beziehen Sie sich auf Coverage-Prozentsatz, Dokumentenvielfalt oder Qualität der downstream Samples.