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

un

gäst
1 / ?

Hur Förvånad Bör Modellen Vara?

Förlustpipeline: Logits Till Cross-Entropy


Från Logits Till Sannolikheter

Efter 12 transformerblock producerar ANDREA-120M en vektor med vocab_size antal siffror per tokenposition: logits. För ANDREA-120M är vocab_size = 8449, så varje position ger ut 8449 logits. Logits är onormaliserade poäng; vissa positiva, vissa negativa, ingen begränsning att summera till 1.


Softmax omvandlar logits till en sannolikhetsfördelning:


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

Efter softmax ligger alla 8449 siffror mellan 0 & 1 och summerar till 1. Modellen tilldelar sannolikhet till varje möjlig nästa token.


Cross-Entropy-förlust

Träning kräver en förlustfunktion: ett tal som mäter hur fel modellens förutsägelse var för ett givet korrekt svar. Cross-entropy fungerar för språkmodellering:


loss_t = -log(p_korrekt_token_t)

Ta modellens förutsagda sannolikhet för den faktiska nästa token (den i träningsdata). Ta den negativa logaritmen av den sannolikheten. Det är förlusten för en position.


Varför negativ logaritm

Tre egenskaper gör -log(p) till en naturlig förlustfunktion:


- -log(1) = 0: När modellen förutsäger den korrekta token med 100% säkerhet är förlusten noll.

- -log(0) = ∞: När modellen tilldelar noll sannolikhet till den korrekta token är förlusten oändlig. (I praktiken ger softmax aldrig exakt 0; förlusten förblir ändlig men stor.)

- Monoton: När den förutsagda sannolikheten för den korrekta token ökar minskar förlusten smidigt.


Högre säkerhet på det korrekta svaret = lägre förlust. Träningsmålet är enkelt: maximera den förutsagda sannolikheten för den faktiska nästa token.


Förlust per sekvens

ANDREA tränar på sekvenser av längd 1024 (fönstret för kontext). Varje sekvens producerar 1024 förutsägelser för nästa token. Sekvensförlusten är ett medelvärde över alla positioner:


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

Sedan genomsnittas sekvensförlusterna över batchen (ANDREA-120M använder batch_size = 8). Ett skalärt tal per träningssteg. Det talet är vad förlustkurvan plotar.

Beräkna förlust för en position

Vid en träningsposition producerar ANDREA-120M softmax-sannolikheter på 0.4 för det faktiska nästa token (några andra tokens fick den återstående 0.6). Beräkna korsentropiförlusten för denna enda position. Visa formeln & aritmetiken. Säg sedan i en mening om detta representerar en säker eller osäker förutsägelse.

Perplexity = exp(loss)

En vänligare skala

Förlustvärden som 2.0 eller 3.43 förmedlar inte omedelbart vad modellen kan göra. Perplexity översätter förlusten till en mer intuitiv skala:


perplexity = exp(loss)

Perplexity besvarar en ren fråga: bland hur många lika sannolika tokens väljer modellen effektivt? En perplexity på 7 betyder att modellen beter sig som om den väljer från 7 plausibla nästa tokens vid varje position. En perplexity på 1 betyder perfekt förutsägelse.


Vanliga Loss-Perplexity-par


LossPerplexityVad det känns som
0.01.0Perfekt förutsägelse
1.02.7Välja bland ~3 plausibla tokens
2.07.4ANDREA-12M slutlig SMMA-territorium
3.020.1Rimlig text men osäker
3.4330.9ANDREA-120M v1 minimum (före polering)
5.0148Tidig träning, lär vokabulärfördelning
9.048449Slumpmässig chans-baslinje för ANDREA-120M's vocab

Perplexity sätter förlustvärden i kontext: en förlust på 2.0 betyder att modellen effektivt väljer från ~7 tokens, inte från 8449.


Slumpmässiga chansens baslinje

En modell som inte vet något och gissar enhetligt tilldelar sannolikheten 1/V till varje token, där V = vocab_size:


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

För ANDREA-120M med V = 8449:


loss_uniform = ln(8449) ≈ 9,04

För ANDREA-12M med V = 2305:


loss_uniform = ln(2305) ≈ 7.74

