← All IntelClip / EducationDiffusion LLMs need their own serving engine
From Making Diffusion LLMs Faster: A Survey of Speedup Techniques · ≈13:25
Practical deployment reality from Inception: vLLM, SGLang and TensorRT do not serve diffusion LLMs; attention kernels largely transfer, KV caching does not, and some optimizations exist only for diffusion.
What’s in it
- Practical deployment reality from Inception: vLLM, SGLang and TensorRT do not serve diffusion LLMs; attention kernels largely transfer, KV caching does not, and some optimizations exist only for diffusion.
Clip transcript
diffusion step fast. Okay, so say we selected a good sampling algorithm and now we need to implement it. What are the challenges there? I know you built a custom inference engine. What exactly is custom about it? Perhaps the easiest way to understand is is that even if you have traditional auto-regressive LLM, if you want to serve it in in production, you would probably want to use something like vLLM or SG Lang or TensorRT, one of these serving engines that have been built to support continuous batching, hashing, there is all kinds of optimizations. So, we had to build something similar to support serving diffusion LLMs, which you can't actually run in any of these existing serving engines. There's been a lot of work optimizing inference for auto-regressive models like KB caching and so on. How many of these tricks translate to diffusion models? Some of them translate. Some of them, unfortunately, don't. And some of them there are new ones that only apply to to diffusion language models and don't necessarily apply to to auto-regressive models. The architectures that we use are not that different from the traditional auto-regressive models. So, our models are still largely transformer-based. So, a lot of the kernels that people have developed to accelerate attention-like computations can still largely be reused. But then, as you mentioned, KB cache is much more tricky to reuse in the context of a diffusion language model because there is not really necessarily a context that stays fixed throughout the computation.
Comments
Sign in to comment.
Loading comments…