Vertical Mobility: Inference from MVP to Trillion-Parameter Workloads — Sitanshu Gupta, CoreWeave

summarized

TLDR

CoreWeave's inference platform is built around two consumption models, serverless and dedicated, with serverless offering both pay-as-you-go and provisioned throughput options. The platform prioritizes KV cache reuse to cut prefill costs, supports prefill/decode disaggregation, and uses quantization and speculative decoding for performance. A key differentiator is the router's KV cache-aware routing, which is critical for agentic workloads where 80-90% of input tokens are shared across requests.

Key points

CoreWeave offers serverless and dedicated inference services, with serverless supporting pay-as-you-go and provisioned throughput.

The router makes KV cache-aware routing decisions to maximize cache hits and reduce prefill costs.

KV cache offloading to high-bandwidth storage enables fast reloading for multi-turn conversations.

CoreWeave supports prefill/decode disaggregation and lets customers choose between engines like vLLM, SGLang, and TensorRT-LLM.

Performance optimizations include NVFP4 quantization and speculative decoding, with optional custom speculator training.

Tools mentioned

Techniques

  • KV cache reuse
  • KV cache offloading
  • Prefill/decode disaggregation
  • Quantization (NVFP4)
  • Speculative decoding
  • KV cache-aware routing
Transcript (captions)

0:13 Good afternoon everybody. Um I'm Satan Shu from Kov going to be talking about vertical uh mobility. It's a quite a fancy topic uh the title that we came up with but basically going to

0:26 be talking about the inference platform that we have at Corv that we are building to serve small to big models and various different types of workloads.

0:34 Uh a quick intro about me. Um I joined core just about four months back. Uh leading all of inference over there and um before this I was managing everything at AWS Anapuna labs for uh training and

0:49 before that inference and training at SANOVA. So quite a bit of experience in uh in this particular space. Um what I will the way I'll be taking you through is explaining to you the

0:59 consumption models that we have and from that how we have derived what the platform should look like so that we do not need to keep changing the platform and we keep making enhancements in the

1:09 platform that we have for serving inference and how and why the why performance plays such an important role over there. Uh I think a little bit of this might be common with the previous

1:19 topic that was discussed over here. [snorts] Um consumption models. So we have uh at large two biggest consumption models. One is a serverless which is where the

1:30 customers can come in, consumers can come in uh do not need to worry about managing the hardware themselves. Do not need to worry about managing the clusters orchestration anything at all.

1:40 There's API, there's UI, you come in, you pay per token uh and you get your model served. Um biggest thing over here is that uh the type of models uh that we serve in the catalog that is the breadth

1:54 of models that the customer will be able to go through. Uh I'll talk about dedicated and then I'll come back to serverless because there is one thing unique on the serverless side. Dedicated

2:04 inference service that we provide is more for customers who want to know exactly what hardware they are going to be using and running on. Uh but the model deployment also depends on them.

2:15 So they use our service, they use our orchestration layers. Uh but the model deployment depends on them. Model performance also depends on them as long as we provide in the platform the

2:26 capability and the knobs to serve those features. Coming back to serverless, uh one of the interesting pieces over here is um typically serverless models are very are noisy neighbor problems where

2:38 uh if let's say everyone is banging on the exact same model then you might be timing out quite a bit depending on how much capacity I have behind it. So another feature that we have on the

2:48 serverless side is what we calling provisioned throughput. So as a customer, if you know your traffic profile and if you can let us know about that, we can carve it out specifically

2:59 for you behind the scenes. You still do not need to worry about what hardware it is exactly running on as long as your throughput, your SLAs's are maintained. So that is another one on the serverless

3:10 side and that is still charged by by the token but you know that you're not running into the noise enabled problem over there. Um let me take a quick stab at few

3:22 different types of workloads workload shapes that uh we have um that we are seeing and the ratio between these is like continuously changing though agentic is like really high up there.

3:34 Uh, agentic and chat kind of very similar. Super high on the input sequence lengths, very low on the output sequence lengths typically. But the biggest difference between agentic and

