AI-modeller og plattformer
UltraFastBERT: En introduksjon til eksponentielt raskere språkmodellering
Språkmodeller og generativ AI, kjent for deres evner, er et het emne i AI-industrien. Globale forskere forbedrer deres effektivitet og evne. Disse systemene, vanligvis dype læringmodeller, er forhåndstrengt på omfattende merket data, og inkorporerer neurale nettverk for selv-oppmerksomhet. De bruker forskjellige lag – feedforward, rekurrerende, innebygde og oppmerksomhetslag – for å prosessere inndata og produsere relevante utdata.
De fleste store språkmodellers feedforward-lag har de fleste parameterne. Studier viser at disse modellene bare bruker en brøkdel av de tilgjengelige neuronene for utdata-beregning under inferens.
Denne artikkelen introduserer UltraFastBERT, et BERT-basert ramverk som matcher effekten av ledende BERT-modeller, men bare bruker 0,3% av neuronene under inferens, spesifikt 12 av 4095 i hvert lag. Vi skal utforske UltraFastBERTs arkitektur, funksjon og resultater. La oss begynne.
UltraFastBERT: En introduksjon til eksponentielt raskere språkmodellering
Tradisjonelt sett bruker en språkmodell forskjellige komponenter for å utruste seg med innholdsgenererings-evner, inkludert feedforward-lag, rekurrerende lag, innebygde lag og oppmerksomhetslag. Disse komponentene er ansvarlige for å lære å gjenkjenne mønster under trening, og til slutt produsere nøyaktig utdata basert på inndataene. Hver av disse komponentene har noen parametre, og i språkmodeller, er en stor del av disse parameterne holdt av feedforward-lagene. Imidlertid bruker disse feedforward-lagene ikke 100% av de tilgjengelige neuronene for å produsere utdata for hver inndata under interferens, noe som fører til ressurs-forbruk som øker kompleksitet, beregnings tid og beregningskostnader.
I sin kjernel er UltraFastBERT-ramverket en variant av BERT-ramverket, bygger på dette konseptet og erstatter feedforward-lag med raskere feedforward-nettverk i sin arkitektur, noe som resulterer i at UltraFastBERT-ramverket bare bruker 0,3% av de tilgjengelige neuronene, samtidig som det leverer resultater som er sammenlignbare med BERT-modeller av samme størrelse og trening prosess, spesielt på nedstrøms-oppgaver. På grunn av sine design-implikasjoner er de mellomliggende lagene i UltraFastBERT-ramverket eksponentielt raskere,
Gitt et raskt feedforward(FFF)-nettverk og et feedforward(FF)-nettverk, hver med n antall neuroner, er tidskompleksiteten for en fremover-passasje 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 inndataene blir gitt, kjører nettverket bare en gren av treet betinget. Videre resulterer utføring av interferens på et raskt feedforward-nettverk i CMM eller betinget matrisemultiplikasjon, hvor inndata-radene punkt-multipliseres med de naturlige vekt-kolonnene individuelt, og utdataet fra den foregående punkt-produkt-operasjonen bestemmer vekten av kolonnene som skal fortsette med. Resultatet er at nettverket bare bruker alle neuronene for noen inndata, og ingen inndata krever mer enn noen neuroner for å bli behandlet av nettverket. CMM-punkt-produktet kontrasterer DMM eller tett matrisemultiplikasjon som beregner punkt-produktet av alle inndata med alle vekt-kolonnene.
For å summere det opp, er UltraFastBERT et BERT-basert ramverk som leverer resultater som er sammenlignbare med ledende BERT-språkmodeller som
- Bruker bare 0,3% av de tilgjengelige neuronene under interferens-stadiet, og engasjerer bare 12 neuroner av totalt 4095 neuroner for hvert interferens-lag.
- Leverer sterk ytelse som er sammenlignbar med ledende BERT-modeller ved å implementere finjusterings-strategier på nedstrøms-oppgaver.
- Tilbyr en innfødt implementering av CMM eller betinget matrisemultiplikasjon som danner grunnlaget for det raske feedforward-nettverket, og til slutt fører til 78x hastighet-forbedring 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 hoved-høydepunktene ved et raskt feedforward neuralt nettverk er at det ikke finnes noen løkker eller sykluser i slike nettverk, og de er enklere å konstruere sammenlignet med RNN eller rekurrerende 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 den andre med hjelp av vekter.
Neuronene i inndata-lagene mottar inndata og sender dem videre til neste lag. Antallet neuroner i hver inndata-lag bestemmes av dimensjonen til inndataene. Deretter har vi de skjulte lagene som ikke er eksponert for inndata eller utdata, og de er ansvarlige for de nødvendige beregningene. Neuronene i hver skjult lag tar den vektede summen av utdataene gitt av den foregående lag, anvender en aktiveringsfunksjon og sender resultatet videre til neste lag, og prosessen gjentas hele tiden. Til slutt har vi utdata-lag som produserer utdata for gitt inndata. Hver neuron i hver lag i et raskt feedforward nettverk er koblet til hver neuron i neste lag, og gjør FFF neurale nettverk til 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 utdataene.
Videre er det to nøkkel-faser i virkingen av et raskt feedforward neuralt nettverk: feedforward-fasen og backpropagation-fasen.
Feedforward Fase
I feedforward-fasen blir inndataene gitt til nettverket, og det blir deretter sendt fremover. De skjulte lagene beregner den vektede summen av inndataene, og innfører ikke-lineæritet i modellen ved å sende summen av inndataene gjennom en aktiveringsfunksjon som ReLu, Sigmoid og TanH. Prosessen gjentas hele tiden til vektene når utdata-lag, 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 sendt tilbake gjennom nettverket, og nettverket bruker en gradient-descent-optimiseringsalgoritme for å justere vektene i et forsøk på å minimere feilen.
UltraFastBERT: Modellarkitektur og Virking
UltraFastBERT-ramverket er bygget på crammedBERT-arkitekturen, og UltraFastBERT-ramverket bruker alle komponentene til crammedBERT-ramverket bortsett fra naturen til de mellomliggende lagene. I stedet erstatter UltraFastBERT-ramverket transformer-encoderen i feedforward-nettverkene i de mellomliggende lagene i crammedBERT-ramverket med raske feedforward-nettverk. UltraFastBERT-ramverket gjør følgende endringer til de opprinnelige feedforward-nettverkene.
- Ramverket fjerner forskjellen mellom blad- og ikke-blad-noder ved å bruke GeLu-aktiveringsfunksjonen over noder, og utstyrer disse nodene med utgangsvekt og fjerner utgangsforvrengning i sin helhet. Etter dette, fikserer ramverket blad-størrelsen til 1.
- Til slutt tillater ramverket flere raske feedforward-nettverk-trær i parallell ved å beregne de mellomliggende utdata-lagene sammen. Ramverket klarer å gjøre denne beregningen ved å ta summen av individuelle trær, og deretter presenterer summen som det mellomliggende utdata-lag.
Videre, under trening, følger UltraFastBERT-ramverket trening-prosedyren som er brukt av crammedBERT-ramverket, som inkluderer å deaktivere dropout under forhåndstrening og bruke 1-syklus triangel-læring-rateskjema. 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 i seg selv utgjør en stor del av store språkmodeller, og de er kjent for deres eksepsjonelle akselerasjon-potensial. For å forstå dette akselerasjon-potensialet, la oss ta et eksempel på en av de mest avanserte språkmodellene, GPT-3, hvor feedforward-nettverkene i hver transformer-lag består av over 49 100 neuroner. Hvis det var mulig å trene et raskt feedforward-nettverk (maksimal dybde 15), kunne det erstatte 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 for interferens, noe som tilsvarer omtrent 0,03% av de tilgjengelige neuronene til GPT-3.
Algoritme og Kompatibilitet
UltraFastBERT-ramverket bruker en rekursiv pseudokode-algoritme for rask feedforward-interferens, og algoritmen er avbildet i bildet under.

