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

un

invité
1 / ?
retour aux leçons

CUDA Rapporte les Indices de Documents

Un Entraîneur CUDA Sait Quel Document Il a Échantillonné

Chaque étape d'entraînement tire une séquence d'un binaire .btok, qui regroupe de nombreux documents bout à bout. CUDA enregistre un indice de document avec la perte : step 47213, source=gutenberg, doc=128407, loss=2.81. Un proxy collecte ces rapports & maintient un ensemble d'indices de documents uniques vus par source.


Des Comptages à la Couverture

Couverture d'une source = unique_docs_seen / n_docs. Quelques exemples :


Sourcen_docsunique vucouverture
gutenberg512 000154 00030,1 %
hermes3-general67 39547 17670,0 %
dictionary88 00088 000100,0 %
synthetic-chat1 4001 400100,0 %

Les sources minuscules se saturent rapidement. Les sources volumineuses descendent en dessous de 50 % pendant des semaines. Le bonus de couverture récompense un bandit pour visiter des documents qu'il n'a pas encore échantillonnés au sein d'une source.


Bonus de couverture par source


Formule du Bonus

Le bonus de couverture évolue linéairement de 1,3x à 0 % de couverture jusqu'à 1,0x à 50 % de couverture, puis reste constant à 1,0x au-dessus de 50 % :


si coverage < 0.5 :
bonus = 1.0 + 0.3 * (1.0 - coverage / 0.5)
sinon :
bonus = 1.0

Une source à 0 % de couverture obtient 1,3x ; une source à 25 % obtient 1,15x ; une source à 50 % tombe à 1,0x. Au-dessus de 50 %, aucun bonus ne s'applique.

Calculer le Bonus

Une exécution avec une couverture gutenberg à 30 % & une couverture hermes3-general à 70 %. Calculez le multiplicateur de bonus de couverture pour chaque source. Montrez votre arithmétique.

Deux Signaux de Fraîcheur Distincts

Même Objectif, Granularité Différente

ANDREA dispose de deux mécanismes qui empêchent la sur-formation sur une seule source. Ils semblent similaires ; ils mesurent des choses différentes.


Pénalité d'époque. Suit le sur-déplacement agrégé. Lorsque lifetime_pulls / n_docs > 1.0, une source a théoriquement parcouru chaque document au moins une fois. Pénalité = 1 / (1 + epochs). Une source synthetic-chat de 1,4K documents avec 5 600 tirages à vie (epochs = 4) obtient une pénalité de 1/5 = 0,2x. Les compteurs d'époques persistent à travers les redémarrages ; ils ne décroissent jamais.


Bonus de couverture. Suit la fraîcheur par document au sein d'une source. CUDA rapporte les indices des documents ; le proxy maintient un ensemble par source. Les sources en dessous de 50 % de couverture de documents uniques obtiennent jusqu'à 1,3x. La couverture récompense l'exploration de la queue d'une source ; la pénalité d'époque punit son épuisement.


Pourquoi les deux sont importantes


SignalTracksDirectionCapPersists across restarts
Pénalité d'époquesur-extraction agrégéeréduit1/(1+e)oui
Bonus de couverturefraîcheur par documentbooste1.3xoui

Une source gutenberg de 500K documents peut rester en dessous de 50% de couverture pour toute la durée de l'entraînement de 200K tout en n'approchant jamais epoch=1. La pénalité d'époque l'ignore ; le bonus de couverture attire activement un bandit vers la queue inexplorée de 70% de gutenberg.


Inversement, une source synthetic-chat de 1.4K sature la couverture (100%) en quelques milliers de tirages ; le bonus de couverture reste à 1.0x tandis que la pénalité d'époque croît.

Distinguer les Deux

Imaginez deux sources en plein entraînement : la source A a 1 400 documents & 8 400 tirages sur la durée de vie. La source B a 500 000 documents & 80 000 tirages sur la durée de vie ; le proxy a enregistré 75 000 indices de documents uniques pour B jusqu'à présent. Quel signal (pénalité d'époque ou bonus de couverture) régit le poids bandit de chaque source, & pourquoi ?

Ce que le Bonus de Couverture Apporte à ANDREA

Le Mode de Défaillance Qu'il Évite

Sans suivi au niveau document, un bandit sélectionnant sur la récompense par étape choisit les séquences .btok de manière gourmande. Un corpus Gutenberg de 500K documents contient quelques milliers de séquences avec une entropie croisée faible (prose cohérente, vocabulaire courant). Un bandit basé uniquement sur la récompense revient repeatedly à ces séquences car elles produisent continuellement des signaux de récompense forts.


Résultat : un corpus de 500K documents est échantillonné sur peut-être 2K-5K séquences distinctes sur 200K étapes d'entraînement. Le modèle mémorise ces séquences sans jamais voir le reste. Capacité gaspillée ; couverture bloquée en dessous de 1 %.


Ce que le Bonus de Couverture Apporte

1,3x à 0 % de couverture, réduit à 1,0x à 50 %. Cette incitation se propage via la sélection UCB1 : les bras avec faible couverture restent compétitifs même quand leur récompense par tirage baisse. Le bandit explore la queue par conception plutôt que par accident.


Sur une exécution de 200K étapes sur un Gutenberg de 500K docs, le bonus de couverture augmente typiquement la couverture observée de ~3 % (sans bonus) à ~25-30 % (avec bonus). Même calcul, huit à dix fois plus de documents touchés.


Où réside le Suivi


ComposantResponsabilité
microgpt_cuda.cuRapporte l'index du document par étape d'entraînement
training_proxy.pyMaintient l'ensemble seen_docs par source
training_proxy.pyCalcule la couverture, applique un bonus à la récompense du bandit
training_proxy.pyPersiste seen_docs dans .state.json entre les redémarrages

Connectez-vous à un Choix d'Ingénierie Concret

Supposons que vous supprimiez le bonus de couverture de l'entraînement ANDREA-120M. Prédisez une conséquence concrète pour le bras gutenberg spécifiquement (qui a 500K+ documents) sur une exécution de 200K étapes. Référez-vous soit au pourcentage de couverture, à la diversité des documents, ou à la qualité des échantillons en aval.