AI-modeller och plattformar
UltraFastBERT: Exponentiellt snabbare språkmodellering
Språkmodeller och generativ AI, som är kända för sina förmågor, är ett hett ämne inom AI-branschen. Globala forskare förbättrar deras effektivitet och förmåga. Dessa system, som vanligtvis är djupa inlärningsmodeller, är förtränade på omfattande märkt data och inkorporerar neurala nätverk för självuppmärksamhet. De använder olika lager – feedforward, återkommande, inbäddade och uppmärksamhetslager – för att bearbeta inmatningstext och producera relevanta utdata.
De flesta stora språkmodellers feedforward-lager innehåller de flesta parametrarna. Studier visar att dessa modeller bara använder en bråkdel av de tillgängliga neuroner för utdataberäkning under inferens.
Den här artikeln introducerar UltraFastBERT, ett BERT-baserat ramverk som matchar effektiviteten hos ledande BERT-modeller, men använder bara 0,3 % av neuroner under inferens, specifikt 12 av 4095 neuroner i varje lager. Vi kommer att utforska UltraFastBERTs arkitektur, funktion och resultat. Låt oss börja.
UltraFastBERT: En introduktion till exponentiellt snabbare språkmodellering
Traditionellt använder en språkmodell olika komponenter för att utrusta sig med innehållsgenereringsförmåga, inklusive feedforward-lager, återkommande lager, inbäddade lager och uppmärksamhetslager. Dessa komponenter är ansvariga för att lära sig att känna igen mönster under utbildning och slutligen generera korrekt utdata baserat på inmatningstexterna. Var och en av dessa komponenter har några parametrar, och i språkmodeller hålls en stor del av dessa parametrar av feedforward-lagren. Men dessa feedforward-lager använder inte 100 % av de tillgängliga neuroner för att generera utdata för varje inmatning under interferenstid, vilket leder till slöseri med resurser som ökar komplexitet, beräkningstid och beräkningskostnader.
I sin kärna är UltraFastBERT-ramverket en variant av BERT-ramverket, bygger på denna koncept och ersätter feedforward-lager med snabbare feedforward-nätverk i sin arkitektur, vilket slutligen resulterar i att UltraFastBERT-ramverket använder bara 0,3 % av de tillgängliga neuroner medan det levererar resultat som är jämförbara med BERT-modeller med liknande storlek och utbildningsprocess, särskilt på nedströmsuppgifter. På grund av dess designimplementeringar är de mellanliggande lagren i UltraFastBERT-ramverket exponentiellt snabbare,
Givet ett snabbt feedforward-nätverk (FFF) och ett feedforward-nätverk (FF), var och en med n antal neuroner, är tidskomplexiteten för en framåtriktad passering i ett feedforward-nätverk O(n), medan tidskomplexiteten är O(log2n) för ett snabbt feedforward-nätverk, och skillnaden i tidskomplexitet beror främst på att i ett snabbt feedforward-nätverk är neuroner organiserade i en balanserad binär träd, och när inmatningen tillhandahålls, utför nätverket bara en gren av trädet villkorligt. Dessutom resulterar interferens på ett snabbt feedforward-nätverk i CMM eller villkorlig matrismultiplikation, där inmatningsraderna punkterar med de naturliga viktkolumnerna individuellt, och utdata från den tidigare punktproduktionsoperationen bestämmer vikten av kolumnerna att fortsätta med. Följaktligen använder nätverket alla neuroner bara för några inmatningar, och ingen inmatning kräver mer än några neuroner för att hanteras av nätverket. CMM-punktsprodukt kontrasterar DMM eller tät matrismultiplikation som beräknar punktprodukt av alla inmatningar med alla viktkolumnerna.
För att sammanfatta är UltraFastBERT ett BERT-baserat ramverk som levererar resultat som är jämförbara med de bästa BERT-språkmodellerna som
- Använder bara 0,3 % av de tillgängliga neuroner under interferenstillfallet och engagerar bara 12 neuroner av totalt 4095 neuroner för varje interferenslager.
- Levererar stark prestanda som är jämförbara med de bästa BERT-modellerna genom att implementera finjusteringsstrategier på nedströmsuppgifter.
- Tillhandahåller en nativ implementering av CMM eller villkorlig matrismultiplikation som utgör grunden för det snabba feedforward-nätverket och som slutligen leder till 78 gånger snabbare prestanda jämfört med infödda optimerade DMM eller täta matrismultiplikationer.
Feed Forward Neural Networks
Ett feedforward-neuronnätverk är ett av de enklaste konstgjorda neuronnätverken som flyttar informationen i endast framåtriktningen, från inmatningsnoderna till utdatanoderna via dolda noder. En av de viktigaste aspekterna av ett snabbt feedforward-neuronnätverk är att det inte finns några loopar eller cykler i sådana nätverk, och de är enklare att konstruera jämfört med RNN eller återkommande neuronnätverk och CNN eller konventionella neuronnätverk. Arkitekturen för ett snabbt feedforward-neuronnätverk består av tre komponenter, nämligen inmatningslager, dolda lager och utdataslager, och varje lager består av enheter som kallas neuroner, och varje lager är sammanlänkat med det andra med hjälp av vikter.
Neuroner i inmatningslagren tar emot inmatningar och skickar dem vidare till nästa lager. Antalet neuroner i varje inmatningslager bestäms av dimensionen för inmatningsdata. Nästa är de dolda lagren som inte är exponerade för inmatning eller utdata, och de är ansvariga för de nödvändiga beräkningarna. Neuroner i varje dolt lager tar den viktade summan av utdata från föregående lager, använder en aktiveringsfunktion och skickar resultatet till nästa lager, och processen upprepas. Slutligen har vi utdataslager som producerar utdata för de givna inmatningarna. Varje neuron i varje lager i ett snabbt feedforward-nätverk är sammanlänkat med varje neuron i nästa lager, vilket gör FFF-neuronnätverk till ett fullständigt anslutet nätverk. Vikter används för att representera styrkan i anslutningen mellan neuroner, och nätverket uppdaterar dessa vikter för att lära sig mönster genom att uppdatera vikterna baserat på felet som uppstår i utdata.
Fortsättning, det finns två viktiga faser i funktionen av ett snabbt feedforward-neuronnätverk: feedforward-fasen och backpropagation-fasen.
Feedforward-fas
I feedforward-fasen matas inmatningen in i nätverket, och det propagerar sedan framåt. De dolda lagren beräknar den viktade summan av inmatningarna, och introducerar icke-linjäritet i modellen genom att skicka summan av inmatningarna genom en aktiveringsfunktion som ReLu, Sigmoid och TanH. Processen upprepas tills vikterna når utdataslager, och modellen gör en förutsägelse.
Backpropagation-fas
När modellen har gjort en förutsägelse, beräknar den felet mellan den genererade utdatan och den förväntade utdatan. Felet backpropageras sedan genom nätverket, och nätverket använder en gradientnedgångsoptimeringsalgoritm för att justera vikterna i ett försök att minimera felet.
UltraFastBERT: Modellarkitektur och funktion
UltraFastBERT-ramverket byggs på crammedBERT-arkitekturen, och UltraFastBERT-ramverket använder alla komponenter i crammedBERT-ramverket utom naturen hos de mellanliggande lagren. Istället ersätter UltraFastBERT-ramverket transformer-encoder i feedforward-nätverken i de mellanliggande lagren i crammedBERT-ramverket med snabba feedforward-nätverk. UltraFastBERT-ramverket gör följande ändringar i de ursprungliga feedforward-nätverken.
- Ramverket tar bort skillnaden mellan löv- och icke-löv-noder genom att använda GeLu-aktiveringsfunktionen över noder och utrustar dessa noder med utgångsvikter och tar bort utgångsbiaser i sin helhet. Efter det fastställer ramverket lövstorleken till 1.
- Slutligen tillåter ramverket flera snabba feedforward-nätverksträd i parallellt genom att beräkna de mellanliggande utdataslager gemensamt. Ramverket lyckas med denna beräkning genom att ta summan av enskilda träd och sedan presentera summan som det mellanliggande utdataslager.
Fortsättning, under utbildning följer UltraFastBERT-ramverket utbildningsförfarandet som används av crammedBERT-ramverket, som inkluderar att inaktivera dropout under förutbildning och använda 1-cykels triangelformad inlärningshastighetsschema. Modellen finjusteras sedan för att maximera sin prestanda på en mängd olika uppgifter, främst GLUE-benchmark, under totalt 5 epoker.
Interferens
Interferens är en viktig del för ett snabbt feedforward-nätverk, och dessa snabba feedforward-nätverk i sig utgör en stor del av stora språkmodeller, och de är kända för sin exceptionella accelerationspotential. För att förstå denna accelerationspotential, låt oss ta ett exempel på en av de mest avancerade språkmodellerna, GPT-3, där feedforward-nätverken i varje transformerlager består av över 49 100 neuroner. Om ett snabbt feedforward-nätverk (maximal djup 15) kunde ersätta det ursprungliga feedforward-nätverket, skulle det införda snabba feedforward-nätverket ha över 65 000 neuroner, men det skulle bara använda 16 av dessa neuroner för interferens, vilket motsvarar cirka 0,03 % av de neuroner som är tillgängliga för GPT-3.
Algoritm och kompatibilitet
UltraFastBERT-ramverket använder en rekursiv pseudokod-algoritm för snabb feedforward-interferens, och algoritmen visas i bilden nedan.