Her representerer B batch-størrelsen, H representerer bredden til inndata-lagene, og M representerer kolonner. En annen stor årsak til bekymring med bruk av en Computational Matrix Multiplication-tilnærming er om det gjør de raske feedforward-nettverkene ukompatible med prosessen som allerede er i bruk for Dense Matrix Multiplication og eksisterende Deep Learning-ramverk. 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, er enkelt-trådet Dense Matrix Multiplication avhengig av å utføre MAC eller Multiplikasjon og Akkumulering-instruksjoner, og resultatet er at erstilling av DMM med CMM-tilnærming vil være til fordel for CPU-er fordi færre MAC-instruksjoner er nødvendige for å beregne lag-utdata per element. Derfor, til tross for at det er en betingelse som vanligvis er forbundet med branching, fungerer “neural branching” som en tillegg til minne-offset til relevante peker i ramverket. Derfor, i UltraFastBERT-ramverket, er instruksjons-gren-prediksjon aldri fullstendig engasjert for å fasilitere betingelsen til CMM, og bare laster relevante kolonner av vekt-matrisen individuelt. Videre, ettersom ramverket utfører rad-kolonne-punkt-produkter, er SIMD eller enkelt instruksjon-fler-data-vektor-parallell-prosesseringsmulighet fortsatt en god mulighet for å øke interferens-implikasjonene for bestemte enheter.
UltraFastBERT: Ytelse og Resultater
Vi skal diskutere ytelsen til UltraFastBERT-ramverket for finjustering så vel som for interferens-oppgaver for å analysere hvordan ramverket klarer seg mot ledende språkmodeller.
Finjusterings-Resultater
Følgende figur demonstrerer ytelsen til ulike modeller på GLUE-dev-test-datasett. Her representerer N antallet neuroner som er tilgjengelige for ramverkene for trening, “Avg” representerer den gjennomsnittlige scoren for alle oppgaver.