3:44 chat being the fact that the multi-turns in agentic are super low latency versus in chats because when you get the response as a user, you have to read the answer and then you respond to it. So

3:55 there are there are differences over there and that big difference ultimately converts into something uh related to the KV cache management uh but these are these two are both real time and another

4:08 real-time workload is your voice and videos uh which are study streaming and super latency sensitive on the agent agent and chat side um largely the requirements are from throughput point

4:20 of view not so much from latency but real-time voice and videos are absolutely totally latency sensitive. Coming to batch, batch is where the SLAs's are like super loose. They run

4:33 into like way like seconds and minutes. Sometimes for some customers actually even in hours. They're like I'll just throw give me 10 to 12 hours of workload capability and uh I'll throw whatever I

4:44 can process it whenever you can. uh these batch workloads um the way they come into the picture over here in um deciding uh sorry being the requirement for some of the design choices that we

4:57 make in the stack. Imagine these uh four different types of workload shapes um in the time dimension you have to play the game of tetris on how you can fit it in to utilize the underlying infrastructure

5:08 the most. I'll give a high level on how our stack is shaped right now. Um, and I'll walk you through a bit of a request flow over here. So for both serverless and

5:23 dedicated, if you look at the right hand side of the screen, you'll see that on the platform side we you'll go to the control plane to uh to have your uh authorizations, your rate limitings and

5:34 your usage being tracked etc. so that we can be built accordingly and uh observability so that we can make sure that we are not violating the SLAs's that have been signed right uh

5:47 underlying on the platform I've shown at a super high level that we have these different um inference engines VLMs SG langs and tensorl but there are quite there's quite a few quite a bit of

5:58 detail over here that I'll touch upon uh and underlying that what I'm trying to show over here in green is um various different pieces of hardware. So it's not that um so the platform needs to be

6:13 capable enough of share of having the workload getting distributed across various different generations of these GPUs [snorts] uh specifically Nvidia GPUs that we use right so let's take up

6:24 a let's take a few examples uh over here um let's say the request originates from the client side through apps or notebooks any of those or through the agents right it hits the gateway once it

6:37 hits the gateway then uh like I mentioned on the control plane goes through authentication etc etc etc but then um comes either the serverless or dedicated so in the case of serverless

6:48 it'll be paper token so that the token usage would be monitored over here not the exact tokens but just the token usage because we maintain ZDR zero data retention policies uh it is multi

7:00 depending on the multi-tenency or the provisioned uh if it is provisioned then we know underlying for the router it needs to go in and target the uh the explicit deployments for the provision

7:12 throughput uh customers. For the multi-end customers, there are separate deployments. Router over here specifically uh the the router is very important since um the

7:24 router is responsible for making KV cache aware routing choices. Why is it important? Because like I mentioned when we were discussing the workload uh profiles

7:34 uh the agentic use cases are typically super heavy on the input sequence lengths and bulk of the input sequence length about 80 to 90% depending on which company it is depending on the

7:45 customers 80 to 90% of it is the same for various different requests. So there is no point in going in and recomputing the prefill or redoing the prefill for that prefill is supercomputebound very

8:00 expensive that's why as much as you can hit the cache more you can save which is why if you look at the token pricing anywhere uh there's a specific price for input tokens and there's a way cheaper

8:13 price for the cash input tokens so caching becomes like really important over here underlying uh The underlying how you want to split the hardware is totally dependent on the choice in the

8:26 platform and we provide the capability to do either either do a pre-filled decode disagregation if the use case desires it or do not do it because prefilled decode disagregation is not uh

8:38 cheap for every type of use case. Uh let's take another request flow over here. Let's see if uh when it was a dedicated customer then what will happen? uh dedicated customer again will

8:51 go through the gateways that have been set up for them with proper isolations. Um billing is not based on tokens. Billing is based on usage of per GPU per hour. Uh it's a private gateway so that

9:05 uh there is noisy enable problem. No one else can get in. uh same router logic over here so that if there are uh cache heavy if there are requests which are very similar then it's it hits the cache

9:17 most and depending on the deployment that the customer makes in their on their dedicated GPUs uh they can decide if they want to do prefill decode disagregation or not they

