AI-modeller och plattformar
Framtiden för serverless inferens för stora språkmodeller
De senaste framstegen inom stora språkmodeller (LLM) som GPT-4 och PaLM har lett till transformerande 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 exekvering
Istället för komprimerade modeller, väljer dessa tekniker att exekvera endast delar av modellen per inferens:
- Sparse aktiveringar – Hoppa över beräkningar på nollaktiveringar.
- Villkorlig beräkning – Exekvera endast vissa lager beroende på indata.
På den kompletterande sidan, 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 allokeras dynamiskt baserat på efterfrågan. Detta möjliggör en effektiv användning av GPU och minskar kostnader för utvecklare. Framstående implementationer inkluderar Amazon (AMZN ) SageMaker, Microsoft Azure ML och öppen källkod som KServe.
Trots löftet om serverless LLM, visar befintliga system höga latensöverhuvuden som försämrar användarupplevelsen i interaktiva tillämpningar:
- Dyra checkpoint-nerladdningar: LLM har stora minnesavtryck, ofta gigabyte till terabyte i storlek. Nerladdning av checkpoints från fjärrlagring är tidskrävande, tar över 20 sekunder även med optimerade nätverk.
- Ineffektiv checkpoint-inläsning: Även med lokal SSD-lagring, tar det att ladda checkpoints till GPU-minne tiotals sekunder på grund av faktorer som tensor-deserialisering och allokering. Detta lägger till betydande fördröjningar utöver containerns starttid.
För att lösa 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 inkorporerar flera nya design för att minska LLM-laddningstider i serverless miljöer:
- Snabb checkpoint-inläsning
- Laddningsoptimerad checkpoint-format som möjliggör snabb sekventiell läsning och effektiv minnesadressering av tensorer.
- Multi-nivå checkpoint-inläsningspipeline som maximalt utnyttjar bandbredden över nätverk, SSD, DRAM och GPU-minne genom tekniker som direkt I/O, fastställd minnesöverföring och parallellism.
- Live-migration för lokalitet-driven inferens
- Tokenbaserad migration som endast överför väsentliga prompttoken över nätverket, undviker långsam snapshot-överföring.
- Två-fasig migration som tillåter oavbruten inferens genom att asynkront omberäkna cache-tillstånd på destinationsservern innan slutliga token överförs.
- Latensoptimerad serverallokering
- Exakta modeller för att uppskatta checkpoint-inläsningstider från varje nivå och migrationstider 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-8X och slut-till-slut-starttider med över 25X 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 Checkpoint-inläsning
Den första stora flaskhalsen som ServerlessLLM hanterar är den höga latensen för att ladda LLM-checkpoints från lagring till GPU-minne.
För att möjliggöra snabb checkpoint-inläsning, introducerar ServerlessLLM:
- Laddningsoptimerat checkpoint-format
Standardcheckpoints som används av ramverk som PyTorch är utformade för modellträning och felsökning. Men för serverless-inferens, är checkpoints skrivskyddade och återkommande.
För att optimera för sådan läsintensiv användning, konverterar ServerlessLLM checkpoints till ett format med två nyckelelement:
- Sekventiell chunk-baserad läsning: Tensorer grupperas i per-GPU binära filer, vilket underlättar stora sekventiella läsningar.
- Effektiv tensoradressering: En index kartar tensor-namn till minnesoffset, vilket möjliggör direkt återställning i minnet utan deserialisering.
- Multi-nivå checkpoint-inläsningspipeline
ServerlessLLM utnyttjar den nivåbaserade arkitekturen i GPU-servrar, med lagringsmedier som SSD och nätverk som ansluter till GPU via PCIe, NVMe osv.
Systemet inkorporerar en multi-stegs pipeline för att maximalt utnyttja bandbredden över alla nivåer:
- Minnesdata-chunkar allokeras med fastställd minne för snabb GPU-överföring.
- Direkt I/O används för effektiv SSD-läsning utan cache-överhuvuden.
- 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-8X snabbare inläsning än PyTorch/TensorFlow, vilket minskar starttider för stora LLM från över en minut till under 10 sekunder.
Lokalitet-driven LLM-inferens via Live-migration
Med accelererad inläsning, står ServerlessLLM inför en ny utmaning – hur man utnyttjar förinlästa checkpoints 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 exekvering till servrar med lokala checkpoints tillgängliga.
Nyckelaktiverare 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å-fasig migration
Destinations-servern förberäknar asynkront cache-tillstånd från prompttoken. När den är klar, överför käll-servern de slutliga token innan den släpper resurserna. Detta förhindrar inferens-stopp.
Experiment visar att tokenbaserad migration minskar migrationstider 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 lokalitet-driven allokering.
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 inkluderar:
- Fin-granulerad inläsningstidsuppskattare
Modeller förutsäger inläsningstider 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 migrationstidsförutsägare
Schemaläggaren uppskattar migrationstider för servrar med hjälp av antalet prompt- och utdatatoken. Den spårar inferensprogress asynkront för att undvika överhuvuden.
- Lokalitetsmedveten allokering
För varje inferensbegäran, utvärderar schemaläggaren uppskattade inläsningstider och migrationstider ö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 feltålighet. Tillsammans minskar dessa innovationer schemaläggningsöverhuvudena medan de maximalt utnyttjar lokalitetsfördelarna.
Utvärdering av ServerlessLLM-prestanda
Omfattande experiment utvärderar 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 checkpoint-inläsning med 3,6-8,2X jämfört med PyTorch/TensorFlow. Det mättar helt lagringsbandbredden, även för toppmoderna NVMe-RAID.
- Schemaläggning: ServerlessLLM minskar allokering-latens med 4-12X jämfört med slumpmässig schemaläggning, vilket betonar fördelarna med lokalitet-medvetenhet. Live-migration förhindrar köfördröjningar.
- Slut-till-slut-servning: För stora modeller som OPT-30B, förbättrar ServerlessLLM 99:e percentilen latens med 28-200X 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.
Optimeringarna som introducerades i ServerlessLLM, som multi-nivå-inläsning, live-migration och latens-driven schemaläggning, kan hjälpa till att informera designen av framtida serverless-arkitekturer. Systemets förmåga att minska inläsningstider och starttider möjliggör en skalbar distribution av stora språkmodeller för praktiska tillämpningar.
Blickar framåt: Pågående utmaningar
Medan en betydande framsteg, representerar ServerlessLLM endast det första steget i att optimera serverless-inferens för massiva LLM. Flera öppna problem kvarstår, inklusive:
- Att förutsäga modellefterfrågan i realtid för att vägleda etablering och förinläsning
- Att placera checkpoints intelligent över servrar för att maximera cache-träffar
- Att skala schemaläggningsalgoritmer effektivt för att hantera större kluster
- Att säkerställa rättvis resursallokering över modeller och utvecklare
- Att generalisera innovationer som live-migration till andra serverless-arbetsbelastningar
Att hantera dessa områden kan hjälpa till att bygga på löftet om serverless LLM och göra deras förmågor mer tillgängliga. Utöver systemnivå-optimeringar, förblir minskningen av den betydande koldioxidavtrycket och de potentiella skadorna från stora modeller ett brådskande prioriterat område.
ServerlessLLM visar att en betydande potential för innovation finns i nästa generations serverless-arkitekturer för AI-arbetsbelastningar. När LLM fortsätter att växa 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 maskininlärningsforskning kan introducera nya paradigm i servning, delning och skalning av AI-modeller på ett säkert och hållbart sätt.