Som det kan sees tydelig, klarer UltraFastBERT-ramverket, som er trent på A6000-GPU i over 24 timer, å beholde nesten 96% av den prediktive ytelsen på GLUE-nedstrøms-oppgaver sammenlignet med det opprinnelige BERT-ramverket. Videre kan det også sees at med en økning i dybden av de raske feedforward-nettverkene, vitner ytelsen til ramverkene om en nedgang, selv om de fleste ytelses-forverringene skjer bare for CoLa-oppgaven. Hvis CoLa-oppgaven blir ignorert for en stund, returnerer UltraFastBERT-ramverket en prediktiv ytelses-score på omtrent 98,6%.
Interferens-Resultater
I denne seksjonen skal vi sammenligne ytelsen til ulike feedforward- eller raske feedforward-nettverk på interferens-implikasjoner, og disse implikasjonene er spredt over tre nivåer.
- På nivå 1-implikasjon, er implikasjonen konstruert ved hjelp av BLAS-nivå 1-rutiner, nemlig skalar-vektor-produkt og vektor-vektor-punkt-produkter.
- På nivå 2, bruker implikasjonene BLAS-nivå 2-rutiner, nemlig batchet skalar-vektor-produkt og batchet matris-vektor-punkt-produkter.
- På nivå 3, bruker implikasjonene ikke-batchet BLAS-nivå 3-matris-matris-multiplikasjon-tilnærming, og selv om det er den raskeste implikasjonen tilgjengelig for feedforward-nettverk, er slike implikasjoner ikke tilgjengelige for raske feedforward-nettverk fordi biblioteket ikke støtter vektor-nivå-sparsethet av Computational Matrix Multiplication.
Videre deployer UltraFastBERT-ramverket GPU-implikasjoner ved hjelp av enten custom CUDA eller PyTorch-kjerner.

Ovenfor tabellen sammenligner ytelsen til UltraFastBERT-ramverket med sine forgjengere, BERT-baserte ramverk, i forhold til feedforward- og raske feedforward-lag, hvor hver kolonne inneholder relative interferens-raske feedforward-over-feedforward-implikasjons-hastighet-forbedringer når de bruker samme lineær-algebraiske rutine-primitiver.
Imidlertid er det verdt å merke seg at hastighet-forbedringene som rapporteres i ovenfor tabellen er ment for “fair sammenligninger”, dvs. både raske feedforward- og feedforward-implikasjonene bruker samme lineær-algebraiske rutine-primitiv-operasjoner. Videre, på nivå 1 og nivå 2, er implikasjonene av raske feedforward-nettverk i stand til å utføre interferens 48x og 78x raskere enn den raskeste feedforward-implikasjonen, henholdsvis.
Slutt-tanker
I denne artikkelen har vi diskutert UltraFastBERT, en variant av BERT-ramverket, bygger på konseptet at feedforward-lag ikke bruker 100% av de tilgjengelige neuronene for å produsere utdata for hver inndata under interferens, noe som fører til ressurs-forbruk som øker kompleksitet, beregnings tid og beregningskostnader, og erstatter feedforward-lag med raske feedforward-nettverk i sin arkitektur, noe som resulterer i at UltraFastBERT-ramverket bare bruker 0,3% av de tilgjengelige neuronene, samtidig som det leverer resultater som er sammenlignbare med BERT-modeller av samme størrelse og trening prosess, spesielt på nedstrøms-oppgaver.
På grunn av sine design-implikasjoner er de mellomliggende lagene i UltraFastBERT-ramverket eksponentielt raskere. Videre er den sterke ytelsen levert av UltraFastBERT-ramverket et bevis på at LLM-er kan levere sterk ytelse ved å engasjere bare en brøkdel av deres parametre for individuelle interferenser, ettersom UltraFastBERT-ramverket bare bruker 0,3% av de tilgjengelige neuronene under interferens, og likevel klarer å oppnå 78x hastighet-forbedring over interferens-tider.












