SGLang ਦੇ RadixAttention ਨੇ ਇੱਕ dual-RTX 3090 ਰਿਗ 'ਤੇ warm-up time-to-first-token ਨੂੰ ਘਟਾ ਕੇ 68 ms ਕਰ ਦਿੱਤਾ, ਜਦੋਂ ਕਿ vLLM ਦੇ PagedAttention ਵਿੱਚ 184 ms ਦਾ ਸਮਾਂ ਲੱਗਿਆ—ਇਹ 82.9 % ਦਾ latency gap ਹੈ ਜੋ multi-turn agent ਇੰਟਰੈਕਸ਼ਨਾਂ ਨੂੰ ਕਾਫ਼ੀ ਸੁਚਾਰੂ ਬਣਾਉਂਦਾ ਹੈ।
ਦੋਵੇਂ ਪ੍ਰੋਜੈਕਟ large language model (LLM) inference ਦੀ ਰਫ਼ਤਾਰ ਵਧਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਨ, ਪਰ ਇਹ benchmark ਉਹਨਾਂ workloads ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦਾ ਹੈ ਜੋ autonomous assistants ਨੂੰ ਚਲਾਉਂਦੇ ਹਨ: ਲੰਬੇ system prompts, tool-calling schemas ਅਤੇ user-assistant turns ਦਾ ਇੱਕ ਲਗਾਤਾਰ ਇਤਿਹਾਸ। ਉਹ ਵਾਰ-ਵਾਰ ਆਉਣ ਵਾਲੇ tokens GPU memory ਵਿੱਚ ਰਹਿੰਦੇ ਹਨ; ਜੇਕਰ cache ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਪ੍ਰਬੰਧਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ, ਤਾਂ ਉਹ ਇੱਕ compute bottleneck ਬਣ ਜਾਂਦੇ ਹਨ ਜੋ ਗੱਲਬਾਤ ਨੂੰ ਰੋਕ ਦਿੰਦੇ ਹਨ।
ਉਹ workload ਜਿਸ ਨੇ ਪਾਸਾ पलट ਦਿੱਤਾ
ਰਵਾਇਤੀ LLM servers ਇੱਕ ਸਿੰਗਲ exchange—user prompt, model reply, done—ਦੇ ਲਈ optimize ਹੁੰਦੇ ਹਨ। ਹਾਲਾਂਕਿ, ਆਧੁਨਿਕ agents ਇੱਕ “conversation state” ਬਣਾਈ ਰੱਖਦੇ ਹਨ ਜੋ ਦਰਜਨਾਂ turns ਤੱਕ ਫੈਲ ਸਕਦੀ ਹੈ, ਜਿਸ ਵਿੱਚੋਂ ਹਰ ਇੱਕ cache ਵਿੱਚ ਸੈਂਕੜੇ tokens ਜੋੜਦਾ ਹੈ। Test suite ਨੇ ਦੋ RTX 3090 cards 'ਤੇ ਅਜਿਹੇ multi-turn loop ਨੂੰ ਦੁਹਰਾਇਆ, ਅਤੇ ਇਹਨਾਂ ਚੀਜ਼ਾਂ ਨੂੰ ਮਾਪਿਆ:
- Warm time-to-first-token (TTFT) – ਇੱਕ ਨਵਾਂ turn ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਬਾਅਦ ਪਹਿਲਾ token ਦਿਖਾਈ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਹੋਣ ਵਾਲੀ ਦੇਰੀ।
- Overall latency – ਪੂਰੇ loop ਵਿੱਚ ਪ੍ਰਤੀ token ਲੱਗਣ ਵਾਲਾ ਔਸਤ ਸਮਾਂ।
- Sustained throughput – ਜਦੋਂ loop ਲਗਾਤਾਰ ਚੱਲਦਾ ਹੈ ਤਾਂ ਪ੍ਰਤੀ ਸੈਕਿੰਡ process ਹੋਣ ਵਾਲੇ tokens।
- Cache-hit ratio – recompute ਹੋਣ ਦੀ ਬਜਾਏ key-value (KV) cache ਤੋਂ ਮੁੜ ਵਰਤੇ ਗਏ tokens ਦਾ ਅਨੁਪਾਤ।
SGLang ਨੇ ਹਰ metric 'ਤੇ vLLM ਨੂੰ ਹਰਾ ਦਿੱਤਾ: 68 ms vs 184 ms TTFT, 82.9 % latency ਦੀ ਕਟੌਤੀ, 39.8 % ਵਧੇਰੇ throughput ਅਤੇ vLLM ਦੇ 84.2 % ਦੇ ਮੁਕਾਬਲੇ 96.8 % ਦਾ cache-hit ratio।
PagedAttention vs RadixAttention
ਦੋਵੇਂ engines intermediate KV pairs ਨੂੰ GPU memory ਵਿੱਚ ਸਟੋਰ ਕਰਦੇ ਹਨ, ਪਰ ਉਹ ਉਸ memory ਨੂੰ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਗਠਿਤ ਕਰਦੇ ਹਨ।
- PagedAttention (vLLM) cache ਨੂੰ fixed-size blocks ਵਿੱਚ ਵੰਡ ਦਿੰਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ prompt ਬਲਾਕ ਦੇ ਵਿਚਕਾਰ ਖਤਮ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਅਗਲੇ tokens ਨੂੰ ਹਰ turn 'ਤੇ recompute ਕਰਨਾ ਪੈਂਦਾ ਹੈ ਕਿਉਂਕਿ ਬਲਾਕ ਨੂੰ ਅੰਸ਼ਕ ਤੌਰ 'ਤੇ ਮੁੜ ਵਰਤਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ। ਇਹ ਤਰੀਕਾ ਸਰਲ ਹੈ ਅਤੇ ਉਦੋਂ ਕੰਮ ਕਰਦਾ ਹੈ ਜਦੋਂ prompts ਬਲਾਕ ਦੀਆਂ ਸੀਮਾਵਾਂ ਦੇ ਅਨੁਸਾਰ ਹੋਣ, ਪਰ ਇਹ “edge” tokens 'ਤੇ cycles ਬਰਬਾਦ ਕਰਦਾ ਹੈ ਜੋ agent loops ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਧ ਬਦਲਦੇ ਹਨ।
- RadixAttention (SGLang) cache ਨੂੰ ਇੱਕ tree ਵਜੋਂ ਮੰਨਦਾ ਹੈ। ਇਹ block limits ਦੀ ਪਰਵਾਹ ਕੀਤੇ ਬਿਨਾਂ, ਮੌਜੂਦਾ prompt ਅਤੇ ਪਹਿਲਾਂ ਤੋਂ cached ਜਾਣਕਾਰੀ ਵਿਚਕਾਰ ਸਭ ਤੋਂ ਲੰਬਾ common prefix ਲੱਭਦਾ ਹੈ ਅਤੇ ਅਣਵਰਤੇ leaves ਨੂੰ ਹਟਾ ਦਿੰਦਾ ਹੈ। ਇਹ ਇੱਕ ਵਿਸ਼ਾਲ system prompt ਨੂੰ GPU memory ਵਿੱਚ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਜਦੋਂ ਕਿ ਸਿਰਫ਼ ਨਵਾਂ turn process ਹੁੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ cache-hit ratio ਵਧਦਾ ਹੈ ਅਤੇ ਵਾਧੂ ਕੰਮ ਘਟਦਾ ਹੈ।
ਕਦੋਂ ਹਰੇਕ engine ਵਧੀਆ ਕੰਮ ਕਰਦਾ ਹੈ
| Scenario | Preferred engine |
|---|---|
| Multi-turn autonomous agents, ਭਾਰੀ tool calling, tree-of-thought reasoning | SGLang (RadixAttention) |
| ਵਿਆਪਕ hardware support (AMD ਅਤੇ Gaudi accelerators ਸਮੇਤ), speculative decoding, vision-language models | vLLM (PagedAttention) |
ਇਹ ਅੰਤਰ ਸਿਰਫ਼ performance ਦਾ ਨਹੀਂ ਹੈ; ਇਹ ecosystem ਬਾਰੇ ਵੀ ਹੈ। vLLM ਦੀ ਵਿਆਪਕ hardware compatibility ਇਸਨੂੰ heterogeneous compute clusters ਵਾਲੀਆਂ ਸੰਸਥਾਵਾਂ ਲਈ ਇੱਕ ਸੁਰੱਖਿਅਤ default ਬਣਾਉਂਦੀ ਹੈ। ਇਸਦੀ speculative decoding feature—ਸਮਾਂਤਰ ਰੂਪ ਵਿੱਚ ਕਈ token candidates ਤਿਆਰ ਕਰਨਾ—single-turn generation ਨੂੰ ਤੇਜ਼ ਕਰ ਸਕਦੀ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਅਜਿਹਾ ਖੇਤਰ ਹੈ ਜਿੱਥੇ RadixAttention ਦੀ tree-based caching ਘੱਟ ਫਾਇਦਾ ਦਿੰਦੀ ਹੈ।
ਨਿਚੋੜ
ਉਹਨਾਂ developers ਲਈ ਜੋ ਲੰਬੇ prompts ਅਤੇ incremental updates ਨੂੰ ਸੰਭਾਲਣ ਵਾਲੇ multi-turn agents ਬਣਾ ਰਹੇ ਹਨ, SGLang ਦਾ RadixAttention consumer GPUs 'ਤੇ ਕਾਫ਼ੀ ਤੇਜ਼ ਅਤੇ ਵਧੇਰੇ cache-efficient ਅਨੁਭਵ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਉਹਨਾਂ ਟੀਮਾਂ ਨੂੰ ਜੋ ਵਿਆਪਕ hardware coverage ਦੀ ਲੋੜ ਰੱਖਦੀਆਂ ਹਨ ਜਾਂ single-turn generation ਵਿੱਚ ਮਾਹਰ ਹਨ, ਉਹ ਅਜੇ ਵੀ vLLM ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀਆਂ ਹਨ। ਹੁਣ ਚੋਣ ਇਸ ਗੱਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ ਕਿ workload “agent-heavy” ਹੈ ਜਾਂ “hardware-diverse.”
