vLLM در پرامپتهای 64K توکنی از SGLang بهتر عمل میکند، اما زمانی که کانتکست در یک سرور 8-GPU B300 به 200K میرسد، SGLang پیشتاز میشود. این تغییر نشان میدهد که با گسترش پنجرههای توکن، گلوگاههای مرحلهی رمزگشایی (decode-stage) و نه مرحلهی پیشپر کردن (prefill)، تعیینکننده عملکرد هستند.
چرا این بنچمارک اهمیت دارد
استنتاج با کانتکست طولانی (Long-context inference)، هزینهی دستیارهای چت، دستیارهای کدنویسی و هر اپلیکیشنی را که باید صدها هزار توکن را در حافظه نگه دارد، بالا میبرد. Kimi-K3، یک مدل با پارامترهای بالا، یکی از اولین مدلهای زبانی بزرگ (LLM) با وزنهای باز (open-weight) است که میتواند بهراحتی چنین پنجرههایی را مدیریت کند، اما موتور اجرایی آن است که تعیین میکند یک درخواست در عرض چند ثانیه تمام شود یا چند دقیقه.
هر دو موتور vLLM و SGLang وعدهی استنتاج با توان عملیاتی (throughput) بالا را میدهند، اما رویکردهای متضادی را در مرحلهی رمزگشایی (decode stage) اتخاذ میکنند. vLLM مسیر رمزگشایی را ساده نگه میدارد و از همگامسازی (synchronization) اضافی که توسط Decode Context Parallelism (DCP) ایجاد میشود، اجتناب میکند. SGLang با استفاده از DCP، خواندن حافظهی نهان کلید-مقدار (KV cache) را بین چندین پردازنده گرافیکی پخش میکند؛ تکنیکی که میتواند پهنای باند حافظه را با هزینه افزایش ارتباطات (communication) بهینه کند.
محیط آزمایش
- سختافزار: یک سرور واحد با هشت پردازنده گرافیکی NVIDIA B300 که هر کدام حافظه یکسانی دارند.
- بار کاری (Workloads): دو تنظیم طول کانتکست – 64K توکن (حد پایین «کانتکست طولانی») و 200K توکن (حد بالای هدف بسیاری از دموهای تحقیقاتی).
- معیارها (Metrics): زمان کل برای پردازش یک دستهی (batch) ثابت از پرامپتها؛ توان عملیاتی از اختلاف زمانی به دست میآید.
ما اندازه دسته (batch size)، وزنهای مدل و اهداف بهرهوری حافظه را ثابت نگه داشتیم. تنها متغیری که بین اجراها تغییر دادیم، موتور استنتاج بود.
اعداد و ارقام
| کانتکست | موتور | زمان (ثانیه) | سرعت نسبی |
|---|---|---|---|
| 64K | vLLM | 100.5 | – |
| SGLang | 150.8 | vLLM ≈ 1.5× سریعتر | |
| 200K | vLLM | 295.2 | – |
| SGLang | 225.3 | SGLang ≈ 1.31× سریعتر |
توان عملیاتی (توکن در ثانیه) برای vLLM با افزایش کانتکست بهشدت کاهش یافت: یک افت 3.29 برابری از 64K به 200K. در مقابل، توان عملیاتی SGLang در همین بازه تنها 1.25 برابر کاهش یافت.
علت این شکاف کجاست؟
هر دو موتور زمان مشابهی را در مرحلهی پیشپر کردن (prefill stage) – یعنی بارگذاری پرامپت در KV cache – صرف میکنند. اختلاف اصلی در مرحلهی رمزگشایی (decode stage) ظاهر میشود، جایی که مدل توکنها را یکی پس از دیگری تولید میکند.
- 64K توکن: ارتباطات بین پردازندههای گرافیکی (inter-GPU) غالب است. مسیر رمزگشایی تکپردازندهای vLLM از همگامسازی اضافی مورد نیاز DCP اجتناب میکند و اجازه میدهد حدود 1.5 برابر سریعتر کار را تمام کند.
- 200K توکن: حافظهی نهان KV cache آنقدر بزرگ میشود که خواندن آن به گلوگاه تبدیل میشود. DCP در SGLang که روی اندازه 8 تنظیم شده است، این خواندنها را بین هر هشت پردازنده گرافیکی توزیع میکند. سود حاصل از پهنای باند بر هزینهی ارتباطات غلبه میکند و برتری آشکاری به SGLang میدهد.
یک مشاهدهی کاربردی و ثانویه مربوط به فشار حافظه است. اجرای هر دو موتور با هدف بهرهوری حافظهی 0.95، باعث بروز خطای کمبود حافظه (OOM) و تلاش مجدد در پردازندههای B300 شد. کاهش این هدف به 0.92، تلاشهای مجدد را حذف و زمانهای اجرا را پایدار کرد، هرچند به قیمت افزایش اندک در تأخیر (latency) تمام شد.
چه کسی برنده و چه کسی بازنده است؟
- توسعهدهندگان با کانتکستهای کوتاه تا متوسط (کمتر یا مساوی 64K توکن) از مسیر رمزگشایی سبک vLLM بهره بیشتری میبرند. سرعت پاسخدهی بالاتر به معنای هزینهی کمتر در محاسبات ابری و تجربهی کاربری سریعتر است.
- تیمهایی که ابزارهای تحلیل عمیق یا تحقیقاتی میسازند و نیاز دارند صدها هزار توکن را در کانتکست نگه دارند، باید به سراغ SGLang با قابلیت DCP فعال بروند. توان عملیاتی پایدارتر آن، ریسک اتمام زمان (time-out) را کاهش داده و با افزایش تقاضای حافظه، بهرهوری GPU را در سطح بالاتری نگه میدارد.
- برنامهریزان سختافزار متوجه میشوند که تعداد خام پردازندههای گرافیکی به تنهایی مقیاسپذیری خطی را تضمین نمیکند. زمانی که پهنای باند KV به گلوگاه تبدیل میشود، معماریهایی که میتوانند خواندن حافظهی نهان را موازیسازی کنند – چه از طریق DCP و چه از طریق ارتقای سیستمهای حافظه در آینده – ارزش بیشتری از همان سختافزار استخراج خواهند کرد.
دیدگاه مقابل: آیا vLLM میتواند این شکاف را پر کند؟
تا زمانی که دادههای جدیدی منتشر نشود، اعداد فعلی بهترین مقایسهی عمومی موجود هستند.
آنچه باید در آینده زیر نظر داشت
- پنجرههای کانتکست بزرگتر فشار بیشتری بر پهنای باند KV وارد خواهند کرد که پتانسیل افزایش فاصله پیشروی SGLang را دارد.
خلاصه کلام
زمانی که نیاز دارید درخواستهای با کانتکست طولانی را در یک کلاستر مبتنی بر B300 پاسخ دهید، موتوری را
