Hur byter batchkörning av AI i hemmet latens mot genomströmning?

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Batchning av AI-arbete hemma förbättrar den totala genomströmningen genom att kombinera kompatibla uppgifter, men varje begäran kan behöva vänta längre eller dela långsammare iterationer med andra användare.

En enskild prompt kan omedelbart använda en ledig accelerator, medan en familjeserver ofta tar emot överlappande chattar, dokumentprompter, röstförfrågningar och bakgrundsjobb. Körtiden kan hålla en begäran en kort stund för att skapa en batch, lägga till nya sekvenser mellan avkodningsiterationer eller dela upp långa prefills i mindre delar. Dessa val håller acceleratorn sysselsatt i högre grad, men de påverkar också tiden till första token, fördröjningen mellan tokens och rättvisan. Avsnitten nedan förklarar var batchning hjälper och när genomströmningsvinsterna inte längre förbättrar den interaktiva upplevelsen.

Batchning omvandlar ledig acceleratorkapacitet till delat arbete

En enskild begäran kanske inte utnyttjar alla parallella exekveringsbanor effektivt, särskilt vid små matrismultiplikationer eller korta sekvenser. Genom att kombinera flera begäranden skapas större tensoroperationer som kan använda acceleratorn mer effektivt.

Orca introducerade schemaläggning på iterationsnivå, vilket gör att begäranden kan ansluta och lämna mellan genereringsiterationer i stället för att tvinga en fast batch att förbli samlad tills varje sekvens är klar.

Vinsten mäts i antal slutförda tokens eller begäranden per tidsenhet. Det garanterar inte att någon enskild användare får en token snabbare.

Ett batchfönster lägger till kötid innan beräkningen börjar

En körtid som väntar på fler begäranden kan skapa en större och effektivare batch, men den första begäran får betala väntetiden även när acceleratorn var tillgänglig.

Avvägningen mellan genomströmning och fördröjning blir synlig när större batcher förbättrar enhetens effektivitet samtidigt som kö- eller iterationstiden förlängs.

Interaktiv AI hemma behöver vanligtvis ett kort eller adaptivt batchfönster. Bakgrundsbaserade embedding-jobb kan tolerera längre väntan eftersom målet är slutfört arbete snarare än ett samtalssvar.

Långa prefills kan blockera korta avkodningsjobb

Promptbearbetning utför en stor, beräkningsintensiv prefill, medan aktiva samtal återkommer upprepade gånger för minnesbundna avkodningssteg. Om de blandas i samma batch kan en liten interaktiv avkodning behöva vänta bakom en lång dokumentprompt.

DistServe isolerar störningar mellan prefill och avkodning eftersom de två faserna har olika resurs- och fördröjningsegenskaper.

Chunked prefill är en kompromiss: en lång prompt delas upp så att avkodningsbegäranden kan köras mellan delarna, men dokumentet kräver fler schemaläggningsomgångar för att bli klart.

Den bästa inställningen beror på om servern prioriterar ett långt analysjobb eller flera användare som redan får strömmade svar.

Blandade sekvenslängder gör varje batch ojämn

Begäranden skiljer sig åt vad gäller promptlängd, utdatalängd, stoppvillkor och modelfunktioner. Vissa blir snabbt klara medan andra förblir aktiva, så batchens sammansättning förändras kontinuerligt.

vLLM använder kontinuerlig batchning med paginerad KV-cache för att ta emot nya begäranden när kapacitet blir tillgänglig, i stället för att vänta på en fast batchgräns.

Även med effektiv minneshantering förbrukar ett mycket långt svar avkodningsplatser och KV-cache under många iterationer. Batchstorlek bör därför uttryckas som token- och minnesbudgetar, inte enbart som antal begäranden.

Större batcher kan sänka tokenhastigheten per användare

Det totala antalet tokens per sekund kan öka samtidigt som varje användare får en mindre andel av avkodningsiterationerna. En instrumentpanel som visar högre total genomströmning kan alltså samexistera med långsammare synlig strömning.

ZimaSpaces guide till samtidig användning i familjen förklarar varför enanvändarbenchmarkar inte förutsäger fördröjningen vid flera överlappande samtal.

Mät tiden till första token, tiden mellan tokens och slutförandetiden för varje begäran tillsammans med den totala genomströmningen. Annars kan batchningen optimeras för ett mått som användarna aldrig upplever direkt.

Använd olika batchprinciper för interaktivt arbete och bakgrundsarbete

Reservera korta köfönster, begränsad samtidighet och högre prioritet för röst och chatt. Tillåt större batcher och lägre prioritet för embedding-jobb, indexering, sammanfattningar och offlineomvandlingar.

Forskning om rättvis betjäning av stora språkmodeller använder tokenmedveten rättvisa så att en begärans långa indata eller utdata inte upptar en oproportionerligt stor andel av resurserna under obegränsad tid.

Testa med en representativ familjebelastning, inte bara med maximal batchstorlek. Den användbara konfigurationen är den högsta genomströmning som fortfarande uppfyller målen för tid till första token och strömningsfördröjning i den interaktiva vägen.

När en accelerator inte kan tillgodose båda klasserna kan separata arbetare eller scheman vara enklare än en universell batchningspolicy.

Vanliga frågor

Ökar batchning alltid fördröjningen?

Nej. Effektiv batchning kan förkorta den totala tiden för att tömma kön och förhindra överbelastning, men väntan på en batch och delning av längre iterationer kan öka fördröjningen för en enskild begäran.

Är batchstorlek samma sak som antal användare?

Inte exakt. Körtider kan budgetera efter aktiva sekvenser, tokens, KV-block eller totalt arbete, och en användare kan skapa flera samtidiga begäranden.

Bör röstförfrågningar batchas tillsammans med embedding-jobb?

Vanligtvis inte enligt samma fördröjningspolicy. Röst är interaktivt, medan embedding-jobb kan vänta och använda större batcher när det finns ledig kapacitet.

Teknik- och AI-hubb

Mer att läsa

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.