Kunstig intelligens
UltraFastBERT: Eksponentielt Raskere Språkmodellering

Språkmodeller og generative AI, kjent for sine evner, er et het emne i AI-industrien. Globale forskere forbedrer deres effektivitet og evne. Disse systemene, vanligvis dype læringsmodeller, er forhåndstrengt på omfattende merket data, og inkorporerer neurale nettverk for selv-oppmerksomhet. De bruker forskjellige lag – feedforward, rekurrent, innbettet og oppmerksomhet – for å prosessere inndata og produsere relevante utdata.
Vanligvis inneholder store språkmodellers feedforward-lag de fleste parameterne. Studier viser at disse modellene bare bruker en brøkdel av de tilgjengelige neuronene for utregning under inferens.
Denne artikkelen introduserer UltraFastBERT, et BERT-basert rammeverk som matcher effekten av ledende BERT-modeller, men bruker bare 0,3% av neuronene under inferens, spesifikt 12 av 4095 i hvert lag. Vi skal utforske UltraFastBERTs arkitektur, funksjonalitet og resultater. La oss begynne.
UltraFastBERT : En Innføring i Eksponentielt Raskere Språkmodellering
Tradisjonelt setter en språkmodell i stand forskjellige komponenter for å utstyre seg med innholdsgenereringsfunksjoner, inkludert feedforward-lag, rekurrente lag, innbettede lag og oppmerksomhetslag. Disse komponentene er ansvarlige for å lære å gjenkjenne mønster under trening, og til slutt generere nøyaktig utdata basert på inndata. Hver av disse komponentene har noen parametre, og i språkmodeller, holder en stor del av disse parameterne feedforward-lagene. Imidlertid bruker disse feedforward-lagene ikke 100% av de tilgjengelige neuronene for å generere utdata for hver inndata under interferenstid, noe som fører til spilleavfall som øker kompleksitet, beregnings tid og beregningskostnader.
I sin kerne er UltraFastBERT-rammeverket en variant av BERT-rammeverket, bygger på dette konseptet, og erstatter feedforward-lag med raskere feedforward-nettverk i sin arkitektur, noe som til slutt resulterer i at UltraFastBERT-rammeverket bruker bare 0,3% av de tilgjengelige neuronene, samtidig som det leverer resultater som er sammenlignbare med BERT-modeller med en lignende størrelse og treningprosess, spesielt på nedstrømsoppgaver. På grunn av sine designimplementeringer er de intermediate lagene i UltraFastBERT-rammeverket eksponentielt raskere,
Gitt et raskt feedforward (FFF)-nettverk og et feedforward (FF)-nettverk, hver med n antall neuroner, er tidskompleksiteten for en fremover-passering i et feedforward-nettverk O(n), mens tidskompleksiteten er O(log2n) for et raskt feedforward-nettverk, og forskjellen i tidskompleksitet skyldes hovedsakelig at i et raskt feedforward-nettverk er neuronene organisert i en balansert binær tre, og når inndata blir gitt, kjører nettverket bare én gren av treet betinget. Videre resulterer interferens på et raskt feedforward-nettverk i CMM eller betinget matrisemultiplikasjon, hvor inndata-radene punktproduseres med naturlige vekt-kolonner individuelt, og utdata fra den foregående punktproduksjonsoperasjonen bestemmer vekten av kolonnene som skal fortsette. Resultatet er at nettverket bruker alle neuroner bare for noen inndata, og ingen inndata krever mer enn noen neuroner for å bli håndtert av nettverket. CMM-punktproduksjonen kontrasterer DMM eller tett matrisemultiplikasjon som beregner punktproduktet av alle inndata med alle vekt-kolonner.
For å summere det opp, er UltraFastBERT et BERT-basert rammeverk som leverer resultater som er sammenlignbare med state-of-the-art BERT-språkmodeller som
- Bruker bare 0,3% av de tilgjengelige neuronene under interferenstiden, og engasjerer bare 12 neuroner av totalt 4095 neuroner for hver interferenslag.
- Leverer sterk ytelse som er sammenlignbar med state-of-the-art BERT-modeller ved å implementere finjusteringsstrategier på nedstrømsoppgaver.
- Tilbyr en naturlig implementering av CMM eller betinget matrisemultiplikasjon som danner grunnlaget for det raske feedforward-nettverket, og til slutt fører til 78x hastighetsøkning i ytelse sammenlignet med native optimalisert DMM eller tett matrisemultiplikasjon.
Feed Forward Neural Networks
Et feedforward neuralt nettverk er ett av de enkleste kunstige neurale nettverk som flytter informasjon bare i fremover-retning, fra inndata-nodene til utdata-nodene via skjulte noder. En av hovedhøydepunktene ved et raskt feedforward neuralt nettverk er at det ikke finnes løkker eller sykluser i slike nettverk, og de er enklere å konstruere sammenlignet med RNN eller rekurrente neurale nettverk, og CNN eller konvensjonelle neurale nettverk. Arkitekturen til et raskt feedforward neuralt nettverk består av tre komponenter, nemlig inndata-lag, skjulte lag og utdata-lag, og hver lag består av enheter kalt neuroner, og hver lag er koblet til hverandre med hjelp av vekter.
Neuronene i inndata-lagene mottar inndata og sender dem videre til neste lag. Antallet neuroner i hvert inndata-lag bestemmes av dimensjonen til inndata. Deretter har vi skjulte lag som ikke er eksponert for inndata eller utdata, og de er ansvarlige for nødvendige beregninger. Neuronene i hvert skjult lag tar den vektede summen av utdataene gitt av det foregående laget, anvender en aktiveringsfunksjon og sender resultatet videre til neste lag, og prosessen gjentas igjen. Til slutt har vi utdata-laget som produserer utdata for de gitt inndata. Hvert neuroner i hvert lag i et raskt feedforward-nettverk er koblet til hvert neuroner i neste lag, og gjør dermed FFF-neurale nettverk et fullstendig koblet nettverk. Vekter brukes til å representere styrken til koblingen mellom neuronene, og nettverket oppdaterer disse vektene for å lære mønster ved å oppdatere vektene basert på feilen som oppstår i utdata.
Videre er det to viktige faser i virkingen av et raskt feedforward neuralt nettverk: feedforward-fasen og backpropagation-fasen.
Feedforward-fase
I feedforward-fasen blir inndata gitt til nettverket, og det blir deretter sendt fremover. De skjulte lagene beregner den vektede summen av inndataene og introduserer ikke-lineæritet i modellen ved å sende summen av inndataene gjennom en aktiveringsfunksjon som ReLu, Sigmoid og TanH. Prosessen gjentas igjen til vektene når utdata-laget, og modellen gjør en prediksjon.
Backpropagation-fase
Når modellen gjør en prediksjon, beregner den feilen mellom den genererte utdata og den forventede utdata. Feilen blir deretter bakover-propagert gjennom nettverket, og nettverket bruker en gradient-descent-optimiseringsalgoritme til å justere vektene i et forsøk på å minimere feilen.
UltraFastBERT : Modellarkitektur og Virking
UltraFastBERT-rammeverket er bygget på crammedBERT-arkitekturen, og UltraFastBERT-rammeverket bruker alle komponentene til crammedBERT-rammeverket unntatt naturen til de intermediate lagene. I stedet erstatter UltraFastBERT-rammeverket transformer-encoderen i feedforward-nettverkene i de intermediate lagene til crammedBERT-rammeverket med raske feedforward-nettverk. UltraFastBERT-rammeverket gjør følgende endringer til de opprinnelige feedforward-nettverkene.
- Rammeverket fjerner forskjellen mellom blad- og ikke-blad-noder ved å bruke GeLu-aktiveringsfunksjonen over noder og utstyre disse nodene med utgangsvekt og fjerne utgangsforvrengning i sin helhet. Etter dette fikserer rammeverket bladstørrelsen til 1.
- Til slutt tillater rammeverket flere raske feedforward-nettverkstrek i parallell ved å sammenregne de intermediate utgangslagene. Rammeverket klarer å gjøre denne beregningen ved å ta en sum av individuelle trær og deretter presenterer summen som det intermediate utgangslaget.
Videre, under trening, følger UltraFastBERT-rammeverket treningprosedyren som er brukt av crammedBERT-rammeverket, som inkluderer å deaktivere dropout under forhåndstrening og bruke 1-syklus triangel-læringssats. Modellen blir deretter finjustert for å maksimere sin ytelse på en rekke oppgaver, hovedsakelig av GLUE-benchmark, i totalt 5 epoker.
Interferens
Interferens er en viktig del for et raskt feedforward-nettverk, og disse raske feedforward-nettverkene utgjør en stor del av store språkmodeller, og de er kjent for sin eksepsjonelle akselerasjonspotensiale. For å forstå dette akselerasjonspotensialet, la oss ta et eksempel på ett av de mest avanserte språkmodellene, GPT-3, hvor feedforward-nettverkene i hver transformer-lag består av over 49 100 neuroner. Hvis det er trenbart, kunne et raskt feedforward-nettverk (maksimal dybde på 15) erstattet det opprinnelige feedforward-nettverket. Det innførte raske feedforward-nettverket ville ha over 65 000 neuroner, men det ville bare bruke 16 av disse neuronene til interferens, noe som tilsvarer omtrent 0,03% av neuronene tilgjengelig for GPT-3.
Algoritme og Kompatibilitet
UltraFastBERT-rammeverket bruker en rekursiv pseudokode-algoritme for rask feedforward-interferens, og algoritmen er avbildet i bildet under.

