Vertical Mobility: Inference from MVP to Trillion-Parameter Workloads — Sitanshu Gupta, CoreWeave
AAI Engineer
컴퓨터/소프트웨어AI/미래기술
스크립트
00:00:00Good afternoon, everybody. I'm Sitan Shu from Corvi. I'm going to be talking about vertical
00:00:19mobility. It's quite a fancy topic, the title that we came up with, but basically going to
00:00:26be talking about the inference platform that we have at Corvi that we are building to serve
00:00:30small to big models and various different types of workloads. A quick intro about me, I joined
00:00:38Corvi just about four months back, leading all of inference over there. And before this,
00:00:44I was managing everything at AWS Annapurna Labs for training, and before that, inference
00:00:49and training at Sambanova. So quite a bit of experience in this particular space. What
00:00:56I will, the way I'll be taking you through is explaining to you the consumption models
00:01:00that we have, and from that, how we have derived what the platform should look like so that
00:01:04we do not need to keep changing the platform and we keep making enhancements in the platform
00:01:09that we have for serving inference, and how and why performance plays such an important role
00:01:14over there. I think a little bit of this might be common with the previous topic that was discussed
00:01:20over here. Consumption models. So we have at large two biggest consumption models. One is a serverless,
00:01:29which is where the customers can come in, consumers can come in, do not need to worry about managing the
00:01:35hardware themselves, do not need to worry about managing the clusters, orchestration, anything at all.
00:01:40There's an API, there's UI, you come in, you pay per token, and you get your model served.
00:01:47Biggest thing over here is that the type of models that we serve in the catalog, that is the breadth of
00:01:54models that the customer will be able to go through. I'll talk about dedicated and then I'll come back to serverless,
00:02:01because there is one thing unique on the serverless side. Dedicated inference service that we provide
00:02:05is more for customers who want to know exactly what hardware they are going to be using and running on,
00:02:11but the model deployment also depends on them. So they use our service, they use our orchestration layers,
00:02:18but the model deployment depends on them. Model performance also depends on them, as long as we provide
00:02:25in the platform the capability and the knobs to serve those features. Coming back to serverless,
00:02:30one of the interesting pieces over here is typically serverless models are noisy neighbor problems,
00:02:38where if let's say everyone is banging on the exact same model, then you might be timing out quite a
00:02:43bit, depending on how much capacity I have behind it. So another feature that we have on the serverless
00:02:48side is what we are calling provisioned throughput. So as a customer, if you know your traffic profile,
00:02:55and if you can let us know about that, we can carve it out specifically for you,
00:03:00behind the scenes. You still do not need to worry about what hardware it is exactly running on,
00:03:04as long as your throughput, your SLAs are maintained.
00:03:07So that is another one on the serverless side, and that is still charged by the token,
00:03:12but you know that you're not running into the noisy neighbor problem over there.
00:03:19Let me take a quick stab at a few different types of workloads, workload shapes that we have,
00:03:27that we are seeing, and the ratio between these is like continuously changing, though agentic is
00:03:32like really high up there. Agentic and chat, kind of very similar, super high on the input sequence
00:03:39lengths, very low on the output sequence lengths typically. But the biggest difference between agentic and
00:03:43chat being the fact that the multi-turns in agentic are super low latency versus in chats, because when
00:03:50you get the response of the user, you have to read the answer and then you respond to it. So there are
00:03:56there are differences over there. And that big difference ultimately converts into something
00:04:01related to the KVCache management. But these two are both real-time and another real-time workload is
00:04:09your voice and videos, which are steady streaming and super latency sensitive. On the agentic and chat
00:04:16side, largely the requirements are from throughput point of view, not so much from latency, but real-time
00:04:23voice and videos are absolutely latency sensitive. Coming to batch, batch is where the SLAs are like super
00:04:32loose. They run into like seconds and minutes, sometimes for some customers actually even in hours.
00:04:37They're like, I'll just throw, give me 10 to 12 hours of workload capability and I'll throw whatever I can,
00:04:44process it whenever you can. These batch workloads, the way they come into the picture over here in
00:04:52deciding, sorry, being the requirement for some of the design choices that we make in the stack. Imagine
00:04:59these four different types of workload shapes. In the time dimension, you have to play the game
00:05:04of characteristics on how you can fit it in to utilize the underlying infrastructure the most.
00:05:12I'll give a high level on how our stack is shaped right now. And I'll walk you through a bit of a
00:05:19request flow over here. So for both serverless and dedicated, if you look at the right hand side of
00:05:24the screen, you'll see that on the platform side, you'll go to the control plane to have your
00:05:31authorizations, your rate limitings and your usage being tracked, etc. So that you can be built accordingly.
00:05:37And observability so that we can make sure that we are not violating the SLAs that have been signed,
00:05:45right? Underlying on the platform, I've shown at our super high level that we have these different
00:05:52inference engines, VLLMs, SGLangs, and tensed RTLL, but there's quite a bit of detail over here that I'll touch up on.
00:06:00And underlying that, what I'm trying to show over here in green is various different pieces of hardware.
00:06:09So it's not that, so the platform needs to be capable enough of sharing, of having the workload
00:06:15getting distributed across various different generations of these GPUs, specifically NVIDIA GPUs
00:06:21that we use, right? So let's take a few examples over here. Let's say the request originates from the
00:06:31client side through apps or notebooks, any of those, or through the agents, right? It hits the gateway.
00:06:36Once it hits the gateway, then, like I mentioned on the control plane, goes through authentication,
00:06:42etc., etc., etc., but then comes either the serverless or dedicated. So in the case of serverless,
00:06:48it'll be paper tokens, so the token usage would be monitored over here, not the exact tokens,
00:06:53but just the token usage, because we maintain ZDR, zero data retention policies.
00:06:59It is, depending on the multi-tenancy or the provision, if it is provisioned, then we know
00:07:05underlying for the router, it needs to go in and target the explicit deployments for the provision
00:07:12throughput customers. For the multi-tenant customers, there are separate deployments.
00:07:17Router over here, specifically, the router is very important, since the router is responsible for
00:07:26making kvcache-aware routing choices. Why is it important? Because, like I mentioned when we were
00:07:31discussing the workload profiles, the agentic use cases are typically super heavy on the input sequence
00:07:39lengths, and bulk of the input sequence length, about 80 to 90 percent, depending on which company it is,
00:07:44depending on the customers, 80 to 90 percent of it is the same for various different requests.
00:07:51So there is no point in going in and recomputing the pre-fill or redoing the pre-fill for that.
00:07:57Pre-fill is super compute bound, very expensive, that's why as much as you can hit the cash,
00:08:04more you can save, which is why if you look at the token pricing anywhere, there's a specific price for
00:08:11input tokens and there's a way cheaper price for the cash input tokens. So caching becomes really important
00:08:18over here. Underlying how you want to split the hardware is totally dependent on the choice in the
00:08:26platform and we provide the capability to do either. Either do a pre-fill decode disaggregation if the
00:08:31use case desires it or do not do it because pre-fill decode disaggregation is not cheap for every type of use case.
00:08:41Let's take another request flow over here. Let's see if when it was a dedicated customer, then what will happen.
00:08:48A dedicated customer again will go through the gateways that have been set up for them with proper isolations.
00:08:55Billing is not based on tokens, billing is based on usage of per GPU per hour.
00:09:03It's a private gateway so that there is no noisy neighbor problem, no one else can get in.
00:09:09Same router logic over here so that if there are requests which are very similar, then it hits the cache most.
00:09:18And depending on the deployment that the customer makes in there on their dedicated GPUs,
00:09:24they can decide if they want to do pre-fill decode disaggregation or not. They can decide which
00:09:29which engine to use, VLM or SG-Lang or Tensile RTLM. And given the bulk of capacity that the customer
00:09:35has reserved, they can decide if they want to have just one deployment with the ability to scale
00:09:42through the whole cluster or they want to have multiple different models, multiple different deployments.
00:09:47One thing that I do want to mention about the router over here is the fact that
00:09:54heterogeneous capacity across different zones and regions
00:09:59is supported. It is a little, it's quite a bit of a hard problem to load balance across that.
00:10:04So the priority order that we typically take is first KV cache locality and then the least loaded fallback.
00:10:16That's that. Another request flow that I want to go over here which
00:10:21might be a little hard to see from the diagram is I want to take the batch workflow.
00:10:25For the batch workflow what we would actually do is the underlying capacity that the customer has,
00:10:31let's say the same dedicated inference customer, during US daytime they're running their real-time
00:10:37workloads and from evening to night they want to run batch workloads, the same capacity after time can
00:10:43be scheduled to run the batch workloads. So we provide the capability in the API to tell when to scale up and
00:10:51when to scale down and as per schedule, if we can, if they tell us that we can have to scale down,
00:10:56we will scale down and open it up for batch processing through the night.
00:11:05I think I've spoken quite a bit about optimizations on the KV cache side but I do want to repeat a little
00:11:10bit because this is one of the most interesting pieces. If we can hit on the cache more you can,
00:11:19you will avoid the cost of pre-fill which is the most expensive piece over here.
00:11:26Reusing the KV cache across multiple different turns in your agentic workloads, between turns also there is
00:11:31a lot of similar pre-fill that comes in the input sequence length.
00:11:38Think about the chat workloads which is where offloading KV cache also becomes extremely important
00:11:43because with the chat workloads we have a lot of latency between different, between multiple turns
00:11:49that we as users put in. But if we completely evict whatever we had in our particular conversation,
00:11:57then the next time we ask a question in the same chat it's going to take a little bit longer.
00:12:02So instead of actually completely evicting and redoing the pre-fill again, what the the techniques
00:12:08being used are maybe using, we are using our own but externally we know about LM cache and Mooncakes.
00:12:17What we do is we will offload the KV cache to a high bandwidth storage
00:12:21so that we can store a lot of these pre-fills such that whenever the accompanying request comes
00:12:28for that particular conversation, it can be loaded in right away into the HPM.
00:12:37On the performance liver, I would, I just want to mention a few performance livers that we've
00:12:41discussed the PD DSAG that is one but quantization and speculative decoding are others and how to
00:12:48carefully choose the parallelization degrees and the strategies that is actually very important.
00:12:54Two of the biggest livers that we have been working with are quantization to NVFE4 and spec deck.
00:13:01We do provide capability where if the customer has their data set and they want us to train speculators
00:13:07for their data sets for better acceptance lens, which will ultimately make the output throughput
00:13:12significantly higher. We do have that as well. So, but that happens async. We, we get the data async,
00:13:20we train the speculators async and then we deploy the speculators into the customer deployments
00:13:26if that's what they wanted. You see three screenshots over here. I've posted them from
00:13:32the last one month, one month's worth of work that some of us in my team have done. You can see we came
00:13:39quickly on top of the leaderboard on Kimi 2.6, 2.7 and those are, those are from artificial analysis
00:13:46and going back to the session before this, can we trust that? That's why for GLM, I have the results
00:13:52from open routers. So artificial analysis, when they run benchmarks, they're running very specific workloads.
00:13:58Open router is actual user traffic and you can see on the open router side, weights and biases. So the
00:14:05branding is different, but weights and biases are basically curvy. We bought weights and biases
00:14:09about a year back. You can see the speed over here that we have from our deployment is pretty close
00:14:16to what Fireworks is providing as Fireworks fast, right? But underlying techniques that we are using is
00:14:21what I want to emphasize the most over here for performance optimization. That becomes critical because
00:14:27ultimately what you want to serve to the customer, what we want to serve to the customer is price performance benefit.
00:14:36Quick recap, single platform is what I've been trying to emphasize is what I'm trying to show.
00:14:44Two different consumption models, serverless and dedicated for customers and within serverless,
00:14:49I describe two different consumption models as well, pay as you go and provision throughput if you care about
00:14:53that and ultimately compounding the gains through performance optimizations in the stack.
00:15:01That's all. Thank you, folks.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기