Kunstmatige intelligentie
UltraFastBERT: Exponentieel snellere taalmodellering

Taalmodellen en generatieve AI, bekend om hun mogelijkheden, zijn een hot topic in de AI-industrie. Wereldwijde onderzoekers verbeteren hun effectiviteit en mogelijkheden. Deze systemen, meestal diepe leermodellen, worden voorgetraind op uitgebreide gelabelde gegevens, waarbij neurale netwerken voor zelfaandacht worden geïntegreerd. Ze gebruiken verschillende lagen – feedforward, recurrent, embedded en attention – om invoertekst te verwerken en relevante uitvoer te produceren.
Meestal bevatten de feedforward-lagen van grote taalmodellen de meeste parameters. Studies tonen aan dat deze modellen slechts een fractie van de beschikbare neuronen gebruiken voor uitvoerberekening tijdens inferentie.
Dit artikel introduceert UltraFastBERT, een BERT-gebaseerd kader dat de effectiviteit van toonaangevende BERT-modellen evenaart, maar slechts 0,3% van de neuronen gebruikt tijdens inferentie, specifiek 12 van de 4095 in elke laag. We zullen de architectuur, functionaliteit en resultaten van UltraFastBERT onderzoeken. Laten we beginnen.
UltraFastBERT : Een introductie tot exponentieel snellere taalmodellering
Traditioneel gebruikt een taalmodel verschillende componenten om zichzelf uit te rusten met inhoudsgeneratie-mogelijkheden, waaronder feedforward-lagen, recurrente lagen, embedded lagen en attention-lagen. Deze componenten zijn verantwoordelijk voor het leren van patronen tijdens de training en uiteindelijk het genereren van nauwkeurige uitvoer op basis van de invoerteksten. Elke van deze componenten heeft enkele parameters, en in taalmodellen, wordt de meerderheid van deze parameters in beslag genomen door de feedforward-lagen. Echter, deze feedforward-lagen gebruiken niet 100% van de beschikbare neuronen om uitvoer te genereren voor elke invoer op het moment van interferentie, wat leidt tot verspilling van middelen die complexiteit, berekeningstijd en berekeningskosten verhogen.
In zijn kern is het UltraFastBERT-kader een variant van het BERT-kader, bouwt voort op dit concept en vervangt feedforward-lagen met snellere feedforward-netwerken in zijn architectuur, wat uiteindelijk resulteert in het UltraFastBERT-kader dat slechts 0,3% van de beschikbare neuronen gebruikt, terwijl het resultaten levert die vergelijkbaar zijn met BERT-modellen van vergelijkbare grootte en trainingsproces, vooral op downstream-taken. Door zijn ontwerpimplementaties zijn de tussenliggende lagen in het UltraFastBERT-kader exponentieel sneller.
Gegeven een snel feedforward (FFF)-netwerk en een feedforward (FF)-netwerk, elk met n aantal neuronen, is de tijdcomplexiteit van een voorwaartse doorvoer in een feedforward-netwerk O(n), terwijl de tijdcomplexiteit O(log2n) is voor een snel feedforward-netwerk, en het verschil in tijdcomplexiteit is voornamelijk te wijten aan het feit dat in een snel feedforward-netwerk de neuronen zijn georganiseerd in een gebalanceerde binaire boom, en wanneer de invoer wordt verstrekt, voert het netwerk slechts één tak van de boom conditioneel uit. Bovendien leidt het uitvoeren van interferentie op een snel feedforward-netwerk tot CMM of Conditionele Matrix Multiplicatie, waarbij de invoerrijen dot met de natuurlijke gewichtkolommen afzonderlijk, en de uitvoer van de vorige dot-product-operatie bepaalt het gewicht van de kolommen om door te gaan. Als gevolg daarvan gebruikt het netwerk alle neuronen slechts voor een paar invoeren, en geen enkele invoer vereist meer dan een paar neuronen om door het netwerk te worden verwerkt. De CMM-dot-product contrasteert met de DMM of Dense Matrix Multiplicatie die de dot-product van alle invoeren met alle gewichtkolommen berekent.
Om samen te vatten, is UltraFastBERT een BERT-gebaseerd kader dat resultaten levert die vergelijkbaar zijn met die van toonaangevende BERT-taalmodellen die
- Slechts 0,3% van de beschikbare neuronen gebruiken tijdens de interferentiefase en slechts 12 neuronen activeren van de in totaal 4095 neuronen voor elke interferentie-laag.
- Sterke prestaties leveren die vergelijkbaar zijn met die van toonaangevende BERT-modellen door het implementeren van fijne afstellingstrategieën op downstream-taken.
- Een native implementatie bieden van de CMM of Conditionele Matrix Multiplicatie die de basis vormt voor het snelle feedforward-netwerk en uiteindelijk leidt tot een 78x versnelling van de prestaties in vergelijking met de native geoptimaliseerde DMM of Dense Matrix Multiplicatie.
Feed Forward Neural Netwerken
Een feedforward neuronaal netwerk is een van de meest rechttoe rechtaan kunstmatige neurale netwerken die de informatie in slechts één richting verplaatst, van de invoer-knooppunten naar de uitvoer-knooppunten via verborgen knooppunten. Een van de belangrijkste kenmerken van een snel feedforward neuronaal netwerk is dat er geen lussen of cycli in dergelijke netwerken zijn en dat ze eenvoudiger zijn om te construeren in vergelijking met RNN of Recurrent Neural Networks en CNN of Conventional Neural Networks. De architectuur van een snel feedforward neuronaal netwerk bestaat uit drie componenten, namelijk invoer-lagen, verborgen lagen en uitvoer-lagen, en elke laag bestaat uit eenheden genaamd neuronen, en elke laag is verbonden met de andere met behulp van gewichten.
De neuronen in de invoer-lagen ontvangen invoer en sturen deze door naar de volgende laag. Het aantal neuronen in elke invoer-laag wordt bepaald door de dimensie van de invoer-gegevens. Vervolgens hebben we de verborgen lagen die niet worden blootgesteld aan de invoer of de uitvoer en die verantwoordelijk zijn voor de noodzakelijke berekeningen. De neuronen in elke verborgen laag nemen de gewogen som van de uitvoer die wordt gegeven door de vorige laag, passen een activatiefunctie toe en geven het resultaat door aan de volgende laag, en het proces herhaalt zich. Ten slotte hebben we de uitvoer-laag die de uitvoer produceert voor de gegeven invoer. Elke neuron in elke laag van een snel feedforward netwerk is verbonden met elke neuron in de volgende laag, waardoor FFF neurale netwerken een volledig verbonden netwerk vormen. Gewichten worden gebruikt om de sterkte van de verbinding tussen de neuronen te vertegenwoordigen en het netwerk werkt deze gewichten bij om patronen te leren door de gewichten bij te werken op basis van de fout die optreedt in de uitvoer.
Verder zijn er twee belangrijke fasen in de werking van een snel feedforward neuronaal netwerk: de feedforward-fase en de backpropagation-fase.
Feedforward-fase
In de feedforward-fase wordt de invoer aan het netwerk gevoerd en dit wordt vervolgens doorgevoerd. De verborgen lagen berekenen de gewogen som van de invoer en introduceren non-lineariteit in het model door de som van de invoer door een activatiefunctie te sturen, zoals ReLu, Sigmoid en TanH. Het proces herhaalt zich totdat de gewichten de uitvoer-laag bereiken en het model een voorspelling doet.
Backpropagation-fase
Zodra het model een voorspelling doet, berekent het de fout tussen de gegenereerde uitvoer en de verwachte uitvoer. De fout wordt vervolgens teruggevoerd door het netwerk en het netwerk gebruikt een gradient descent-optimalisatie-algoritme om de gewichten aan te passen in een poging om de fout te minimaliseren.
UltraFastBERT : Model-architectuur en werking
Het UltraFastBERT-kader is gebouwd op de crammedBERT-architectuur en het UltraFastBERT-kader gebruikt alle componenten van het crammedBERT-kader, behalve de aard van de tussenliggende lagen. In plaats daarvan vervangt het UltraFastBERT-kader de transformer-encoder in de feedforward-netwerken in de tussenliggende lagen van het crammedBERT-kader met snelle feedforward-netwerken. Het UltraFastBERT-kader maakt de volgende wijzigingen in de oorspronkelijke feedforward-netwerken.
- Het kader doet afstand van het verschil tussen blad- en niet-blad-knooppunten door de GeLu-activatiefunctie over knooppunten te gebruiken en deze knooppunten uit te rusten met uitvoergewichten en uitvoer-vooringen weg te laten. Vervolgens wordt de bladgrootte vastgesteld op 1.
- Ten slotte staat het kader meerdere snelle feedforward-netwerken in parallel toe door de tussenliggende uitvoer-lagen gezamenlijk te berekenen. Het kader bereikt deze berekening door de som van individuele bomen te nemen en deze som vervolgens voor te stellen als de tussenliggende uitvoer-laag.
Verder volgt het UltraFastBERT-kader in de training het trainingsproces dat wordt gebruikt door het crammedBERT-kader, dat het uitschakelen van de dropout in de voor-training omvat en het gebruik van de 1-cyclus driehoekige leercurve. Het model wordt vervolgens fijngesteld om de prestaties te maximaliseren op een breed scala aan taken, voornamelijk van de GLUE-benchmark, voor een totaal van 5 epochs.
Interferentie
Interferentie is een belangrijk onderdeel voor een snel feedforward-netwerk en deze snelle feedforward-netwerken vormen een belangrijk deel van grote taalmodellen en zijn bekend om hun uitzonderlijke versnellingpotentieel. Om dit versnellingpotentieel te begrijpen, laten we een voorbeeld nemen van een van de meest geavanceerde taalmodellen, de GPT-3, waarin de feedforward-netwerken in elke transformer-laag bestaan uit meer dan 49.100 neuronen. Als het getraind kan worden, kan een snel feedforward-netwerk (maximale diepte van 15) het oorspronkelijke feedforward-netwerk vervangen. Het geïntroduceerde snelle feedforward-netwerk zal meer dan 65.000 neuronen hebben, maar het zal slechts 16 van deze neuronen gebruiken voor interferentie, wat neerkomt op ongeveer 0,03% van de beschikbare neuronen voor de GPT-3.
Algoritme en compatibiliteit
Het UltraFastBERT-kader maakt gebruik van een recursief pseudocode-algoritme voor snelle feedforward-interferentie en het algoritme wordt weergegeven in de onderstaande afbeelding.

