SGLang-এর RadixAttention একটি dual-RTX 3090 রিগ-এ warm-up time-to-first-token কমিয়ে 68 ms-এ নিয়ে এসেছে, যেখানে vLLM-এর PagedAttention 184 ms-এ আটকে ছিল—একটি 82.9 % ল্যাটেন্সি ব্যবধান যা মাল্টি-টার্ন এজেন্ট ইন্টারঅ্যাকশনগুলোকে উল্লেখযোগ্যভাবে আরও মসৃণ করে তোলে।
উভয় প্রজেক্টই লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) ইনফারেন্সের গতি বাড়ানোর চেষ্টা করে, তবে এই বেঞ্চমার্কটি এমন ওয়ার্কলোডকে লক্ষ্য করে যা স্বয়ংক্রিয় অ্যাসিস্ট্যান্টগুলোকে (autonomous assistants) চালিত করে: দীর্ঘ সিস্টেম প্রম্পট, টুল-কলিং স্কিমা এবং ইউজার-অ্যাসিস্ট্যান্ট টার্নের একটি চলমান ইতিহাস। এই পুনরাবৃত্ত টোকেনগুলো GPU মেমরিতে থাকে; যদি ক্যাশ দক্ষতার সাথে পরিচালনা করা না হয়, তবে সেগুলো একটি কম্পিউট বটleneck (compute bottleneck) হয়ে দাঁড়ায় যা কথোপকথনকে ধীর করে দেয়।
যে ওয়ার্কলোডটি পাল্লা ভারী করে দিয়েছে
প্রথাগত LLM সার্ভারগুলো একটি একক বিনিময়ের জন্য অপ্টিমাইজ করা হয়—ইউজার প্রম্পট, মডেলের উত্তর, এবং শেষ। তবে আধুনিক এজেন্টরা একটি “conversation state” বা কথোপকথনের অবস্থা বজায় রাখে যা ডজন ডজন টার্ন পর্যন্ত বিস্তৃত হতে পারে, যেখানে প্রতিটি টার্ন ক্যাশে শত শত টোকেন যোগ করে। টেস্ট স্যুটটি দুটি RTX 3090 কার্ডে এই ধরনের একটি মাল্টি-টার্ন লুপ পুনরায় চালনা করেছে এবং পরিমাপ করেছে:
- Warm time-to-first-token (TTFT) – একটি নতুন টার্ন শুরু হওয়ার পরে প্রথম টোকেনটি প্রদর্শিত হওয়ার আগের বিলম্ব।
- Overall latency – পুরো লুপ জুড়ে প্রতি টোকেনের গড় সময়।
- Sustained throughput – লুপটি নিরবচ্ছিন্নভাবে চলার সময় প্রতি সেকেন্ডে প্রসেস করা টোকেন সংখ্যা।
- Cache-hit ratio – পুনরায় গণনা (recompute) করার পরিবর্তে key-value (KV) ক্যাশ থেকে পুনরায় ব্যবহার করা টোকেনগুলোর অনুপাত।
SGLang প্রতিটি মেট্রিকেই vLLM-কে হারিয়ে দিয়েছে: 68 ms বনাম 184 ms TTFT, 82.9 % ল্যাটেন্সি হ্রাস, 39.8 % বেশি থ্রুপুট এবং vLLM-এর 84.2 %-এর তুলনায় 96.8 % ক্যাশ-হিট রেশিও।
PagedAttention বনাম RadixAttention
উভয় ইঞ্জিনই ইন্টারমিডিয়েট KV পেয়ারগুলো GPU মেমরিতে সংরক্ষণ করে, তবে তারা সেই মেমরিকে ভিন্নভাবে সাজায়।
- PagedAttention (vLLM) ক্যাশকে নির্দিষ্ট আকারের ব্লকে বিভক্ত করে। যদি একটি প্রম্পট ব্লকের মাঝপথে শেষ হয়, তবে পরবর্তী টোকেনগুলোকে প্রতি টার্নে পুনরায় গণনা করতে হয় কারণ ব্লকটিকে আংশিকভাবে পুনরায় ব্যবহার করা যায় না। এই পদ্ধতিটি সহজ এবং প্রম্পটগুলো যখন ব্লকের সীমানার সাথে মিলে যায় তখন এটি কার্যকর হয়, কিন্তু এটি সেই “edge” টোকেনগুলোর ওপর সাইকেল নষ্ট করে যা এজেন্ট লুপে সবচেয়ে বেশি পরিবর্তিত হয়।
- RadixAttention (SGLang) ক্যাশকে একটি ট্রি (tree) হিসেবে বিবেচনা করে। এটি ব্লকের সীমাবদ্ধতা নির্বিশেষে বর্তমান প্রম্পট এবং ইতিমধ্যে ক্যাশ করা তথ্যের মধ্যে দীর্ঘতম সাধারণ প্রিফিক্স (longest common prefix) খুঁজে বের করে এবং অব্যবহৃত লিফ (leaves) গুলো ছেঁটে ফেলে। এটি একটি বিশাল সিস্টেম প্রম্পটকে GPU মেমরিতে স্থির রাখতে সাহায্য করে যেখানে শুধুমাত্র নতুন টার্নটি প্রসেস করা হয়, যা ক্যাশ-হিট রেশিও বাড়ায় এবং অতিরিক্ত কাজ কমায়।
কখন কোন ইঞ্জিনটি সেরা পারফর্ম করে
| Scenario | Preferred engine |
|---|---|
| মাল্টি-টার্ন স্বয়ংক্রিয় এজেন্ট, ভারী টুল কলিং, tree-of-thought রিজনিং | SGLang (RadixAttention) |
| বিস্তৃত হার্ডওয়্যার সাপোর্ট (AMD এবং Gaudi অ্যাক্সিলারেটরসহ), speculative decoding, vision-language মডেল | vLLM (PagedAttention) |
এই পার্থক্যটি কেবল পারফরম্যান্সের নয়; এটি ইকোসিস্টেমের সাথেও সম্পর্কিত। vLLM-এর বিস্তৃত হার্ডওয়্যার সামঞ্জস্যতা এটিকে হেটেরোজিনিয়াস (heterogeneous) কম্পিউট ক্লাস্টার থাকা সংস্থাগুলোর জন্য একটি নিরাপদ ডিফল্ট হিসেবে তৈরি করে। এর speculative decoding ফিচার—যা সমান্তরালভাবে একাধিক টোকেন ক্যান্ডিডেট তৈরি করতে পারে—সিঙ্গেল-টার্ন জেনারেশনকে ত্বরান্বিত করতে পারে, যা এমন একটি ক্ষেত্র যেখানে RadixAttention-এর ট্রি-ভিত্তিক ক্যাশিং খুব একটা সুবিধা দিতে পারে না।
মূল কথা
যারা দীর্ঘ প্রম্পট এবং ইনক্রিমেন্টাল আপডেট নিয়ে কাজ করা মাল্টি-টার্ন এজেন্ট তৈরি করছেন, সেই ডেভেলপারদের জন্য SGLang-এর RadixAttention কনজিউমার GPU-তে উল্লেখযোগ্যভাবে দ্রুত এবং আরও ক্যাশ-দক্ষ অভিজ্ঞতা প্রদান করে। যে দলগুলোর বিস্তৃত হার্ডওয়্যার কভারেজ প্রয়োজন বা যারা সিঙ্গেল-টার্ন জেনারেশনে বিশেষজ্ঞ, তারা এখনও vLLM-এর ওপর নির্ভর করতে পারেন। এখন পছন্দটি নির্ভর করছে ওয়ার্কলোডটি “agent-heavy” নাকি “hardware-diverse” তার ওপর।