Här representerar B batchstorleken, H representerar bredden på inmatningslagren och M representerar kolumner. En annan stor orsak till oro med användningen av en beräkningsmatrismultiplikation är om det gör de snabba feedforward-nätverken oförenliga med processen som redan används för täta matrismultiplikationer och befintliga djupa inlärningsramverk. Lyckligtvis påverkar användningen av CMM inte prestandan eller introducerar oförenlighet, även om det ökar cachekomplexiteten.
Det är viktigt att notera att som en del av det snabba feedforward-nätverket beror enkeltrådad tätskalemultiplikation på att utföra MAC eller multiplikations- och ackumuleringsinstruktioner, och resultatet av att ersätta DMM med CMM-approach kommer att gynna CPU:er eftersom färre MAC-instruktioner behövs för att beräkna lagerutdata per element. Därför, trots att det använder en villkorlighet som vanligtvis förknippas med grenar, fungerar “neurala grenar” som ett tillägg till minnesoffseten för relevanta pekar i ramverket. Därför i UltraFastBERT-ramverket är instruktionsgrenprediktionen aldrig fullt engagerad för att underlätta villkorligheten i CMM, och laddar bara de relevanta kolumnerna i viktmatrixen individuellt. Dessutom, eftersom ramverket utför rad-kolumnpunktsprodukt, är SIMD eller enkel instruktion för multipel datavektorparallellbearbetning fortfarande ett bra alternativ för att påskynda interferensimplementeringar för specifika enheter.
UltraFastBERT: Prestanda och resultat
Vi kommer att diskutera prestandan hos UltraFastBERT-ramverket för finjustering såväl som för interferensuppgifter för att analysera hur ramverket fungerar jämfört med de bästa språkmodellerna.
Finjusteringsresultat
Följande figur visar prestandan hos olika modeller på GLUE-dev-testuppsättningar. Här representerar N antalet neuroner som är tillgängliga för ramverken för utbildning, “Avg” representerar den genomsnittliga poängen för alla uppgifter.

