اگر امروز برای استقرار مدلهای زبانی با محدودیت حافظه GPU یا تأخیر در پاسخدهی دستوپنجه نرم میکنید، نسخه جدید vLLM دقیقاً برای حل همین نقاط کور طراحی شده است. این بهروزرسانی، مرز بین مدلهای پژوهشی و استقرار تجاری را با بهینهسازیهای سختافزاری سختگیرانه جابهجا میکند.
طبق اعلام تیم توسعه در ۲۹ اوت ۲۰۲۶، نسخه ۰.۲۸.0 حاصل ۵۸۴ کامیت از ۲۷۰ مشارکتکننده است که شامل ۷۶ عضو جدید میشود. این حجم از مشارکت نشاندهنده مقیاس عظیم این بهروزرسانی است که نحوه مدیریت حافظه و محاسبات را برای نسل جدید مدلهای پراکنده (Sparse) و ترکیب خبرهها (MoE) بهطور بنیادین تغییر میدهد. برای توسعهدهندگانی که از vLLM استفاده میکنند، اجرای مدلهای با توان عملیاتی بالا اکنون بهطور قابلتوجهی ارزانتر و سریعتر شده است.
برای اکثر برنامهنویسان، گلوگاه اصلی دیگر فقط قدرت پردازش خام نیست، بلکه «دیوار حافظه» و تأخیر در تولید اولین توکن است. vLLM — که مثل یک مدیر ترافیک هوشمند، درخواستها را بهگونهای در صف میچیند که هیچ بخشی از GPU بیکار نماند — مدتها استاندارد صنعت برای سرویسدهی با توان عملیاتی بالا بوده است. اما با ظهور معماریهای پیچیدهای مثل توجه نهان چندسر (MLA) در مدلهای DeepSeek و Kimi، کل پشته سرویسدهی باید بازنویسی میشد تا با این سرعت پیشرفت همگام شود.
Kimi-K3: فشار برای افزایش عملکرد
مرکز ثقل این انتشار، تلاشهای جامع برای بهینهسازی مدل Kimi-K3 است. تیم توسعه برای سادهسازی جابهجایی دادهها، پشتیبانی از موازیسازی بستر رمزگشایی (DCP) را در کامیت #50484 پیادهسازی کرد و هستههای رمزگشایی و پیشپُرکردن FlashKDA را در کامیتهای #50654، #51311 و #52458 ادغام نمود.
برای تقویت بیشتر عملکرد، این بهروزرسانی پشتیبانی از فعالساز SiTU را برای MegaMoE (#50510) و GEMM-RS را برای موازیسازی توالی (#52079) معرفی میکند. همچنین، عملیات combined all-gathers اکنون باعث افزایش سرعت در سطح هسته (Kernel-level) بین ۱.۵ تا ۳ برابر شده است (#51070).
یکی از تاثیرگذارترین تغییرات، معرفی بودجه تطبیقی برای توکنهای گمانهزنانه است. به نقل از یادداشتهای انتشار vLLM در گیتهاب، این مکانیسم زمان تا نخستین توکن (TTFT) را در DSpark حدود ۶۰٪ بهبود بخشیده است (#51725)؛ این یعنی تأخیر محسوس برای کاربر نهایی بهشدت کاهش یافته است.
بهرهوری حافظه نیز پیروزی بزرگی را تجربه کرد. قابلیت اختیاری شاردینگ خبرههای مشترک (Shared-expert sharding) اکنون حدود ۱۷ گیگابایت از حافظه هر GPU را ذخیره میکند (#50912)، که اجازه میدهد اندازه دستهها (Batch size) بزرگتر شود یا از سختافزارهای کوچکتر استفاده شود. علاوه بر این، Kimi-K3 اکنون از طریق V2 model runner روی ROCm قابل اجرا است (#51653).
DeepSeek V4 و MLA پراکنده
پشتیبانی از DeepSeek V4 به سطح جدیدی از بلوغ رسیده است. MLA پراکنده (Multi-head Latent Attention) اکنون بهطور سرتاسری در رمزگشایی ساده، MTP و رمزگشایی گمانهزنانه DSpark کار میکند (#51538).
سازگاری سختافزاری برای کاربران DeepSeek بهطور قابلتوجهی گسترش یافته است:
- پشتیبانی از AMD Quark NVFP4 اکنون ادغام شده است (#47972).
- فعالسازی ROCm برای معماریهای gfx11 و gfx950 عملی شده است (#47017, #52212).
- این نسخه شامل بهینهسازیهای هسته متادیتای top-k پراکنده (#52084, #51967) و محدود کردن نواحی eager CUDA graph (#51430, #52401) برای کاهش سربار است.
- پرامپتها و نگاشتهای جدیدی برای مدیریت تلاش استدلالی (Reasoning-effort) اضافه شد (#50580).
Model Runner V2 و رمزگشایی گمانهزنانه
Model Runner V2 اکنون به یک موتور آماده برای محیط تولید تبدیل شده است. این ابزار از جداسازی رمزگذار/پیشپُرکردن/رمزگشایی (E/P/D) پشتیبانی میکند (#38390). این قابلیت به تیمها اجازه میدهد مرحله سنگین پیشپُرکردن (Prefill) را از مرحله تولید توکنبهتوکن در خوشههای سختافزاری مجزا مدیریت کنند.
سایر بهبودهای Model Runner V2 عبارتند از:
- تخلیه وزنها (Weight offloading) (#51413) و پشتیبانی از KV cache چندلایه MTP (#50062).
- گرافهای CUDA برای رمزگذار (#49852) و pooling توکن-محور برای رمزگشا (#50931).
- پشتیبانی از مدلهای pooling ترنسفورمرز (#52425)، مدلهای بدون توجه (Attention-free) (#52374) و بودجه توکنهای تفکر (
thinking_token_budget) (#46727).
در بخش رمزگشایی گمانهزنانه (Speculative decoding) — فرآیندی که در آن یک مدل کوچکتر و سریعتر، توکنها را پیشبینی میکند تا مدل بزرگتر فقط آنها را تأیید کند — سه ارتقای کلیدی رخ داده است:
۱. DFlash2 اکنون شامل کانولوشن محلی و یک انتخابگر کاندید است (#52816).
۲. DSpark از تأیید زمانبندیشده بر اساس اطمینان (#47808) و تصویرسازی مارکوف top-k (#49969) برای کاهش محاسبات هدر رفته استفاده میکند.
۳. زمانبندی نامتقارن (Async scheduling) برای مدلهای پیشنویس بهطور خودکار فعال شده است (#48341)، که یک مانع پیکربندی دستی را برای توسعهدهندگان حذف میکند.
سایر بهبودهای هسته موتور شامل all-reduce دنباله MTP ادغامشده با توکنهای پیشنویس local-argmax (#49793) و یک بودجه تطبیقی برای توکنهای ورودی زمانبندیشده گمانهزنانه است (#51725).
KV Cache لایهای و مدیریت حافظه
برای مدیریت پنجرههای متنی عظیم بدون کرش کردن GPUها، vLLM v0.28.0 سیستم تخلیه حافظه KV Cache لایهای (Tiered KV cache offloading) را معرفی کرده است. این سیستم اجازه میدهد دادههای کمکاربرد از حافظه GPU به رم CPU و در نهایت به دیسک منتقل شوند.
جزئیات فنی این سیستم عبارتند از:
- تخلیه به دیسک: اکنون برای
SimpleCPUOffloadConnectorپشتیبانی میشود (#49644). - مدیران لایه ثانویه: مدیران خارج از درخت (Out-of-tree) اکنون از طریق
module_pathدر دسترس هستند (#51007) و از نتایج بارگذاری جزئی لایه ثانویه پشتیبانی میکنند (#50321). - متریکها: متریکهای جدید تخلیه لایهای (#48798) دید لازم را برای مشاهده نرخ برخورد (Hit) و خطا (Miss) در حافظه پنهان فراهم میکند.
- توپولوژی: توپولوژی موازیسازی دادهها اکنون به بکاندهای تخلیه حافظه نمایش داده میشود (#51879).
این سیستم توسط یک چیدمان استاندارد CPU جدید پشتیبانی میشود که نسبت به استراتژی موازیسازی مورد استفاده، مستقل است (#48414). همچنین سیستم از اخراج دستهای ARC درجه دوم (Quadratic) جلوگیری میکند (#50992).
دستاوردهای سختافزاری خاص
کاربران NVIDIA از پشتیبانی FlashInfer XQA در SM12x (#49718) و هسته پرسوجوی ادغامشده CuTeDSL در SM100 (#49792) بهرهمند میشوند. این نسخه قابلیت launch وابسته برنامهریزیشده برای هستههای رمزگشایی DSA (#50230) و یک مسیر رمزگشایی DSA بومی برای MTP=3 در SM90 را اضافه کرده است (#52164). برای معماری Blackwell، پیشفرض ضبط گراف CUDA به ۱۰۲۴ افزایش یافته است (#49390) و پیکربندیهای تنظیم FP8 برای fused-MoE در GB10 گنجانده شده است (#52502). همچنین بکاندهای خطی متراکم B12X اکنون پشتیبانی میشوند (#52016).
کاربران AMD ROCm شاهد ارتقای پشته به torch 2.12 و triton 3.7 هستند (#50607). استنتاج AITER و FP8 اکنون روی GFX120x فعال شده است (#43615) و هسته رمزگشایی KDA ادغامشده برای Kimi-K3 اضافه شده است (#50654). سایر دستاوردهای ROCm شامل یک GEMM روتر ادغامشده bf16→fp32 (#50268)، حافظه پینشده برای هستههای پشتیبانیشده WSL2 (#50126) و ایندکسگذاری پراکنده پیش-شافل برای بلوکهای ۱۶ توکنی است (#51216).
پشتیبانی از Intel XPU اکنون شامل بکانند خطی torch با GEMM بلوکی (#49664, #50826) و وزنهای خطی MXFP8 مخصوص مدل INC DeepSeek V4 است (#48476). این نسخه همچنین پخش توکنهای نمونهبرداری شده PP با زمانبندی نامتقارن را که با محاسبات همپوشانی دارد، اضافه کرده است (#51650) و پیکربندیهای Mamba SSU را برای Arc Pro B70 بهینه نموده است (#50534). همچنین اصلاحات تخلیه وزن UVA پیادهسازی شده است (#51770).
پشتیبانی از CPU با یک بکانند MLA گسترش یافته که اجازه میدهد DeepSeek-V2/V3 روی پردازنده مرکزی اجرا شوند (#49453). این بهروزرسانی یک ویل triton-cpu اضافه کرده (#52092) و GPTQ و AWQ را روی s390x در کنار tcmalloc فعال نموده است (#51148, #50841). برای پردازندههای Power (VSX)، یک بکانند MoE غیرکوانتیده در دسترس است (#51624). این MoE غیرکوانتیده به ساختار خبرههای هسته-مدولار منتقل شده است (#50133) و مقیاس بلوکی MXFP4 اکنون به جای ۴ دستورالعمل، در ۲ دستورالعمل ادغام شده است (#51583).
پشتیبانی از مدلها و بهروزرسانیهای چندوجهی
این انتشار چندین مدل جدید را معرفی میکند:
- Muse Glimmer (#51655) و Interns2mobius (#51149).
- Ling 3.0 Flash: پشتیبانی از BF16، MTP و پارسر (#51045)، یک نسخه FP8 (#51265) و خبرههای مسیریابی شده ترکیبی MXFP4 (#52114).
- Dots3 NOTE: پشتیبانی بومی از قابلیتهای چندوجهی (Multimodal) (#51255).
برای Qwen، مدل Qwen3.8 اکنون روی AMD ROCm فعال است (#50068). این بهروزرسانی یک هسته رمزگشایی MTP پس از کانولوشن ادغامشده CUDA برای Qwen3.5 GDN اضافه کرده (#51674) و گیتهای GDN را با توکنهای گمانهزنانه همراستا کرده است (#51812). همچنین اصلاحاتی برای چکپوینتهای فقط-متنی Qwen3.5 اعمال شد (#50734, #50355).
عملکرد چندوجهی از طریق نرمالسازی پیشپردازش ادغامشده روی دستگاه (#50411)، اسکن سریعتر جایگاهها (Placeholder) و تطبیق توکنها (#50716) و حذف اسکنهای تکراری بهروزرسانی پرامپت (#51774) بهبود یافته است.
جزئیات بینایی و MoE
بهروزرسانیهای رمزگذار بینایی شامل گرافهای کامل CUDA برای ViT در Kimi-K2.5 (#50929) و Ernie-4.5-VL (#45254, #51461) و استفاده از torch.compile برای رمزگذار Qwen3-VL است (#40116). همچنین از کپیهای طولانی H2D در ViT اجتناب شده است (#51841).
قابلیتهای ترکیب خبرهها (MoE) عمیقتر شده است:
- گسترش پشتیبانی EPLB برای Mistral Large 3 و سایر بکاندهای MoE (#48355).
- گسترش CuTe DSL skinny GEMM به GLM-5.2 (#49791).
- اصلاحات صحت برای استنتاج NVFP4 در MiniMax-M3 (#48929) و پارامترهای SwiGLU در MoE FP8 برای compressed-tensors (#46845).
هسته موتور و زمانبندی
فراتر از رمزگشایی گمانهزنانه، هسته موتور بازبینیهای قابلتوجهی داشته است:
- KV Cache و زمانبندی: زمانبندی هر-درخواست برای MLA با بستر تکهبندی شده (#50613) و استفاده مجدد از پیشوند با تطبیق دقیق (#50507). ترتیب استفاده مجدد بلوکهای آزاد LIFO در زمانی که کش پیشوند خاموش است، بازگردانده شد (#51482).
- عملکرد: حذف مداوم همگامسازیهای GPU<->CPU در مسیر اجرا (#51458, #51738, #52369) که اکنون توسط یک بررسی همگامسازی CI محافظت میشود (#43107). یک زیرساخت گرمکردن (Warmup) JIT جدید با فیلترینگ پیشگزیده اضافه شد (#49315).
- نمونهگیری: نمونهگیر Triton top-k/top-p اکنون با ۸ وارپ اجرا میشود (#51507).
- Mamba/Hybrid: کش پیشوند اکنون بهطور پیشفرض فعال است (#50991). بازسازی ماژول توجه Mamba کامل شده است (#44857) و دارای کاشیکاری شبکه سه-بعدی برای هستههای Triton کپی-وضعیت است (#49436).
RL و پایداری راهاندازی
برای جریانهای کاری یادگیری تقویتی (RL)، vLLM اکنون از ارسال وضعیت Trainer روی NCCL و NCCL پراکنده پشتیبانی میکند (#50902). همچنین CuMemAllocator.discard() برای آزادسازی انتخابی حافظه GPU معرفی شده است (#52514) و مشکل خواب/بیدار/بارگذاری مجدد سطح ۲ در زمان فعال بودن LoRA برطرف شده است (#39935).
پایداری راهاندازی با معرفی rendezvous از طریق file:// برای اجراکنندههای تکگره بهبود یافت تا رقابت روی پورتها (Port races) حذف شود (#50999, #51652). همچنین فرآیندهای فرانتاند در طول راهاندازی موتور تحت نظارت هستند (#43417) و NVML دیگر در هر بررسی قابلیت دستگاه، مجدداً مقداردهی اولیه نمیشود (#50393).
کوانتش و سرویسدهی در مقیاس بزرگ
کوانتش اکنون شامل پشتیبانی آنلاین از MXFP4 (#49347) و مقیاسهای وزن آنلاین مشترک در TP است (#49764). پشتیبانی NVFP4 با MoE بدون تغییر در دسته (Batch-invariant) از طریق CUTLASS گسترش یافت (#40372) و جستجوی مقیاس 4-over-6 برای KV اضافه شد (#45187).
برای سرویسدهی در مقیاس بزرگ، جداسازی E/P/D بازبینی شد:
- پیشپردازش تصاویر تکراری از طریق پیشپردازش سمت GPU حذف شد (#50390).
- مصرفکنندگان KV اکنون میتوانند از جاسازیهای (Embeddings) چندوجهی صرفنظر کنند (#52697).
- درخواستهای نمونه رمزگذار تا زمان رمزگذاری تصاویر زنده میمانند (#50275).
پشتیبانی از Mooncake اکنون شامل معناشناسی گروه ذخیرهسازی (#44956)، پشتیبانی از شناسهی مستاجر (Tenant ID) (#48069) و ویلهای رسمی در ایمیج داکر است (#51067).
API، فرانتاند و امنیت
فرانتاند با معرفی یک فرانتاند مبتنی بر Rust با رندرکننده مستقل دچار تحول شده است (#50289). این تغییر شامل استنتاج چندوجهی تصاویر از طریق gRPC (#50368) و مسیریابی صریح رنک موازیسازی دادههاست (#51178). همچنین کنترل چرخه حیات RL (#51316) و ابزارهای پویا از پیامهای توسعهدهنده (#51144) اضافه شده است. طرحهای Protobuf اکنون در Buf منتشر میشوند (#51276).
بهبودهای API عبارتند از:
- تحلیل اولویت درخواست از هدرهای HTTP (#51089).
- افزودن
count_reasoning_tokensدر موتور تجزیهکننده استریم (#45802). - افزودن
content_partsدر مسیر/inference/v1/generate(#51478). - بهبود خروجیهای ساختاریافته با ماسک کردن توکن توقف xgrammar (#49227, #50595) و رد بایتهای NUL در regex (#51796).
در حوزه امنیت، یک آسیبپذیری DoS مربوط به جعل نرخ نمونهبرداری که حفاظهای مدتزمان رمزگشایی صوتی را دور میزد، برطرف شد (#49948). این محدودیت اکنون در NanoNemotronVL نیز اعمال میشود (#50221). DeepStream اکنون به عنوان یک بکانند GPU طبقهبندی شده و محدودیتهای پیکسل در آن اعمال میشود (#50755).
تغییرات ساختاری و پیشفرضهای جدید
کاربران باید به چندین تغییر ساختاری (Breaking Changes) توجه کنند. پشتیبانی از bitsandbytes به یک پلاگین خارجی منتقل شد (#43529) و وابستگی Transformers به نسخه ۵.۱۵.۰ ارتقا یافت (#51668).
سایر موارد حذف شده عبارتند از:
- محاسبات زمان اجرای
calculate_kv_scalesکه منسوخ شده بود (#49389). - قابلیت
override_attention_dtype(#48684). - کدهای قدیمی MoE (#51078).
- حذف خروجی
reasoning_contentاکنون به عنوان یک تغییر ساختاری برای کلاینت مستند شده است (#50624).
در تنظیمات، مقدار max_num_batched_tokens برای پذیرش بارهای کاری بزرگتر، از ۸۱۹۲ به ۱۶۳۸۴ افزایش یافت (#51726). همچنین پیشپُرکردن حافظه پنهان (Prefix caching) برای مدلهای Mamba بهطور پیشفرض فعال شد (#50991).
این نسخه نشاندهنده چرخش vLLM به سمت سرویسدهی «سختافزار-آگاه» است. با بهینهسازی برای معماریهای خاص GPU (مانند SM12x یا GFX120x) و پیادهسازی لایههای حافظه پیچیده، vLLM از رویکرد «یک اندازه برای همه» فاصله گرفته و به سمت استراتژی بهینهسازی اختصاصی برای هر مدل حرکت میکند.
برای کاربر نهایی، این یعنی فاصله بین مدلهای پژوهشی و مدلهای عملیاتی در حال بسته شدن است. توانایی اجرای DeepSeek V4 یا Kimi-K3 با ۶۰٪ سرعت بیشتر در TTFT و مصرف VRAM کمتر، این مدلهای استدلالی را برای برنامههای بلادرنگ (Real-time) کاربردی میکند.
برای شروع، میتوانید ایمیجهای داکر جدید (مانند vllm/vllm-openai:v0.28.0 یا vllm/vllm-openai-rocm:v0.28.0) را دریافت کنید یا از طریق pip و ویلهای CUDA 13.0 نصب نمایید.
گام بعدی شما
- اگر از مدلهای DeepSeek یا Kimi استفاده میکنید، فوراً به نسخه ۰.۲۸.۰ ارتقا دهید تا کاهش ۶۰ درصدی تأخیر TTFT را تجربه کنید.
- تنظیمات
max_num_batched_tokensرا برای بارهای کاری سنگین بررسی کنید تا از ظرفیت جدید ۱۶۳۸۴ توکن بهره ببرید. - در صورت محدودیت VRAM، قابلیت Shared-expert sharding را فعال کنید تا حدود ۱۷ گیگابایت حافظه آزاد شود.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell و بهینهسازیهای CUDA در vLLM مراجعه کنید.




گفتگو