Connect with us

Kunstig intelligens

UltraFastBERT: Eksponentielt Hurtigere Sprogmodellering

mm

Sprogmodeller og generative AI, der er kendt for deres evner, er et varmt emne i AI-industrien. Globale forskere forbedrer deres effektivitet og kapacitet. Disse systemer, som typisk er dybe læreningsmodeller, er forudtrænet på omfattende mærket data, der integrerer neurale netværk til selvopmærksomhed. De bruger forskellige lag – feedforward, rekurrent, indlejret og opmærksomhed – til at behandle indgangstekst og producere relevante output.

De fleste store sprogmodellers feedforward-lag har de fleste parametre. Studier viser, at disse modeller kun bruger en brøkdel af de tilgængelige neuroner til outputberegning under inferens.

Denne artikel introducerer UltraFastBERT, en BERT-baseret ramme, der matcher effekten af førende BERT-modeller, men kun bruger 0,3% af neuronerne under inferens, specifikt 12 af 4095 i hvert lag. Vi vil udforske UltraFastBERTs arkitektur, funktionalitet og resultater. Lad os begynde.

UltraFastBERT : En Introduktion til Eksponentielt Hurtigere Sprogmodellering

Traditionelt set bruger en sprogmodel forskellige komponenter til at udstyre sig selv med indholdsgenereringsfunktioner, herunder feedforward-lag, rekurrente lag, indlejrede lag og opmærksomheds-lag. Disse komponenter er ansvarlige for at lære at genkende mønstre under træning og ultimate generere præcise output på basis af indgangsteksterne. Hver af disse komponenter har nogle parametre, og i sprogmodeller, er en stor del af disse parametre holdt af feedforward-lagene. Imidlertid bruger disse feedforward-lag ikke 100% af de tilgængelige neuroner til at generere output for hver indgang under interferenstid, hvilket fører til spild af ressourcer, der øger kompleksiteten, beregnings­tiden og beregningsomkostningerne.

I sin kerne er UltraFastBERT-rammen en variant af BERT-rammen, der bygger på denne koncept og erstatter feedforward-lag med hurtigere feedforward-netværk i sin arkitektur, hvilket ultimativt resulterer i, at UltraFastBERT-rammen kun bruger 0,3% af de tilgængelige neuroner, mens den leverer resultater, der er sammenlignelige med BERT-modeller af samme størrelse og træningsproces, især på downstream-opgaverne. På grund af dens designimplementeringer er de intermediate lag i UltraFastBERT-rammen eksponentielt hurtigere.

Givet et hurtigt feedforward (FFF)-netværk og et feedforward (FF)-netværk, hver med n antal neuroner, er tidskompleksiteten for en fremadgående passering i et feedforward-netværk O(n), hvorimod tidskompleksiteten er O(log2n) for et hurtigt feedforward-netværk, og forskellen i tidskompleksitet skyldes primært, at i et hurtigt feedforward-netværk er neuronerne organiseret i en balanceret binær træ, og når indgangen gives, udfører netværket kun én gren af træet betinget. Derudover resulterer udførelse af interferens på et hurtigt feedforward-netværk i CMM eller betinget matrixmultiplication, hvor indgangsrækkerne prikker med de naturlige vægtkolonner individuelt, og outputtet fra den foregående prikproduktion bestemmer vægten af kolonnerne til at fortsætte med. Resultatet er, at netværket kun bruger alle neuronerne for få indgange, og ingen indgang kræver mere end få neuroner for at blive behandlet af netværket. CMM-prikproduktionen kontrasterer DMM eller tæt matrixmultiplication, der beregner prikproduktet af alle indgange med alle vægtkolonnerne.

