I den fjerde artikkelen om implementering av vLLM-er fra bunnen av, retter vi oppmerksomheten mot en annen tilsynelatende enkel, men avgjørende komponent i Transformer-arkitekturen: RMSNorm (Root Mean Square Normalization). La oss først ta en titt på hva normalisering er, la oss si at du nettopp har fullført den avsluttende eksamenen og resultatene av de tre kursene kommer ut: Matematikk: 120 av 150 Engelsk: 80 av 100 Fysikk: 160 av 200 Hvilken bane er best? Hvis du sammenligner 120, 80, 160 direkte, vil du komme til den beste konklusjonen i fysikk. Men den virkelige situasjonen er at de tre banene faktisk er like gode. Matematikk: 120/150 = 80% Engelsk: 80/100 = 80% Fysisk: 160/200 = 80 % Dette er kjerneideen med normalisering: å konvertere data med forskjellige dimensjoner og forskjellige områder til en enhetlig standard for sammenligning. Hvorfor må nevrale nettverk normaliseres? Tenk deg at du spiller et meldingsspill. Den første personen sa "Jeg liker epler", og da den gikk over til den tiende personen, ble det "Jeg liker ananas". Dette er problemet som dype nevrale nettverk står overfor. Hvert lag i nettverket gjør noen beregninger på inngangen og sender deretter resultatene til neste lag. Problemet er at etter hvert som antall lag øker, blir disse verdiene mer og mer ukontrollerbare - enten eksploderer eller forsvinner sporløst. Som et meldingsspill blir informasjon gradvis forvrengt under overføring. Å legge til et normaliseringslag i modellen kan redusere sannsynligheten for gradienteksplosjon eller forsvinning, og treningsprosessen til modellen blir mer stabil. Normaliseringsteknologi har utviklet seg fra BatchNorm til LayerNorm og til slutt til RMSNorm, og har blitt standardkonfigurasjonen for store modeller. Artikkelen min vil ta deg inn i evolusjonshistorien til normaliseringsteknologi, hvis du er interessert, kan du sjekke den originale artikkelen.