Leçon de la v1 : La perte semble bonne, la sortie est pourrie
Un conte cautionnaire
ANDREA-120M v1 a atteint une perte EMA de 3.43 à l'étape 110K, bien en dessous du hasard (ln(8449) = 9.04). Le nombre semblait respectable. Les échantillons ne l'étaient pas.
étape 80K : région région région région région région région
étape 110K : ''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
étape 140K : jeux, jeux, jeux, jeux, jeux, jeux
étape 165K : Budy Budy Budy Budy Budy Budy Budy Budy
v1 n'avait pas de surveillance d'échantillons configurée. Le modèle a produit des ordures en boucle de répétition à partir de l'étape 80K et l'entraînement a continué pendant 85K étapes supplémentaires avant que quelqu'un ne s'en rende compte. 10+ jours de calcul gaspillés parce que personne n'a lu la sortie.
Ce que cache la perte
La perte d'entropie croisée mesure à quel point le modèle est surpris par le token suivant. Un modèle qui émet region region region region semble peu surpris par sa propre sortie (il a prédit le même mot à chaque fois). La perte numérique peut rester faible tandis que la qualité sémantique s'effondre.
La correction v2
sample_every = 100 étapes. Générer 420 tokens libres. Arrêt anticipé avec cohérence qui évalue chaque échantillon sur la diversité bigramme, diversité trigramme, présence de mots anglais, & diversité des caractères (échelle 0-100). Arrêt automatique après 5 échantillons consécutifs en dessous de 30. Testé rétroactivement sur v1 : aurait déclenché à l'étape 132K, économisant 3,8 jours.
Lire les échantillons n'est pas optionnel. Lire les échantillons est la façon dont nous savons que la perte signifie quelque chose.
Perte vs Qualité des Échantillons
ppl = exp(loss)
La Conversion
La perte d'entropie croisée s'exprime en nats. La perplexité rapporte le nombre équivalent de tokens équiprobables que le modèle considère à chaque étape. Conversion : ppl = exp(loss).
Aléatoire sur un vocabulaire de 8449 tokens : loss = ln(8449) = 9.04, ppl = 8449. Prédiction parfaite mémorisée : loss = 0, ppl = 1.
Un Tableau de Référence
| loss | ppl | Lecture |
|---|---|---|
| 9.04 | 8449 | aléatoire sur vocabulaire complet |
| 5.00 | 148 | entraînement précoce, structure de base |
| 3.00 | 20 | apprentissage de la distribution du vocabulaire |
| 2.00 | 7 | compétent mais imprécis |
| 1.00 | 2.7 | respect des contraintes émergent |
| 0.70 | 2 | formule lapidaire de manuel |
| 0.30 | 1 | rappel factuel, en grande partie mémorisé |
| 0.13 | 1 | ALERTE : sous-chaîne mémorisée |
| 0.00 | 1 | mémorisation parfaite |
Perte par échantillon vs Perte EMA
La perte EMA (moyenne mobile exponentielle sur de nombreuses étapes) rapporte la santé globale de l'entraînement. La perte par échantillon rapporte la qualité d'un échantillon spécifique. Les deux divergent : l'EMA pourrait rester à 2.0 tandis que les échantillons individuels varient de 0.13 à 4.0 selon le prompt sélectionné par le bandit.
Lire la perte d'un échantillon individuel est la façon de repérer les valeurs aberrantes. La perte EMA ne nous dit rien sur le fait qu'un échantillon ait mémorisé une sous-chaîne repo-docs ; la perte par échantillon, si.
Lecture de trois valeurs de perte
Parcours de la Fenêtre d'Audit
Une Fenêtre de 700 Étapes
Entre l'étape 111 996 et 112 668, ANDREA-120M a produit des échantillons couvrant six domaines de connaissance non liés. Chacun tombe dans un niveau de perte :
Niveau 1 : Rappel factuel (loss 0.30, ppl 1)
étape 112,584, biologie
> [extinction prompt]
> < black spider montano is alive, carolina parakeet is extinct.
Deux faits corrects. Le perroquet de Caroline déclaré éteint en 1939 ; le singe araignée noir encore existant. ppl 1 signifie que le modèle a choisi le bon token à chaque étape. Évaluation externe : 9.5/10.
Niveau 2 : Une phrase de manuel (perte 0.74, ppl 2)
étape 112,668, traitement du signal
> [Fourier transform prompt]
> < La transformée de Fourier décompose les signaux en composantes de fréquence, permettant l'analyse des caractéristiques du signal & le filtrage dans le domaine fréquentiel.
Une définition en une phrase de manuel. Décomposition temporel-fréquentielle avec termes d'application corrects. Notation externe : 9.5/10.
Niveau 3 : Respect des contraintes (perte 1.05, ppl 3)
étape 112,248, poésie
> Écrivez un haïku sur la pluie en utilisant trois mots qui commencent par 'r'.
> < Refrain rythmé de la pluie, Ruisseaux sur la fenêtre, Répit de la douleur de la vie.
Trois mots en 'r' (Rain, Rivulets, Respite), trois lignes, structure haïku préservée, cohérence sémantique autour de la pluie. ppl 3 = le modèle a considéré quelques candidats à chaque étape mais est resté dans la contrainte.
Niveau 4 : Savant mais imprécis (perte 1.94, ppl 7)
étape 112 500, outils python
> Comment trouver les paquets obsolètes dans un projet Python ?
> < Utilisez pip list --outdated pour voir la liste des paquets pip dans la gestion de votre projet, ou via pyenv pour obtenir plus de paquets automatiques.
La bonne commande kernel (pip list --outdated) émerge des données d'entraînement. La fluidité de la formulation se développe encore. Petite confusion : pyenv gère les versions de Python, pas les paquets. ppl 7 signifie que le modèle a considéré ~7 continuations plausibles à chaque étape ; toutes n'étaient pas précisément correctes.
Niveau 5 : ALERTE, Sous-chaîne mémorisée (perte 0.13, ppl 1)
étape 112 080, anomalie
La perte 0.13 se situe EN DESSOUS du niveau manuel. Le modèle est trop confiant sur cet échantillon. Diagnostic : une sous-chaîne repo-docs mémorisée, pas un chat appris. Le bandit a tiré un bras repo-docstrings zombie portant un poids de 1.546 d'un état de run précédent, & l'échantillon a reproduit un chunk verbatim des données d'entraînement.
Une perte anormalement basse est un avertissement de mémorisation, pas un signal de qualité. Sous-0.20 signifie : vérifiez si le modèle génère ou copie.
Six domaines en 700 étapes
Biologie (perruche), traitement du signal (Fourier), poésie (haïku), outils Python (pip), dialogue conversationnel, dialogue opérationnel. Six domaines non liés en 700 étapes nous dit que le bandit fait un travail diversifié, pas coincé sur une seule source. La largeur de domaine EST une métrique de qualité.
Diagnostic de trois échantillons
Pourquoi soumettre des échantillons à des regards extérieurs
Ce que la notation externe a détecté
L'audit interne des échantillons nous a indiqué que le modèle produisait de la biologie, du traitement du signal, de la poésie et du python à la demande. La notation externe de la qualité des chats a évalué ces échantillons à '9.5/10' et 'punchant au-dessus de son poids sur les tâches de connaissance à cette échelle'.
L'examen interne répond : le bandit a-t-il fait un travail diversifié ? L'examen externe répond : un lecteur humain noterait-il ces sorties comme bonnes ?
Pourquoi les deux comptent
L'audit interne détecte les échecs structurels : effondrement de répétition, pics de mémorisation, bras zombies à faible diversité. Les niveaux de perte, la diversité n-gram et l'étendue des domaines sont tous observables via le proxy.
L'évaluation externe détecte les échecs de qualité sémantique : faits confiants mais erronés, formulations maladroites, nuances manquées. Aucun de ceux-ci n'apparaît dans les chiffres de perte.
Méthodologie
Le tableau de bord d'entraînement d'ANDREA à training.ai.unturf.com/dashboard est intentionnellement public et en lecture seule. N'importe qui peut interroger .loss.json, .samples.json et l'état du bandit en temps réel. Les examinateurs externes avaient accès aux mêmes données que l'opérateur.
9,5/10 d'un lecteur indépendant, sur des échantillons tirés à l'étape 112 584 sur 200 000, avec une provenance complète : ce résultat est reproductible, vérifiable et non manipulable. Les mêmes échantillons, les mêmes valeurs de perte, le même état du bandit sont visibles par quiconque regarde.
Deux Signaux Indépendants
Interne : faible perte + haute diversité + couverture multi-domaines = bandit en bonne santé.
Externe : 9,5/10 d'un évaluateur indépendant = sorties notées aussi bien.
Les deux s'alignent : l'entraînement converge vers le rappel factuel, le respect des contraintes, & la cohérence multi-paragraphes. S'ils divergeaient (faible perte mais note externe 3/10), nous aurions un problème de gaming de métriques à investiguer.
Deux Signaux, Un Diagnostic
Cinq Étapes Par Fenêtre d'Audit
Un Audit, Cinq Vérifications
1. Lire le niveau de perte. ppl = exp(loss). Comparer avec le tableau à cinq niveaux.
2. Vérifier les valeurs aberrantes sous 0,20. Signal de mémorisation. Investiguer avant de traiter comme un résultat de qualité.
3. Lire le texte réel de l'échantillon. Les chiffres de perte ne peuvent pas vous dire ce que dit la sortie. Lisez-le.
4. Compter la largeur des domaines. Six domaines non liés en 700 étapes = bandit sain. Un domaine répété 7 fois = bandit coincé.
5. Comparer avec une évaluation externe. Si votre échantillon vous semble bon, demandez à quelqu'un en dehors de l'exécution de le lire. Leur désaccord est une information.
À quoi cela se connecte
- Activité 22 (grow_a_language_model_checkpoints). Cadence sample_every alignée sur la cadence des checkpoints ; les deux se déclenchent toutes les 100 étapes.
- Activité 21 (coherence-gated early stopping). Métriques de diversité qui arrêtent automatiquement l'entraînement quand les échantillons s'effondrent.
- Activité 24 (grow_a_language_model_microgpt_to_andrea). Effondrement v1, contamination v2.5, polissage v3 tous détectés (ou pouvaient l'être) par audit d'échantillons.
Une Vérité
La perte est un nombre. La lecture d'échantillons est ce qui nous permet de savoir ce que signifie ce nombre.