Som det kan ses tydligt, UltraFastBERT-ramverket som har tränats på A6000-GPU under över 24 timmar lyckas behålla nästan 96 % av den prediktiva prestandan på GLUE-nedströmsuppgifter jämfört med det ursprungliga BERT-ramverket. Dessutom kan det också ses att med en ökning av djupet hos de snabba feedforward-nätverken, ser prestandan hos ramverken en nedgång, även om den största delen av prestandaförsämringen sker bara för CoLa-uppgiften. Om CoLa-uppgiften försummas för en stund, returnerar UltraFastBERT-ramverket en prediktiv prestandapoäng på cirka 98,6 %.
Interferensresultat
I detta avsnitt kommer vi att jämföra prestandan hos flera feedforward- eller snabba feedforward-nätverk på interferensimplementeringar, och dessa implementeringar sprids över tre nivåer.
- På nivå 1 konstrueras implementeringen med BLAS-nivå 1-rutiner, nämligen skalär-vektorprodukt och vektor-vektorpunktsprodukt.
- På nivå 2 använder implementeringarna BLAS-nivå 2-rutiner, nämligen batchad skalär-vektorprodukt och batchad matris-vektorpunktsprodukt.
- På nivå 3 använder implementeringarna icke-batchade BLAS-nivå 3-matris-matris-multiplikationstillvägagångssätt, och även om det är den snabbaste implementeringen som är tillgänglig för feedforward-nätverk, är sådana implementeringar inte tillgängliga för snabba feedforward-nätverk eftersom biblioteket inte stöder vektornivå-sparitet för beräkningsmatrismultiplikation.
Dessutom distribuerar UltraFastBERT-ramverket GPU-implementeringar med hjälp av anpassad CUDA eller PyTorch-kärnor.

Ovanstående tabell jämför prestandan hos UltraFastBERT-ramverket med dess föregångare, BERT-baserade ramverk, i termer av feedforward- och snabba feedforward-lager, där varje kolumn innehåller den relativa inferens-snabb feedforward över feedforward-implementeringshastighetsökning när de använder samma linjära algebraiska rutinprimitiver.
Men det är värt att notera att hastighetsökningarna som rapporteras i tabellen ovan är avsedda för “rättvist jämförbara” implementeringar, det vill säga både snabba feedforward- och feedforward-implementeringar använder identiska linjära algebraiska rutinprimitiva operationer. Dessutom, på nivå 1 och nivå 2, är implementeringarna av snabba feedforward-nätverk kapabla att utföra interferensen 48 gånger och 78 gånger snabbare än den snabbaste feedforward-implementeringen, respectively.
Slutliga tankar
I den här artikeln har vi talat om UltraFastBERT, en variant av BERT-ramverket, bygger på konceptet att feedforward-lager inte använder 100 % av de tillgängliga neuroner för att generera utdata för varje inmatning under interferenstid, vilket leder till slöseri med resurser som ökar komplexitet, beräkningstid och beräkningskostnader, och ersätter feedforward-lager med snabbare feedforward-nätverk i sin arkitektur, vilket slutligen resulterar i att UltraFastBERT-ramverket använder bara 0,3 % av de tillgängliga neuroner medan det levererar resultat som är jämförbara med BERT-modeller med liknande storlek och utbildningsprocess, särskilt på nedströmsuppgifter.
På grund av dess designimplementeringar är de mellanliggande lagren i UltraFastBERT-ramverket exponentiellt snabbare. Dessutom är den starka prestanda som levereras av UltraFastBERT-ramverket ett bevis på att LLM kan leverera stark prestanda genom att engagera bara en bråkdel av sina parametrar för individuella interferenser, eftersom UltraFastBERT-ramverket använder bara 0,3 % av de tillgängliga neuroner under interferens och ändå lyckas uppnå 78 gånger snabbare prestanda jämfört med interferenstider.