Hier vertegenwoordigt B de batchgrootte, H vertegenwoordigt de breedte van de invoer-lagen en M vertegenwoordigt kolommen. Een andere belangrijke zorg bij het gebruik van een Computational Matrix Multiplication-benadering is of het de snelle feedforward-netwerken onverenigbaar maakt met het proces dat momenteel in gebruik is voor Dense Matrix Multiplicatie en bestaande Deep Learning-kaders. Gelukkig maakt het gebruik van CMM de prestaties niet onverenigbaar, hoewel het de caching-complexiteit wel verhoogt.
Het is essentieel om op te merken dat als onderdeel van het snelle feedforward-netwerk, de enkel-threaded Dense Matrix Multiplicatie afhankelijk is van het uitvoeren van MAC- of Multiplicatie- en Accumulatie-instructies en als gevolg daarvan zal het vervangen van DMM met de CMM-benadering CPUs ten goede komen, omdat er minder MAC-instructies nodig zijn om de laaguitvoer per element te berekenen. Daarom, ondanks het feit dat het “neuronale vertakking” een toevoeging is aan de geheugenoffset van de relevante pointers in het kader, wordt de instructie-vertakking voorspelling nooit volledig geactiveerd om de conditionaaliteit van de CMM te faciliteren en worden alleen de relevante kolommen van de gewichtsmatrix individueel geladen. Bovendien, aangezien het kader rij-kolom-dot-producten uitvoert, is SIMD- of single-instructie-multiple-data-vector-parallel-verwerking nog steeds een optie om de interferentie-implementaties voor specifieke apparaten te versnellen.
UltraFastBERT : Prestaties en resultaten
We zullen praten over de prestaties van het UltraFastBERT-kader voor fijne afstelling alsmede voor interferentie-taken om te analyseren hoe het kader presteert in vergelijking met toonaangevende taalmodellen.
Fijne afstelling resultaten
De onderstaande figuur toont de prestaties van verschillende modellen op GLUE-dev test-datasets. Hier vertegenwoordigt N het aantal neuronen dat beschikbaar is voor de kaders voor training, “Avg” vertegenwoordigt de gemiddelde score van alle taken.