Her representerer B batch-størrelse, H representerer bredden til inndata-lagene, og M representerer kolonner. En annen viktig årsak til bekymring med bruk av en beregningsmatrisemultiplikasjons-tilnærming er om det gjør de raske feedforward-nettverkene ukompatible med prosessen som allerede er i bruk for tett matrisemultiplikasjon og eksisterende dyp lærings-rammeverk. Heldigvis påvirker bruk av CMM ikke ytelsen eller introduserer ukompatibilitet, selv om det øker caching-kompleksiteten.
Det er viktig å merke seg at som en del av det raske feedforward-nettverket, avhenger en-trådet tett matrisemultiplikasjon av å kjøre MAC eller multiplikasjon og akkumulerings-instruksjoner, og resultatet av å erstatte DMM med CMM-tilnærmingen vil være til fordel for CPU-er fordi færre MAC-instruksjoner er nødvendige for å beregne lag-utgangen per element. Derfor, til tross for å bruke en betingelse som vanligvis er assosiert med grensesnitt, fungerer “neuron-grensesnitt” som en tillegg til minne-offset til relevante peker i rammeverket. Derfor, i UltraFastBERT-rammeverket, er instruksjons-grensesnittsprediksjon aldri fullstendig engasjert for å fasilitere betingelsen til CMM, og bare laster de relevante kolonnene av vekt-matrisen individuelt. Videre, ettersom rammeverket utfører rad-kolonne-punktproduksjoner, er SIMD eller enkelt instruksjon-fler-data-vektor-parallell-prosesseringsmetode fremdeles et godt alternativ for å øke interferens-implementeringer for bestemte enheter.
UltraFastBERT : Ytelse og Resultater
Vi skal diskutere ytelsen til UltraFastBERT-rammeverket for finjustering så vel som for interferens-oppgaver for å analysere hvordan rammeverket klarer seg mot state-of-the-art-språkmodeller.
Finjusteringsresultater
Følgende figur demonstrerer ytelsen til ulike modeller på GLUE-dev-test-datasett. Her representerer N antallet neuroner tilgjengelig for rammeverkene under trening, “Gjennomsnitt” representerer gjennomsnittscoren for alle oppgaver.

