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

un

gast
1 / ?
terug naar lessen

Hoe Verrast Moet Het Model Zijn?

Loss Pipeline: Logits To Cross-Entropy


Van Logits Naar Waarschijnlijkheden

Na 12 transformer blocks produceert ANDREA-120M een vector van vocab_size getallen per token positie: de logits. Voor ANDREA-120M is vocab_size = 8449, dus elke positie geeft 8449 logits uit. Logits zijn niet-genormaliseerde scores; sommige positief, sommige negatief, geen beperking om op te tellen tot 1.


Softmax zet logits om in een waarschijnlijkheidsverdeling:


p_i = exp(logit_i) / sum_j exp(logit_j)

Na softmax liggen alle 8449 getallen tussen 0 & 1 en tellen ze op tot 1. Het model wijst waarschijnlijkheid toe aan elk mogelijk volgend token.


Cross-Entropy Loss

Training vereist een verliesfunctie: een getal dat meet hoe verkeerd de voorspelling van het model was voor een gegeven correct antwoord. Cross-entropy werkt voor taalmodellering:


loss_t = -log(p_correct_token_t)

Neem de voorspelde waarschijnlijkheid van het model voor het werkelijke volgende token (het token in de trainingsdata). Neem de negatieve logaritme van die waarschijnlijkheid. Dat is de loss voor één positie.


Waarom Negatieve Logaritme

Drie eigenschappen maken -log(p) een natuurlijke loss-functie:


- -log(1) = 0: Wanneer het model het juiste token met 100% vertrouwen voorspelt, is de loss nul.

- -log(0) = ∞: Wanneer het model nul waarschijnlijkheid toekent aan het juiste token, is de loss oneindig. (In de praktijk geeft softmax nooit exact 0 uit; de loss blijft eindig maar groot.)

- Monotoon: Naarmate de voorspelde waarschijnlijkheid voor het juiste token toeneemt, neemt de loss vloeiend af.


Hogere zekerheid op het juiste antwoord = lagere verlieswaarde. Het trainingsdoel is eenvoudig: maximaliseer de voorspelde waarschijnlijkheid voor het werkelijke volgende token.


Per-Sequentie Verlies

ANDREA traint op sequenties van lengte 1024 (het contextvenster). Elke sequentie produceert 1024 voorspellingen voor het volgende token. Het sequentie-verlies is het gemiddelde over alle posities:


```
sequence_loss = mean(-log(p_correct_t)) for t in 0..1023
```

Daarna worden de sequentie-verliezen gemiddeld over de batch (ANDREA-120M gebruikt batch_size = 8). Eén scalair getal per trainingstap. Dat getal is wat de verliescurve plot.

Verlies berekenen voor één positie

Op één trainingpositie produceert ANDREA-120M softmax-waarschijnlijkheden van 0.4 voor het werkelijke volgende token (sommige andere tokens ontvingen de resterende 0.6). Bereken het cross-entropy-verlies voor deze enkele positie. Toon de formule & de rekenkunde. Zeg dan in één zin of dit een zelfverzekerde of onzekere voorspelling vertegenwoordigt.

Perplexity = exp(loss)

Een Vriendelijkere Schaal

Loss-waarden zoals 2.0 of 3.43 maken niet meteen duidelijk wat het model kan. Perplexity vertaalt loss naar een intuïtiever schaal:


perplexity = exp(loss)

Perplexity beantwoordt een simpele vraag: uit hoeveel even waarschijnlijke tokens kiest het model effectief? Een perplexity van 7 betekent dat het model zich gedraagt alsof het op elke positie kiest uit 7 plausibele volgende tokens. Een perplexity van 1 betekent perfecte voorspelling.


Veelvoorkomende Loss-Perplexity Combinaties


LossPerplexityHoe het aanvoelt
0.01.0Perfecte voorspelling
1.02.7Kiezen uit ~3 plausibele tokens
2.07.4ANDREA-12M finale SMMA-gebied
3.020.1Redelijk tekst maar onzeker
3.4330.9ANDREA-120M v1 minimum (voor polijsten)
5.0148Vroege training, leren van woordenschatdistributie
9.048449Willekeurige-kans basislijn voor ANDREA-120M's vocab

Perplexity plaatst verlieswaarden in context: een verlies van 2.0 betekent dat het model effectief kiest uit ~7 tokens, niet uit 8449.


De Random-Chance Baseline

Een model dat niets weet en uniform raadt, wijst een waarschijnlijkheid 1/V toe aan elk token, waarbij V = vocab_size:


p_uniform = 1 / V
loss      = -log(1/V) = log(V)

Voor ANDREA-120M met V = 8449:


