FLINT: Efficiently Leveraging High Bandwidth Flash for Capacity-Scalable LLM Inference Acceleration
FLINT is een workload-gestuurde substraat die capaciteitsschaalbare LLM-inferentie op high-bandwidth flash (HBF) versnelt door een hardware burst-buffer controller, een phantom-plane refresh mechanisme en een read-only FTL te introduceren om uitdagingen met betrekking tot latentie, critical-path interferentie en management overhead te overwinnen.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
De wereld van kunstmatige intelligentie racet momenteel naar een fysieke grens. De meest geavanceerde taalmodellen, de systemen die code schrijven, verhalen ontwerpen en complexe problemen oplossen, zijn zo massief geworden dat ze niet langer in de standaard geheugenchips passen die aan de computerprocessors gekoppeld zijn die ze aansturen. Stel je voor dat je probeert een bibliotheek van een miljard boeken te dragen in een rugzak die slechts een paar dozijn kan bevatten; dit is de huidige realiteit voor de hardware die deze modellen aandrijft. Om deze systemen werkend te krijgen, zijn ingenieurs gedwongen de modellen te splitsen over vele afzonderlijke computers, een oplossing die duur, traag en energieverslindend is omdat de computers constant met elkaar moeten communiceren om de werklast te delen. Een nieuwe technologie genaamd high-bandwidth flash biedt een manier om deze enorme bibliotheken direct naast de processor op te slaan, wat terabytes aan ruimte biedt in een piepklein pakketje. Deze nieuwe opslag is echter veel trager om te lezen dan het eigen geheugen van de processor, wat een flessenhals creëert waarbij de computer de meeste tijd doorbrengt met wachten tot de data arriveert.
Onderzoekers van Huawei en ETH Zürich hebben een systeem ontworpen genaamd FLINT om dit wachttijdprobleem op te lossen. Hun werk, dat gedetailleerd wordt beschreven in een recente studie, stelt een manier voor om deze hoogcapacitieve flashopslag snel genoeg te laten draaien om aan de eisen van de processor te voldoen, zonder dat daarvoor de complexe, vooraf geplande schema's nodig zijn die eerdere ontwerpen vereisten. In plaats van te raden welke data de processor als volgende nodig zal hebben, observeert FLINT de processor in realtime en organiseert de dataverzoeken terwijl ze plaatsvinden. Door deze verzoeken bij elkaar te groeperen en de interne buffers van de opslagchip efficiënter te gebruiken, kan het systeem data streamen met snelheden die bijna overeenkomen met het eigen geheugen van de processor. Het team simuleerde dit systeem met zes verschillende grote taalmodellen, waaronder enkele van de grootste en meest complexe modellen die momenteel bestaan. Hun resultaten laten zien dat deze aanpak een enkele computer eenheid in staat stelt om taken af te handelen die voorheen tientallen machines vereisten, terwijl er aanzienlijk minder energie wordt verbruikt en de resultaten veel sneller worden geleverd.
De kern van het probleem ligt in de manier waarop deze modellen zijn opgebouwd. Om een inferentie uit te voeren, wat de handeling is waarbij het model een reactie genereert, moet de computer constant toegang krijgen tot de gewichten van het model, wat in essentie de miljarden getallen zijn die de kennis definiëren. In het verleden waren deze gewichten klein genoeg om volledig in het snelle geheugen te passen dat direct aan de processor is gekoppeld. Nu, met modellen die honderden miljarden of zelfs biljoenen parameters bevatten, zijn de gewichten te groot voor dat snelle geheugen. Het alternatief is geweest om solid-state drives te gebruiken, die groot en goedkoop zijn maar veel te traag, of om meerdere processors te gebruiken, wat vertragingen introduceert wanneer zij hun werk synchroniseren. High-bandwidth flash werd voorgesteld als een middenweg: een opslagtechnologie die in hetzelfde kleine pakketje past als de processor en een enorme capaciteit biedt, maar met een leessnelheid die nog steeds te traag is om direct door de processor gebruikt te kunnen worden zonder te stagneren.
Eerdere pogingen om deze flashopslag te gebruiken, vertrouwden op een methode die vergelijkbaar is met een bibliothecaris die raadt welk boek een lezer als volgende nodig zal hebben. Het systeem probeerde de volgende laag van het model te voorspellen en begon die gewichten op te halen voordat de processor erom vroeg. De onderzoekers ontdekten dat dit gokspel faliekant mislukte. Omdat de modellen zo complex zijn en hun gedrag verandert afhankelijk van de specifieke vraag die gesteld wordt, waren de gokken vaak fout. Het systeem haalde data op die de processor nog niet nodig had, waardoor de beperkte bufferruimte vol raakte en het systeem gedwongen werd data weg te gooien die eigenlijk wel nodig was. Dit resulteerde in een situatie waarin de processor de meeste tijd doorbracht met wachten tot de juiste data opnieuw opgehaald kon worden, waardoor de hoge snelheid van de flashopslag verspild werd.
FLINT verandert deze aanpak door het gokwerk volledig te elimineren. In plaats van een bibliothecaris die gokt, fungeert het systeem als een uiterst efficiënte verkeersregelaar die de doorstroming van auto's in realtime observeert. Wanneer de processor om een specififieke stukje data vraagt, haalt FLINT niet alleen dat ene stukje op. Het kijkt naar de stroom van verzoeken die van de processor komen en groepeert deze. Als de processor om verschillende stukjes data vraagt die toevallig in hetzelfde fysieke gebied van de flashchip zijn opgeslagen, bundelt FLINT deze tot één enkel, groot verzoek. Hierdoor kan de flashchip in één keer een enorme hoeveelheid data lezen, waarbij de volledige snelheid wordt benut. Het systeem houdt deze data vervolgens vast in de interne buffers van de chip, klaar om precies op het moment dat het nodig is aan de processor te worden overhandigd. Deze dynamische groepering zorgt ervoor dat het systeem nooit tijd verspilt aan het ophalen van data die niet nodig is, en houdt de datastroom constant en vol.
Een andere grote hindernis voor flashopslag is dat het onderhoud vereist. Na verloop van tijd kan het proces van het lezen van data ervoor zorgen dat de elektrische ladingen binnen de chip degraderen, wat leidt tot fouten. Om dit te herstellen, moet de chip periodiek pauzeren en de data naar nieuwe locaties herschrijven. In eerdere ontwerpen moest dit onderhoud plaatsvinden terwijl de processor probeerde data te lezen, wat het systeem voor lange perioden deed bevriezen. De onderzoekers losten dit op door een "phantom plane"-systeem te creëren. Ze voegden een kleine hoeveelheid extra ruimte toe aan de chip die fungeert als een reservebaan. Wanneer een sectie van de chip onderhoud nodig heeft, kopieert het systeem de data stilzwijgend naar deze reservebaan op de achtergrond, zonder de hoofdstroom van data naar de processor ooit te onderbreken. Dit zorgt ervoor dat het onderhoudswerk de werkzaamheden van de processor nooit stoort, waardoor het systeem soepel blijft draaien zelfs naarmate de chip ouder wordt.
Het team heeft ook de manier vereenvoudigd waarop het systeem de verzoeken van de processor vertaalt naar fysieke locaties op de chip. Standaard opslagsystemen zijn gebouwd om constant schrijven en herschrijven aan te kunnen, wat complexe kaarten en zware machinerie vereist om te beheren. Omdat de gewichten van een taalmodel één keer worden geschreven en nooit veranderen, gebruikt FLINT een veel eenvoudigere, lichte kaart die alleen is geoptimaliseerd voor het lezen. Deze vermindering van complexiteit betekent dat het systeem verzoeken bijna onmiddellijk kan vertalen, wat een extra laag vertraging wegneemt.
Toen de onderzoekers deze ideeën testten in een gedetailleerde simulatie, waren de resultaten opmerkelijk. Ze vergeleken hun nieuwe systeem met drie andere opstellingen: een standaard systeem dat gebruikmaakt van trage solid-state drives, een systeem dat alleen het snelle geheugen over vele processors gebruikt, en een eerdere poging om flashopslag te gebruiken. Het FLINT-systeem was in staat om tekst te decoderen, wat het proces is waarbij de output van het model wordt gegenereerd, tot wel 1.205 keer sneller dan het systeem met solid-state drives. Vergeleken met het systeem dat vertrouwde op vele samenwerkende processors, was FLINT gemiddeld meer dan twee keer zo snel. Misschien wel het belangrijkste is dat het deze prestaties leverde met veel minder computers. Voor een kleine batch verzoeken kon een enkele computer uitgerust met FLINT het werk doen dat voorheen vier tot acht computers vereiste, en dat deed het terwijl het aanzienlijk minder energie verbruikte.
De studie keek ook naar de levensduur van het systeem. Omdat de flashopslag constant wordt gelezen, maakten de onderzoekers zich zorgen over hoe snel de chips zouden slijten. Ze ontdekten dat hun onderhoudssysteem, dat data herschrijft voordat er fouten optreden, de levensduur van de opslag verlengt naar vele jaren, zelfs onder zwaar gebruik. Het systeem werd getest met zes verschillende modellen, variërend van dichte modellen tot complexe modellen die tussen verschillende experts schakelen om problemen op te lossen, en het presteerde over de hele linie goed. De onderzoekers merkten op dat hoewel het systeem een kleine hoeveelheid extra fysieke ruimte aan de chip toevoegt, de kosten verwaarloosbaar zijn in vergelijking met de enorme winst in snelheid en capaciteit.
Dit werk demonstreert dat de beperkingen van kunstmatige intelligentie niet alleen gaan over hoe slim de modellen zijn, maar ook over hoe we data rondom hen bewegen. Door opnieuw na te denken over hoe opslag interageert met de processor, hebben de onderzoekers aangetoond dat het mogelijk is om systemen te bouwen die zowel een enorme capaciteit als een hoge snelheid hebben. Het FLINT-systeem transformeert een technologie die ooit als te traag werd beschouwd voor real-time gebruik, tot een praktische oplossing voor de volgende generatie kunstmatige intelligentie, waardoor krachtige modellen op enkele machines kunnen draaien in plaats van dat zij hele datacenters vereisen. De bevindingen suggereren dat met de juiste engineering de fysieke beperkingen van geheugen kunnen worden overwonnen, wat de deur opent naar meer capabele en efficiënte AI-systemen in de toekomst.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.