In-flight ring
Een pipeline die nooit leegloopt: meerdere verzoeken bezetten tegelijk verschillende stages, zodat geen stage hoeft te wachten op de stage ervoor.
Kvasir serveert een model als een pipeline van stages, die elk een aaneengesloten plak van zijn lagen vasthouden. Een stage draait zijn lagen en geeft de grens door — een hidden state, geen gewichten — aan de volgende. Geen enkele stage bezit het hele model, en er zit niets midden in het datapad: de bridge dient in bij de kop en leest van de staart, terwijl de stages hun resultaten via hun eigen agents aan elkaar doorgeven.
Waarom een leeggelopen pipeline het grootste deel van de machine verspilt
Als een pipeline eerst één verzoek afmaakt voordat hij het volgende toelaat, staat op elk moment elke stage op één na stil — een ring met vier stages draait op een kwart van zijn hardware. Het in-flight-ontwerp houdt meerdere verzoeken tegelijk in beweging: terwijl stage 3 het ene verzoek decodeert, is stage 0 al bezig met de prefill van een ander. Stages rapporteren hoe lang ze een batch vasthielden en hoe lang ze niets hadden om in te dienen, zodat een uitgehongerde ring er anders uitziet dan een verzadigde.
Vier stages, drie verzoeken, één moment in de tijd.
stage 0 stage 1 stage 2 stage 3
layers 0-11 12-22 23-33 34-44
request A decode
request B decode
request C prefill
boundaries pass → agent to agent, never through the callerWat een batch precies is
Rijen uit verschillende verzoeken worden in één fysieke batch verpakt, en die exacte samenstelling wordt doorgegeven aan elke stroomafwaartse stage in plaats van per hop opnieuw bepaald. Dat is wat een prefill en meerdere decodes samen één pass laat delen, en daarom is de grootte van een batch een eigenschap van de load: het plan legt de rij- en micro-batchbreedtes vooraf vast, en die breedtes bepalen het grootste resultaat dat een stage ooit kan teruggeven.
Een pipeline heeft minstens twee stages nodig. Een pipeline met één stage wordt botweg geweigerd — de kop en de staart zijn verschillende rollen, en één node die beide samenvouwt is een andere engine, geen kleinere ring.
De ring is het latentie-pad, en zijn granulariteit is een laag. Expert-sharding verwijdert die vloer door binnen een laag te snijden, en sluit aan op hetzelfde serveerweefsel.