loss_uniform = ln(8449) ≈ 9.04

Voor ANDREA-12M met V = 2305:


loss_uniform = ln(2305) ≈ 7.74

Elke loss boven deze baseline betekent dat het model slechter presteert dan willekeurig. Elke loss eronder betekent dat het model iets heeft geleerd: het concentreert de waarschijnlijkheidsmassa op een kleinere subset van tokens dan uniform zou doen.

Een Loss-waarde Lezen

ANDREA-120M v1 bereikte zijn EMA loss minimum van 3.43 op stap 110K (voor de ineenstorting). Bereken: (a) de perplexity bij loss 3.43; (b) hoe zoveel keer beter dan de random-chance baseline (ln(8449) ≈ 9.04) deze loss-waarde is, uitgedrukt als een perplexity-ratio. Toon je rekenwerk.

Gladmaken van Stap-Niveau Ruis

Ruw Verlies Is Ruisig

Per-stap verlies schommelt heen en weer. ANDREA's bandit kiest elke 7-42 stappen een andere bron; sommige bronnen (woordenboekdefinities) produceren makkelijke verliezen; andere (gutenberg-paragrafen) produceren moeilijkere verliezen. Het plotten van ruw stapverlies tegen stapnummer produceert een chaotische spreiding.


Gegladde Gewijzigde Bewegingsgemiddelde (SMMA) dempt het ruis & onthult de trend. ANDREA's trainingsproxy berekent SMMA als:


SMMA[0]  = loss[0]
SMMA[t]  = (SMMA[t-1] * (N-1) + loss[t]) / N