Varje förlust över denna baslinje betyder att modellen presterar sämre än slumpmässigt. Varje förlust under den betyder att modellen har lärt sig något: den koncentrerar sannolikhetsmassan på en mindre delmängd av tokens än vad uniformt skulle göra.

Läsa en förlustvärde

ANDREA-120M v1 nådde sin EMA-förlustminimum på 3.43 vid steg 110K (innan kollaps). Beräkna: (a) perplexiteten vid förlust 3.43; (b) hur många gånger bättre än slumpmässiga baslinjen (ln(8449) ≈ 9.04) detta förlustvärde representerar, uttryckt som en perplexitetskvot. Visa din aritmetik.

Utjämning av Stegnivåbrus

Rå Förlust Är Brusig

Förlust per steg studsar runt. ANDREA's bandit väljer en annan källa var 7-42 steg; vissa källor (ordboksdefinitioner) producerar lätta förluster; andra (gutenberg-paragrafer) producerar svårare förluster. Att plotta rå stegförlust mot stegno­mer ger en kaotisk spridning.


Utjämnad Modifierad Glidande Medelvärde (SMMA) dämpar brus & avslöjar trenden. ANDREA's träningsproxy beräknar SMMA som:


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

Med N = 100 (ANDREA's standard utjämningsfönster) blandar varje nytt SMMA-värde 99% av det föregående SMMA med 1% av den nya stegförlusten. Plötsliga spikar absorberas; ihållande förändringar visas gradvis.


Varför inte bara genomsnitt?

Ett enkelt glidande medelvärde över de senaste 100 stegen kräver lagring av 100 förlustvärden. SMMA lagrar ett värde (det löpande medelvärdet) & en konstant (fönsterstorleken). Minnesbilligt, beräkningsmässigt trivialt, & tillräckligt slätt för att läsa en kurva.


Olika utjämningsvikter svarar på olika frågor:


- N = 10: spårar kortsiktiga förändringar; användbart under fasövergångar

- N = 100: ANDREA's standard; spårar medellångtidsframsteg

- N = 1000: endast långsiktig trend; användbart i slutet av träning


Vad ANDREA Spårar

Var 100:e steg skriver träningsproxyn loss.json med aktuell SMMA, rå förlust, stegnummer och uppdelning per källa. Instrumentpanelen på training.ai.unturf.com/dashboard läser av denna fil var 10:e sekund. Externa tittare ser live-framsteg; instrumentpanelen är skrivskyddad.

ANDREA-12M:s Faktiska Kurva

Receptet Som Nådde SMMA 2.0


StegGenomsnittlig FörlustNoteringar
0--2.5K4.50Slumpmässig initiering, tidig inlärning
2.5K--5K3.88Snabb nedgång genom strukturfasen
5K--10K3.30Närmar sig koherensgränsen
10K--20K2.80Bandit hittar optimal blandning
20K--25K2.40Platå --- datubrist
25K--30K2.50Hermes-data introducerad + LR-återstart
30K--35K2.35Hermes integrerad, nya lågvärden
35K--40K2.104-arm fokus, brant nedgång
40K--43.6K2.00Kunskapsterritorium, SMMA under 2.0

Tre faser sticker ut:


1. Brant tidig nedgång (0-10K). Förlusten sjunker från 4.50 till 3.30 när modellen lär sig vokabulärfördelning & grundläggande turstruktur. Slumpmässig chansbaslinje ln(2305) ≈ 7.74 ligger högt ovanför denna kurva; modellen koncentrerar sannolikhetsmassa snabbt när inbäddningarna stabiliseras.


2. Platå (20K-25K). Förlusten stannar vid 2.40. Banditen hade slut på utrymme i sin nuvarande källmix. Hermes-data lades till vid steg 25K, plus en LR-värmeåterstart, bröt platån.


3. Slutlig nedgång (35K-43,6K). Curriculum minskades från 16 källor till 4 (hermes3-general + dictionary + gutenberg + chat). Brantare förlustnedgång än den fulla arm-banditen. Slutlig SMMA: 2,0.


ANDREA-120M v1: En varnande kurva

Samma vokabulärberäkning: ln(8449) ≈ 9,04. ANDREA-120M v1 nådde SMMA 3,43 vid steg 110K (dess minimum), sedan divergerade den:


StegEMA-förlustTrend
26K--40K4.29Konvergerande
70K--85K3.60Bästa regionen
85K--110K3.43Minimum
110K--125K3.54Divergerande
140K--155K4.05Divergerande
155K--165K4.54Kollapsad

Numeriskt rimliga förlustvärden genomgående (3.43 ligger bra under den slumpmässiga baslinjen på 9.04). Men proverna var repetitionskollaps: Budy Budy Budy Budy. Förlusten berättade en vilseledande historia; provgranskningar gjorde det inte.


v2:s coherence-gated early stopping (aktivitet 78) lade till en parallell signal: bigram-diversitet, trigram-diversitet, engelsk ordnärvaro, karaktärsdiversitet. När alla fyra poäng ligger under 30 för 5 konsekutiva prover stoppas träningen automatiskt. Denna signal skulle ha fångat v1 vid steg 132K och sparat 3,8 dagars beräkningskraft.

Vad varje fas berättar för dig

Titta på ANDREA-12M:s förlustkurva (4,50 → 3,30 → 2,40 platå → 2,00 slutlig), ange vilken fas som visar modellen lär sig vokabulärfördelning, vilken fas som indikerar att banditen har slut på blandad-käll-headroom, & vilken fas som återspeglar inzoomad-curriculum-fokus. En mening per fas, med hänvisning till specifika stegintervall.

120M v1-lektionen

Två oberoende signaler

ANDREA-120M v1 nådde SMMA 3.43 vid steg 110K. Numeriskt: 273× bättre än slumpmässig chans (perplexity 31 mot vocab-storlek 8449). Ser bra ut på kurvan.


Prov vid steg 110K::


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

Förlust & koherens är oberoende signaler. Låg förlust betyder att modellen koncentrerar sannolikhetsmassa effektivt. Koherens betyder att modellen producerar text som människor kan läsa. Det första implicerar inte det andra.


Varför Gapet Finns

En modell kan sänka förlust genom:


1. Lära sig verkliga språkmönster (bra): subjekt-verb-överensstämmelse, vanliga fraser, faktiska associationer.

2. Memorera strukturella artefakter (dåligt): högfrekventa repetitionsmönster, dataset-specifika egenheter, degenerativa attraktorer.


Båda minskar förlusten. Den första producerar prover som människor gillar. Den andra producerar Budy Budy Budy Budy. Träningsmålet ensamt kan inte skilja dem åt.


ANDREA-120M v3 Polish: Där förlust & koherens möttes

Efter v3-polering (steg 112K och framåt) producerar ANDREA-120M:


Steg 112,584, förlust 0.30, ppl 1::


> [extinction prompt]
< svart spindelapa montano lever, carolina parakit är utdöd.

Båda fakta korrekta. Carolina parakit erklädd utdöd 1939; svart spindelapa fortfarande levande. Låg förlust (0.30) OCH koherent faktisk återkallelse.


Steg 112,500, förlust 1.94, ppl 7::


> Hur hittar jag föråldrade paket i ett Python-projekt?
< Använd pip list --outdated names för att se listan över pip-paket...

Högre förlust (1.94 → ppl 7) men rätt verktyg framträder från träningsdata. Frasflyt utvecklas fortfarande vid 56%-märket i träningen.


Tvåsignal-disciplinen

Moderna tränings-pipelines övervakar BÅDA:


- Loss-kurva. Berättar om modellen lär sig något kvantitativt.

- Provgranskning. Berättar om det modellen lärde sig är användbart.


v2 lade till koherens-styrd tidig stopp (aktivitet 78). v3-polering var en läroplansstörning utlöst av provgranskningar, inte av loss-värden. Loss ensam är nödvändig men aldrig tillräcklig.

Diagnostisering av en hypotetisk körning

En ny träningskörning visar SMMA-förlust som minskar från 8.0 → 3.5 → 2.8 över 100K steg. Provkontroller vid steg 100K visar: bigram-diversitet 12 (låg), trigram-diversitet 8 (låg), engelskspråkiga ord 18 (hög), tecken-diversitet 7 (hög). Vad gör modellen troligen? Bör träningen fortsätta, stoppas eller ändras? Motivera ditt svar i 3-4 meningar.