Som det kan ses tydelig, klarer UltraFastBERT-rammeverket, som er trenet på A6000-GPU i over 24 timer, å beholde omtrent 96% av den prediktive ytelsen på GLUE-nedstrøms-oppgaver sammenlignet med det opprinnelige BERT-rammeverket. Videre kan det også ses at med en økning i dybden av de raske feedforward-nettverkene, vitner ytelsen til rammeverkene en nedgang, selv om de fleste av ytelsesnedgangene skjer bare for CoLa-oppgaven. Hvis CoLa-oppgaven blir ignorert en stund, returnerer UltraFastBERT-rammeverket en prediktiv ytelsesscore på omtrent 98,6%.
Interferensresultater
I denne delen vil vi sammenligne ytelsen til flere feedforward- eller raske feedforward-nettverk på interferens-implementeringer, og disse implementeringene er spredt over tre nivåer.
- På nivå 1 er implementeringen konstruert ved hjelp av BLAS-nivå 1-rutiner, nemlig skalar-vektor-produkt og vektor-vektor-punktprodukt.
- På nivå 2 bruker implementeringene BLAS-nivå 2-rutiner, nemlig batchede skalar-vektor-produkt og batchede matris-vektor-punktprodukt.
- På nivå 3 bruker implementeringene ikke-batchede BLAS-nivå 3-matris-matris-multiplikasjons-tilnærmingen, og selv om det er den raskeste implementeringen tilgjengelig for feedforward-nettverk, er slike implementeringer ikke tilgjengelige for raske feedforward-nettverk fordi biblioteket ikke støtter vektor-nivå-sporadisitet av beregningsmatrisemultiplikasjonen.
Videre deployer UltraFastBERT-rammeverket GPU-implementeringer ved å bruke enten tilpassede CUDA eller PyTorch-kjerner.