Met N = 100 (ANDREA's standaard gladmakingsvenster), mengt elke nieuwe SMMA-waarde 99% van de vorige SMMA met 1% van de nieuwe stapverlies. Plotselinge pieken worden geabsorbeerd; aanhoudende verschuivingen verschijnen geleidelijk.


Waarom Niet Gewoon Gemiddelde Nemen?

Een eenvoudig voortschrijdend gemiddelde over de laatste 100 stappen vereist het opslaan van 100 verlieswaarden. SMMA slaat één waarde op (het lopende gemiddelde) & één constante (de venstergrootte). Goedkoop qua geheugen, computationeel triviaal, & glad genoeg om een curve te lezen.


Verschillende gladmakingsgewichten beantwoorden verschillende vragen:


- N = 10: volgt kortetermijnveranderingen; nuttig tijdens fasenovergangen

- N = 100: ANDREA's standaard; volgt middellange-termijn voortgang

- N = 1000: alleen langetermijntrend; nuttig aan het einde van de training


Wat ANDREA Volgt

Elke 100 stappen schrijft de training proxy loss.json met de huidige SMMA, raw loss, stapnummer, & breakdowns per bron. Het dashboard op training.ai.unturf.com/dashboard pollt dit bestand elke 10 seconden. Externe kijkers zien live voortgang; het dashboard is alleen-lezen.

ANDREA-12M's Echte Curve

Het Recept Dat SMMA 2.0 Bereikte


StappenGem. LossOpmerkingen
0--2.5K4.50Willekeurige init, vroege leerfase
2.5K--5K3.88Snelle daling door structuurfase
5K--10K3.30Benaderend coherentiegrens
10K--20K2.80Bandit vindt optimale mix
20K--25K2.40Plateau --- datagebrek
25K--30K2.50Hermes-data geïntroduceerd + LR-herstart
30K--35K2.35Hermes geïntegreerd, nieuwe dieptepunten
35K--40K2.104-arm focus, steile daling
40K--43.6K2.00Kennisgebied, SMMA onder 2.0

Drie fasen springen eruit:


1. Steile vroege daling (0-10K). Loss daalt van 4.50 naar 3.30 terwijl het model de woordenschatverdeling & basisgespreksstructuur leert. Random-chance baseline ln(2305) ≈ 7.74 ligt hoog boven deze curve; het model concentreert waarschijnlijkheidsmassa snel zodra embeddings stabiliseren.


2. Plateau (20K-25K). Loss stagneert op 2.40. De bandit had geen ruimte meer op zijn huidige bronmix. Hermes-data toegevoegd op stap 25K, plus een LR warm restart, doorbrak het plateau.


3. Eindafdaling (35K-43,6K). Curriculum versmald van 16 bronnen naar 4 (hermes3-general + dictionary + gutenberg + chat). Steilere daling van het verlies dan bij de full-arm bandit. Finale SMMA: 2.0.


ANDREA-120M v1: Een waarschuwende curve

Zelfde vocabulaireberekening: ln(8449) ≈ 9.04. ANDREA-120M v1 bereikte SMMA 3.43 op stap 110K (zijn minimum), en divergeerde daarna:


StappenEMA-verliesTrend
26K--40K4.29Convergerend
70K--85K3.60Beste regio
85K--110K3.43Minimum
110K--125K3.54Divergerend
140K--155K4.05Divergerend
155K--165K4.54Ingestort

Numeriek redelijke verlieswaarden gedurende het hele traject (3.43 ligt ruim onder de 9.04 willekeurige basislijn). Maar samples waren herhaling-collapse: Budy Budy Budy Budy. Verlies vertelde een misleidend verhaal; sample-audits deden dat niet.


De coherence-gated early stopping van v2 (activiteit 78) voegde een parallelsignaal toe: bigram-diversiteit, trigram-diversiteit, aanwezigheid van Engelse woorden, karakterdiversiteit. Wanneer alle vier de scores onder de 30 blijven voor 5 opeenvolgende samples, stopt de training automatisch. Dit signaal zou v1 hebben gevangen bij stap 132K, waardoor 3,8 dagen rekentijd werden bespaard.

Wat Elke Fase Je Vertelt

Kijkend naar de loss curve van ANDREA-12M (4.50 → 3.30 → 2.40 plateau → 2.00 final), geef aan welke fase het model het leren van de woordenschatdistributie toont, welke fase aangeeft dat de bandit geen gemengde-bron headroom meer heeft, & welke fase een vernauwde-curriculum focus weerspiegelt. Eén zin per fase, verwijzend naar specifieke stapbereiken.

De 120M v1 Les

Twee Onafhankelijke Signalen

ANDREA-120M v1 bereikte SMMA 3.43 op stap 110K. Numeriek: 273× beter dan willekeurige kans (perplexity 31 vs vocab size 8449). Ziet er geweldig uit op de curve.


Sample op stap 110K::


''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '

Loss en coherentie zijn onafhankelijke signalen. Lage loss betekent dat het model de waarschijnlijkheidsmassa effectief concentreert. Coherentie betekent dat het model tekst produceert die mensen kunnen lezen. Het eerste impliceert niet het tweede.


Waarom Het Verschil Bestaat

Een model kan de loss verlagen door:


1. Echte taalpaternen leren (goed): onderwerp-werkwoordovereenkomst, veelvoorkomende zinswendingen, feitelijke associaties.

2. Structuurartefacten uit het hoofd leren (slecht): hoogfrequente herhalings patronen, dataset-specifieke eigenaardigheden, degeneratieve attractors.


Beide reduceren de loss. De eerste produceert samples die mensen leuk vinden. De tweede produceert Budy Budy Budy Budy. Het trainingsdoel op zich kan ze niet onderscheiden.


ANDREA-120M v3 Polish: Waar Loss & Coherentie Samenkomen

Na v3 polish (stap 112K en verder), produceert ANDREA-120M:


Stap 112.584, loss 0.30, ppl 1::


> [extinction prompt]
< black spider montano is alive, carolina parakeet is extinct.

Beide feiten correct. Carolina parkiet uitgeroepen tot uitgestorven in 1939; zwarte spinmonkey nog in leven. Lage loss (0.30) EN coherente feitelijke herinnering.


Stap 112.500, verlies 1.94, ppl 7::


> Hoe vind ik verouderde pakketten in een Python-project?
< Gebruik `pip list --outdated` om de lijst van verouderde pip-pakketten te zien...

Hoger verlies (1.94 → ppl 7) maar het juiste hulpmiddel komt naar voren uit de trainingsdata. Zinsconstructie vloeiendheid ontwikkelt zich nog bij de 56% trainingsmarkering.


De Tweesignaal Discipline

Moderne trainings-pipelines monitoren BEIDE:


- Loss curve. Vertelt je of het model kwantitatief iets leert.

- Sample audit. Vertelt je of wat het model heeft geleerd nuttig is.


v2 voegde coherence-gated early stopping toe (activiteit 78). v3 polish was een curriculum perturbatie geactiveerd door sample audits, niet door loss-waarden. Loss alleen is noodzakelijk maar nooit voldoende.

Diagnose van een Hypothetische Run

Een nieuwe training run toont SMMA-verlies dalend van 8.0 → 3.5 → 2.8 over 100K stappen. Steekproef-audits op stap 100K tonen: bigram diversiteit 12 (laag), trigram diversiteit 8 (laag), aanwezigheid van Engelse woorden 18 (hoog), karakter diversiteit 7 (hoog). Wat doet het model waarschijnlijk? Moet de training doorgaan, stoppen, of pivoteren? Rechtvaardig je antwoord in 3-4 zinnen.