Artificiell intelligens
Framtidens serverless inferens för stora språkmodeller

De senaste framstegen inom stora språkmodeller (LLM) som GPT-4 och PaLM har lett till omvälvande förmågor inom naturliga språkuppgifter. LLM används i olika tillämpningar som chatbots, sökmotorer och programmeringsassistenter. Men att serva LLM på stor skala förblir utmanande på grund av deras betydande GPU- och minneskrav.
Tillvägagångssätt för att övervinna detta faller vanligtvis in i två huvudkategorier:
- Modellkomprimeringstekniker
Dessa tekniker syftar till att minska modellens storlek samtidigt som noggrannheten behålls. Vanliga tillvägagångssätt inkluderar:
- Beskärning – Ta bort redundanta eller mindre viktiga parametrar från modellen. Detta skapar en sparse modell med färre parametrar.
- Kvantifiering – Använda lägre precisionstal som int8 eller bfloat16 för att representera vikter istället för fp32 eller fp16. Detta minskar minnesavtrycket.
- Kunskapsdestillering – Träna en mindre “elev”-modell för att imitera en stor “lärare”-modell. Den mindre modellen används sedan för inferens.
- Selektiv körning
Istället för komprimerade modeller, körs dessa tekniker selektivt endast delar av modellen per inferens:
- Sparse aktiveringar – Hoppa över beräkning på nollaktiveringar.
- Villkorlig beräkning – Kör endast vissa lager beroende på indata.
På den kompletterande sidan avseende programvaruarkitektonisk sida; för att möjliggöra snabbare distribution av LLM har forskare föreslagit serverless inferenssystem. I serverless arkitekturer är LLM värd på delade GPU-kluster och tilldelas dynamiskt baserat på efterfrågan. Detta möjliggör en effektiv användning av GPU och minskar kostnaderna för utvecklare. Framstående implementationer inkluderar Amazon SageMaker, Microsoft Azure ML och öppen källkodsalternativ som KServe.
Trots löftet om serverless LLM, visar befintliga system höga latensöverhäng som försämrar användarupplevelsen i interaktiva tillämpningar:
- Dyra kontrollpunktsnedladdningar: LLM har stora minnesavtryck, ofta gigabyte till terabyte i storlek. Att ladda ner kontrollpunkter från fjärrlagring är tidskrävande, tar över 20 sekunder även med optimerade nätverk.
- Ineffektiv kontrollpunktsinläsning: Även med lokal SSD-lagring tar det att ladda kontrollpunkter in i GPU-minne tiotals sekunder på grund av faktorer som tensoravserialisering och allokering. Detta lägger till betydande fördröjningar utöver containerstarttiden.
För att åtgärda dessa problem föreslog forskare vid MIT CSAIL ServerlessLLM, ett innovativt system som uppnår låglatens serverless inferens för LLM. ServerlessLLM förbättrar lokalitet genom att utnyttja den rikliga men outnyttjade kapaciteten och bandbredden i multi-nivåserverlagring för LLM-distribution.
Nyckelinnovationer i ServerlessLLM ServerlessLLM omfattar flera nya design för att minska LLM-laddningstider i serverless-miljöer:
- Snabb kontrollpunktsinläsning
- Inläsningsoptimerad kontrollpunktsformat som möjliggör snabb sekventiell läsning och effektiv minnesadressering av tensorer.
- Multi-nivå kontrollpunktsinläsningspipeline som maximalt utnyttjar bandbredden över nätverk, SSD, DRAM och GPU-minne genom tekniker som direkt I/O, fast minnesöverföring och parallellism.
- Live-migration för lokalitetsdriven inferens
- Tokenbaserad migration som endast överför väsentliga prompttoken över nätverket, undviker långsam snapshotöverföring.
- Tvåfassig migration som tillåter oavbruten inferens genom att asynkront omberäkna cache-tillstånd på målservern innan slutliga token överförs.
- Latensoptimerad servertilldelning
- Exakta modeller för att uppskatta kontrollpunktsinläsningstider från varje nivå och migreringstider för en server.
- Lokalitetsmedveten schemaläggare som väljer servrar som minimerar förväntad startlatens med hjälp av ovanstående modeller.
Dessa optimeringar möjliggör för ServerlessLLM att minska LLM-laddningstider med 4-8 gånger och slut-till-slut-starttider med över 25 gånger jämfört med befintliga system som PyTorch, TensorFlow och KServe.
Låt oss dyka djupare in i hur ServerlessLLM uppnår dessa betydande prestandavinster.
Accelererande kontrollpunktsinläsning
Den första stora flaskhalsen som ServerlessLLM åtgärdar är den höga latensen för att ladda LLM-kontrollpunkter från lagring till GPU-minne.
För att möjliggöra snabb kontrollpunktsinläsning introducerar ServerlessLLM:
- Inläsningsoptimerad kontrollpunktsformat
Standardkontrollpunkter som används av ramverk som PyTorch är utformade för modellträning och felsökning. Men för serverless inferens är kontrollpunkterna skrivskyddade och åtkomna upprepade gånger.
För att optimera för sådan läsintensiv användning konverterar ServerlessLLM kontrollpunkterna till ett format med två nyckelegenskaper:
- Sekventiell chunkbaserad läsning: Tensorer grupperas i per-GPU binära filer, vilket underlättar stora sekventiella läsningar.
- Effektiv tensoradressering: En index kartlägger tensornamn till minnesoffset, vilket möjliggör direkt minnesåterställning utan avserialisering.
- Multi-nivå kontrollpunktsinläsningspipeline
ServerlessLLM utnyttjar den nivåbaserade arkitekturen i GPU-servrar, med lagringsmedier som SSD och nätverk som ansluter till GPU via PCIe, NVMe etc.
Systemet omfattar en flerstegspipeline för att maximalt utnyttja bandbredden över alla nivåer:
- Minnesdatachunkar allokeras med fast minne för snabb GPU-överföring.
- Direkt I/O används för effektiv SSD-läsning utan cachelagring.
- Flera trådar läser olika lagringschunkar parallellt.
- Mellan-stegs-samordning sker via asynkrona uppgiftsköer.
Tillsammans möjliggör detta att mätta bandbredden för till och med de snabbaste nivåerna som NVMe RAID. Experiment visar att ServerlessLLM uppnår 6-8 gånger snabbare inläsning än PyTorch/TensorFlow, vilket minskar starttiden för stora LLM från över en minut till under 10 sekunder.
Lokalitetsdriven LLM-inferens via live-migration
Med accelererad inläsning står ServerlessLLM inför en ny utmaning – hur man utnyttjar förinlästa kontrollpunkter för lokalitet utan att avbryta pågående inferenser på upptagna servrar?
ServerlessLLM introducerar en ny teknik – live-migration av LLM-inferens över GPU-servrar. Detta möjliggör en sömlös överföring av körning till servrar med lokala kontrollpunkter tillgängliga.
Nyckelaktörer för live LLM-migration:
- Tokenbaserad migration
Istället för att ta en snapshot av hela modelltillståndet migrerar ServerlessLLM endast de minimala prompttoken över nätverket. Detta överför flera storleksordningar mindre data än snapshots.
- Tvåfassig migration
Målservern beräknar asynkront cache-tillstånd från prompttoken. När den är klar överför källservern de slutliga token innan den släpper resurserna. Detta förhindrar inferensstopp.
Experiment visar att tokenbaserad migration minskar migreringstider från tiotals sekunder till under en sekund, även för långa sekvenser. Live-migration är avgörande för att förhindra köfördröjningar när man uppnår lokalitetsdriven tilldelning.
Latensoptimerad modellschemaläggning
För att minimera slut-till-slut-latens förbättrar ServerlessLLM schemaläggaren för att optimera serverurval med hänsyn till lokalitet. Detta innefattar:
- Finnskalig lastningstidsuppskattare
Modeller förutsäger lastningstider från nätverk, SSD-cacheminnen och minne för varje server med hjälp av mått som köfördröjningar, modellstorlekar och uppmätta bandbredder.
- Exakt migreringstidsprediktor
Schemaläggaren uppskattar migreringstider för servrar med hjälp av antalet prompt- och utdatatoken. Den spårar inferensförloppet asynkront för att undvika overhead.
- Lokalitetsmedveten tilldelning
För varje inferensbegäran utvärderar schemaläggaren uppskattade lastningstider och migreringstider över servrar. Den väljer servern som minimerar förväntad startlatens.
Schemaläggaren underhåller också serveruppgiftsköer och utnyttjar en starkt konsekvent lagring för fel tolerans. Tillsammans möjliggör dessa innovationer att minska schemaläggningsöverhuvudet samtidigt som lokalitetsfördelarna maximeras.
Utvärdering av ServerlessLLM-prestanda
Omfattande experiment mäter den slut-till-slut-effektiviteten hos ServerlessLLM mot befintliga system med hjälp av riktiga modeller som OPT-175B och arbetsbelastningar som modellerats efter Azure-spår.
Nyckelresultat:
- Mikrobenchmark: ServerlessLLM accelererar kontrollpunktsinläsning med 3,6-8,2 gånger jämfört med PyTorch/TensorFlow. Det mättar fullständigt lagringsbandbredden, även för toppmoderna NVMe RAID.
- Schemaläggning: ServerlessLLM minskar tilldelningslatens med 4-12 gånger jämfört med slumpmässig schemaläggning, vilket betonar fördelarna med lokalitetsmedvetenhet. Live-migration förhindrar köfördröjningar.
- Slut-till-slut-servering: För stora modeller som OPT-30B förbättrar ServerlessLLM 99:e percentilen latens med 28-200 gånger jämfört med system som KServe och Ray Serve. Det förbättrar också resurseffektiviteten.
Dessa betydande vinster visar ServerlessLLM:s förmåga att övervinna flaskhalsar i befintliga serverless-implementationer och låsa upp kraften i LLM för interaktiva tjänster.
De optimeringar som introducerats i ServerlessLLM, som multi-nivåinläsning, live-migration och latensdriven schemaläggning, kan hjälpa till att informera designen av framtida serverless-arkitekturer. Systemets förmåga att minska lastningstider och starttider blockerar den skalbara distributionen av stora språkmodeller för praktiska tillämpningar.
Blickar framåt: Pågående utmaningar
Medan en betydande språng framåt, representerar ServerlessLLM endast det första steget i att optimera serverless-inferens för massiva LLM. Flera öppna problem kvarstår, inklusive:
- Förutsäga realtidsmodellkrav för att vägleda etablering och förinläsning
- Intelligent placering av kontrollpunkter över servrar för att maximera cache-träffar
- Effektivt skalning av schemaläggningsalgoritmer för att hantera större kluster
- Säkerställa rättvis resurstilldelning över modeller och utvecklare
- Generalisera innovationer som live-migration till andra serverless-arbetsbelastningar
Att åtgärda dessa områden kan hjälpa till att bygga på löftet om serverless LLM och göra deras förmågor ännu mer tillgängliga. Utöver systemnivåoptimeringar kvarstår också minskningen av de skandalösa koldioxidavtrycken och de potentiella skadorna av stora modeller som en brådskande prioritet.
ServerlessLLM visar att det finns en enorm möjlighet för innovation inom nästa generations serverless-arkitekturer för AI-arbetsbelastningar. När LLM fortsätter att öka i storlek och popularitet kommer lösningar som ServerlessLLM som låser upp deras skalbarhet att bli ännu mer betydelsefulla. Sammanflödet av system- och maskinläringsforskning kan introducera nya paradigm i servering, delning och skalning av AI-modeller på ett säkert och hållbart sätt.