9:28 can decide which which engine to use VLM or S lang or tenslm and given the bulk of capacity that the customer has reserved they can decide if they want to have just one deployment uh with the

9:40 ability to scale through the whole cluster or they want to have multiple different models, multiple different deployments. Um one thing that I do want to mention

9:50 about the router over here um is the fact that heterogeneous capacity across different zones and regions is supported. It is a little it's quite a bit of a hard problem to load balance

10:04 across that. So the priority order that we typically take is uh first KV cache locality and then the least loaded fallback. Um

10:16 that's that um another request flow that I want to go over here which um might be a little hard to see from the diagram is I want to take the batch workflow. For the batch workflow what we would

10:28 actually do is the underlying capacity that the customer has let's say the same dedicated inference customer uh during US daytime they're running their real-time workloads and from evening to

10:39 night they want to run batch workloads the same capacity after time can be scheduled to run the batch workloads. So we provide the capability in the API to tell when to scale up and when to scale

10:51 down and as per schedule if we can if they tell us that we have to scale down we will scale down and open it up for batch processing through the night. I think I've spoken quite a bit about uh

11:07 optimizations on the KV cache side but I do want to repeat a little bit because this is one of the most interesting pieces. Um it if we can hit on the cache more you can you will avoid the cost of

11:20 prefill which is the most expensive piece over here. Um reusing the cache across multiple different turns in your agentic workloads between turns also there is

11:31 lot of um similar prefill uh that comes in in the input sequence length. Um, think about the chat workloads which is where offloading AV cache also becomes extremely important because with cache

11:44 with with the chat workloads we have a lot of latency between different between multiple turns that we as users put in but uh if we completely evict whatever we had in our particular conversation

11:57 then the next time we ask a question in that same chat it's going to take a little bit longer. Uh so instead of actually completely evicting and redoing the prefill again what the the

12:08 techniques being used are uh maybe using u we we are using our own but externally we know about LM cache and moon cakes. Um what we do is we will offload the KV cache to a high bandwidth storage so

12:22 that we can store a lot of these prefills uh such that whenever the accompanying request comes for that particular conversation it can be loaded in right

12:31 away into the HPM. Um on the performance liver I would I just want to mention a few performance livers. We've discussed the PD disagulative

12:45 decoding are others and how to carefully choose the parallelization degrees and the strategies that is actually very important. Uh two of the biggest livers that we've been working with are

12:58 quantization to NVFP4 and spec. uh we do provide capability where if the customer has their data set and they want us to train in speculators for their data sets for better acceptance

13:09 lens which will ultimately make the output throughput significantly higher. Uh we do have that as well. So but that happens async. We uh we get the data async we train the speculators async and

13:23 then we deploy the speculators into the customer deployments uh if that's what they wanted. uh you see three screenshots over here. I have posted them from uh the last one month one

13:34 month's worth of work that uh some of us in my team have done. You can see we came quickly on top of the leaderboard on Kimmy 2.6 2.7 and um those are those are from artificial analysis and going

13:46 back to the session before this can we trust that that's why for GLM I have the results from open router. So artificial analysis when they run benchmarks they're running very specific workloads

13:58 open router is actual user traffic uh and you can see uh on the open router side weights and biases so the branding is different but weights and bias is basically k we bought weights and biases

14:09 about a year back uh you can see the speed over here that we have from our deployment is pretty close to what fireworks is providing us fireworks fast right but underlying techniques that we

14:21 are using is what I want to emphasize the most over here uh for for performance optimization that becomes critical because ultimately what you want to serve to the customer what we

14:29 want to serve to the customer is uh price performance benefit quick recap um single platform is what I've been trying to emphasize is what I've tried to show uh two different

14:44 consumption models serverless and dedicated for customers and within serverless I describe two different consumption models as well pay as you go and provision vision throughput if you

14:53 care about that and ultimately compounding the gains uh through performance optimizations uh in the stack. That's all. Thank you folks.

15:18 >> [music]

Frontier News · by Hyperjump Technology