For at samme det op, er UltraFastBERT en BERT-baseret ramme, der leverer resultater, der er sammenlignelige med state of the art BERT-sprogmodeller, der

  1. Kun bruger 0,3% af de tilgængelige neuroner under interferenstiden og engagerer kun 12 neuroner ud af i alt 4095 neuroner for hver interferenstag.
  2. Leverer stærk præstation, der er sammenlignelig med state of the art BERT-modeller ved at implementere finjusteringsstrategier på downstream-opgaver.
  3. Tilbyder en naturlig implementering af CMM eller betinget matrixmultiplication, der danner grundlaget for det hurtige feedforward-netværk, og ultimativt fører til en 78-gangs hastighedsforøgelse i præstationen i forhold til native optimeret DMM eller tæt matrixmultiplication.

Feed Forward Neural Netværk

Et feedforward neural netværk er et af de mest straightforward kunstige neurale netværk, der flytter informationen i kun den fremadgående retning, fra indgangsnoderne til outputnoderne via skjulte noder. En af de vigtigste højdepunkter af et hurtigt feedforward neural netværk er, at der ikke er nogen løkker eller cykler i sådanne netværk, og de er simplere at konstruere i forhold til RNN eller rekurrente neurale netværk og CNN eller konventionelle neurale netværk. Arkitekturen af et hurtigt feedforward neural netværk består af tre komponenter, nemlig indgangslag, skjulte lag og outputlag, og hver lag består af enheder kaldet neuroner, og hver lag er forbundet til den anden med hjælp af vægte.

Neuronerne i indgangslagene modtager indgange og sender dem videre til det næste lag. Antallet af neuroner i hvert indgangslag bestemmes af dimensionen af indgangsdata. Herefter har vi skjulte lag, der ikke er eksponeret for indgang eller output, og de er ansvarlige for de nødvendige beregninger. Neuronerne i hvert skjult lag tager den vægtede sum af outputtet fra det foregående lag, anvender en aktiveringsfunktion og sender resultatet videre til det næste lag, og processen gentager sig. Til sidst har vi outputlaget, der producerer outputtet for de givne indgange. Hver neuron i hvert lag af et hurtigt feedforward netværk er forbundet med hver neuron i det næste lag, hvilket gør FFF neural netværk til et fuldt forbundet netværk. Vægte bruges til at repræsentere styrken af forbindelsen mellem neuronerne, og netværket opdaterer disse vægte for at lære mønstre ved at opdatere vægtene på basis af fejlen, der opstår i outputtet.

Herefter er der to vigtige faser i driften af et hurtigt feedforward neural netværk: feedforward-fasen og backpropagation-fasen.

Feedforward Fase

I feedforward-fasen gives indgangen til netværket, og det udfører herefter fremad. Skjulte lagene beregner den vægtede sum af indgangene og introducerer ikke-linærhed i modellen ved at sende summen af indgangene gennem en aktiveringsfunktion som ReLu, Sigmoid og TanH. Processen gentager sig, indtil vægtene når outputlaget, og modellen foretager en forudsigelse.

Backpropagation Fase

Når modellen foretager en forudsigelse, beregner den fejlen mellem den genererede output og den forventede output. Fejlen backpropageres herefter gennem netværket, og netværket bruger en gradient descent-optimeringsalgoritme til at justere vægtene i et forsøg på at minimere fejlen.

UltraFastBERT : Modelarkitektur og Funktionsmåde

UltraFastBERT-rammen er bygget på crammedBERT-arkitekturen, og UltraFastBERT-rammen anvender alle komponenterne af crammedBERT-rammen undtagen naturen af de intermediate lag. I stedet erstatter UltraFastBERT-rammen transformer-encoderen i feedforward-netværkene i de intermediate lag af crammedBERT-rammen med hurtige feedforward-netværk. UltraFastBERT-rammen foretager følgende ændringer af de originale feedforward-netværk.

  1. Ramfen fjerner forskellen mellem blade og ikke-blade-noder ved at bruge GeLu-aktiveringsfunktionen på tværs af noder og udstyre disse noder med outputvægte og fjerne outputforbud i sin helhed. Herefter fastsætter ramfen blade-størrelsen til 1.
  2. Til sidst tillader ramfen multiple hurtige feedforward-netværkstræer i parallel ved at beregne de intermediate outputlag fælles. Ramfen udfører denne beregning ved at tage summen af de enkelte træer og herefter præsentere summen som det intermediate outputlag.