Ovenstående tabell sammenligner ytelsen til UltraFastBERT-rammeverket med sine forgjengere, BERT-baserte rammeverk, i forhold til feedforward- og raske feedforward-lag, hvor hver kolonne inneholder den relative interferens-raske feedforward-over-feedforward-implementerings-hastighetsøkning når de bruker samme lineær-algebraiske rutine-primitiver.
Imidlertid er det verdt å merke seg at hastighetsøkningene som rapporteres i ovenstående tabell er ment for “retferdige sammenligninger”, dvs. både de raske feedforward- og feedforward-implementeringene bruker identiske lineær-algebraiske rutine-primitiver. Videre, på nivå 1 og nivå 2, er implementeringene av de raske feedforward-nettverkene i stand til å utføre interferensen 48 ganger og 78 ganger raskere enn den raskeste feedforward-implementeringen, henholdsvis.
Slutt tanker
I denne artikkelen har vi diskutert UltraFastBERT, en variant av BERT-rammeverket, bygger på konseptet at feedforward-lagene ikke bruker 100% av de tilgjengelige neuronene for å generere utdata for hver inndata under interferenstid, noe som fører til spilleavfall som øker kompleksitet, beregnings tid og beregningskostnader, og erstatter feedforward-lag med raske feedforward-nettverk i sin arkitektur, noe som til slutt resulterer i at UltraFastBERT-rammeverket bruker bare 0,3% av de tilgjengelige neuronene, samtidig som det leverer resultater som er sammenlignbare med BERT-modeller med en lignende størrelse og treningprosess, spesielt på nedstrømsoppgaver.
På grunn av sine designimplementeringer er de intermediate lagene i UltraFastBERT-rammeverket eksponentielt raskere. Videre er den sterke ytelsen levert av UltraFastBERT-rammeverket et bevis på at LLM-er kan levere sterk ytelse ved å engasjere bare en brøkdel av deres parametre for individuelle interferenser, ettersom UltraFastBERT-rammeverket bruker bare 0,3% av de tilgjengelige neuronene under interferens, og likevel klarer å oppnå 78 ganger hastighetsøkning over interferenstider.