Zoals duidelijk te zien is, weet het UltraFastBERT-kader, dat getraind is op de A6000 GPU voor meer dan 24 uur, ongeveer 96% van de voorspellingsprestaties op GLUE-downstream-taken te behouden in vergelijking met het oorspronkelijke BERT-kader. Bovendien kan het ook worden gezien dat met een toename in de diepte van de snelle feedforward-netwerken, de prestaties van de kaders een daling vertonen, hoewel de meeste prestatieverslechtering optreedt voor de CoLa-taak. Als de CoLa-taak even terzijde wordt geschoven, keert het UltraFastBERT-kader een voorspellingsprestatiescore van ongeveer 98,6%.
Interferentie resultaten
In dit gedeelte zullen we de prestaties van verschillende feedforward- of snelle feedforward-netwerken op interferentie-implementaties vergelijken en deze implementaties zijn verdeeld over drie niveaus.
- In Niveau 1-implementatie wordt de implementatie geconstrueerd met behulp van BLAS Niveau 1-routines, namelijk scalar-vector-product en vector-vector-dot-producten.
- In Niveau 2 maken de implementaties gebruik van BLAS Niveau 2-routines, namelijk batch-gemiddelde scalar-vector-product en batch-gemiddelde matrix-vector-dot-producten.
- In Niveau 3 maken de implementaties gebruik van de non-batched BLAS Niveau 3 matrix-matrix-multiplicatie-benadering en hoewel dit de snelste implementatie is die beschikbaar is voor feedforward-netwerken, zijn dergelijke implementaties niet beschikbaar voor snelle feedforward-netwerken, omdat de bibliotheek de vector-niveau-sparcity van de Computational Matrix Multiplicatie niet ondersteunt.
Bovendien implementeert het UltraFastBERT-kader GPU-implementaties door het gebruik van aangepaste CUDA- of PyTorch-kernels.