Herefter følger UltraFastBERT-rammen træningsproceduren, der er anvendt af crammedBERT-rammen, der inkluderer deaktivering af dropout i fortræning og brug af 1-cyklus trekantformet læringsrate-skema. Modellen er herefter finjusteret for at maksimere sin præstation på en bred vifte af opgaver, primært af GLUE-benchmarket, i alt 5 epocher.

Interferens

Interferens er en vigtig del for et hurtigt feedforward-netværk, og disse hurtige feedforward-netværk i sig selv danner en stor del af store sprogmodeller, og de er kendt for deres exceptionelle accelerationspotentiale. For at forstå dette accelerationspotentiale, lad os tage et eksempel på en af de mest avancerede sprogmodeller, GPT-3, hvor feedforward-netværkene i hver transformer-lag består af over 49.100 neuroner. Hvis det er muligt at træne, kunne et hurtigt feedforward-netværk (maksimal dybde på 15) erstatte det originale feedforward-netværk. Det introducerede hurtige feedforward-netværk ville have over 65.000 neuroner, men det ville kun bruge 16 af disse neuroner til interferens, hvilket svarer til cirka 0,03% af de neuroner, der er tilgængelige for GPT-3.

Algoritme og Kompatibilitet

UltraFastBERT-rammen anvender en rekursiv pseudokode-algoritme for hurtig feedforward-interferens, og algoritmen er afbildet i billedet nedenfor.

Her repræsenterer B batch-størrelsen, H repræsenterer bredden af indgangslagene, og M repræsenterer kolonner. En anden vigtig årsag til bekymring ved brug af en Computational Matrix Multiplication-tilgang er, om det gør de hurtige feedforward-netværk inkompatible med processen, der allerede er i brug for Dense Matrix Multiplication og eksisterende Deep Learning-rammer. Heldigvis påvirker brugen af CMM ikke præstationen eller introducerer inkompatibilitet, selvom det øger caching-kompleksiteten.

Det er vigtigt at bemærke, at som en del af det hurtige feedforward-netværk, afhænger enkelttrådet Dense Matrix Multiplication af udførelse af MAC eller Multiplication og Accumulation-instruktioner, og resultatet af, at DMM erstattes med CMM-tilgangen, vil være, at færre MAC-instruktioner er nødvendige for at beregne lag-output per element. Derfor, på trods af at det anvender en betingelse, der normalt er forbundet med branching, fungerer “neural branching” som en tilføjelse til den nødvendige offset til relevante pegere i ramfen. Derfor i UltraFastBERT-rammen, er instruktionsgreneprediction aldrig fuldt engageret for at facilitere betingelsen af CMM, og kun loader de relevante kolonner af vægtmatricen individuelt. Derudover, da ramfen udfører række-kolon-dot-produkter, er SIMD eller single instruction multiple data-vektor-parallelskaleringsbehandling stadig en god mulighed for at accelerere interferensimplementeringer for bestemte enheder.

UltraFastBERT : Præstation og Resultater

Vi vil tale om præstationen af UltraFastBERT-rammen for finjustering såvel som for interferensopgaver for at analysere, hvordan ramfen klarer sig i forhold til state of the art-sprogmodeller.

Finjusteringsresultater

Følgende figur demonstrerer præstationen af forskellige modeller på GLUE-dev-testdataset. Her repræsenterer N antallet af neuroner, der er tilgængelige for ramfenerne til træning, “Avg” repræsenterer den gennemsnitlige score for alle opgaver.

Som det kan ses tydeligt, klarer UltraFastBERT-rammen, der er trænet på A6000-GPU i over 24 timer, at fastholde næsten 96% af den prædiktive præstation på GLUE-downstream-opgaver i forhold til den originale BERT-ramme. Derudover kan det også ses, at med en øgning i dybden af de hurtige feedforward-netværk, oplever ramfenerne en nedgang i præstationen, selvom det meste af præstationsnedgangen kun sker for CoLa-opgaven. Hvis CoLa-opgaven ikke medregnes, returnerer UltraFastBERT-rammen en prædiktiv præstations-score på cirka 98,6%.

Interferensresultater

I dette afsnit vil vi sammenligne præstationen af forskellige feedforward- eller hurtige feedforward-netværk på interferensimplementeringer, og disse implementeringer er fordelt på tre niveauer.

  1. På niveau 1 er implementeringen konstrueret ved hjælp af BLAS niveau 1-rutiner, nemlig skalar-vektor-produkt og vektor-vektor-dot-produkter.
  2. På niveau 2 anvender implementeringerne BLAS niveau 2-rutiner, nemlig batchede skalar-vektor-produkter og batchede matrix-vektor-dot-produkter.
  3. På niveau 3 anvender implementeringerne ikke-batchede BLAS niveau 3 matrix-matrix-multiplication-tilgang, og selvom det er den hurtigste implementering tilgængelig for feedforward-netværk, er sådanne implementeringer ikke tilgængelige for hurtige feedforward-netværk, da biblioteket ikke understøtter vektor-niveau-sparsethed af Computational Matrix Multiplication.

Derudover anvender UltraFastBERT-rammen GPU-implementeringer ved hjælp af enten brugerdefinerede CUDA eller PyTorch-kerner.

Ovenstående tabel sammenligner præstationen af UltraFastBERT-rammen med dens forgængere, BERT-baserede rammer, i forhold til feedforward- og hurtige feedforward-lag, hvor hver kolonne indeholder den relative inferens-hastighedsforøgelse for hurtige feedforward over feedforward-implementeringer, når de anvender de samme lineære algebraiske rutine-primitiver.

Imidlertid er det værd at bemærke, at hastighedsforøgelserne, der rapporteres i ovenstående tabel, er beregnet for “fair sammenligninger”, dvs. både hurtige feedforward- og feedforward-implementeringer anvender identiske lineære algebraiske rutine-primitiver. Derudover er implementeringerne af hurtige feedforward-netværk på niveau 1 og niveau 2 i stand til at udføre interferensen 48 gange og 78 gange hurtigere end den hurtigste feedforward-implementering, henholdsvis.

Endelige Tanker

I denne artikel har vi talt om UltraFastBERT, en variant af BERT-rammen, der bygger på konceptet, at feedforward-lag ikke bruger 100% af de tilgængelige neuroner til at generere output for hver indgang under interferenstid, hvilket fører til spild af ressourcer, der øger kompleksiteten, beregnings­tiden og beregningsomkostningerne, og erstatter feedforward-lag med hurtigere feedforward-netværk i sin arkitektur, hvilket ultimativt resulterer i, at UltraFastBERT-rammen kun bruger 0,3% af de tilgængelige neuroner, mens den leverer resultater, der er sammenlignelige med BERT-modeller af samme størrelse og træningsproces, især på downstream-opgaverne.

På grund af dens designimplementeringer er de intermediate lag i UltraFastBERT-rammen eksponentielt hurtigere. Derudover er den stærke præstation, der leveres af UltraFastBERT-rammen, en bevis for, at LLM’er kan levere stærk præstation ved at engagere kun en brøkdel af deres parametre for enkeltinterferenser, da UltraFastBERT-rammen kun bruger 0,3% af de tilgængelige neuroner under interferens, og alligevel opnår en 78-gangs hastighedsforøgelse over interferenstider.

En ingeniør af profession, en forfatter af hjerte. Kunal er en teknisk forfatter med en dyb kærlighed og forståelse af AI og ML, dedikeret til at forenkle komplekse koncepter inden for disse felter gennem sin engagerende og informative dokumentation.