De bovenstaande tabel vergelijkt de prestaties van het UltraFastBERT-kader met zijn voorgangers, de BERT-gebaseerde kaders, in termen van feedforward- en snelle feedforward-lagen, waar elke kolom de relatieve inferentie Snel Feedforward over Feedforward-implementatie-snelheden bevat wanneer ze gebruikmaken van dezelfde lineaire algebraïsche routine-primitieven.
Het is echter de moeite waard om op te merken dat de snelheden die in de bovenstaande tabel worden gerapporteerd, bedoeld zijn voor “eerlijke vergelijkingen”, d.w.z. zowel de snelle feedforward- als de feedforward-implementaties maken gebruik van identieke lineaire algebraïsche routine-primitieven. Bovendien zijn de implementaties van de snelle feedforward-netwerken op Niveau 1 en Niveau 2 in staat om de interferentie 48x en 78x sneller uit te voeren dan de snelste feedforward-implementatie.
Slotgedachten
In dit artikel hebben we gesproken over UltraFastBERT, een variant van het BERT-kader, dat voortbouwt op het concept dat feedforward-lagen niet 100% van de beschikbare neuronen gebruiken om uitvoer te genereren voor elke invoer op het moment van interferentie, wat leidt tot verspilling van middelen die complexiteit, berekeningstijd en berekeningskosten verhogen, en vervangt feedforward-lagen met snellere feedforward-netwerken in zijn architectuur, wat uiteindelijk resulteert in het UltraFastBERT-kader dat slechts 0,3% van de beschikbare neuronen gebruikt, terwijl het resultaten levert die vergelijkbaar zijn met BERT-modellen van vergelijkbare grootte en trainingsproces, vooral op downstream-taken.
Door zijn ontwerpimplementaties zijn de tussenliggende lagen in het UltraFastBERT-kader exponentieel sneller. Bovendien is de sterke prestatie die wordt geleverd door het UltraFastBERT-kader een bewijs dat LLM’s sterke prestaties kunnen leveren door slechts een fractie van hun parameters te activeren voor individuele interferenties, aangezien het UltraFastBERT-kader slechts 0,3% van de beschikbare neuronen gebruikt tijdens interferentie en toch een 78x versnelling van de interferentietijden bereikt.








