Sglang vs Llama.cpp – تست سریع سرعت

به تازگی ، من به پستی در مورد Sglang ، یک موتور استنتاج منبع باز LLM که دارای توان 2-5 برابر بالاتر در مقایسه با سایر راه حل ها و سرعت 1.76x برای مدل های DeepSeek R1 است ، گیر افتادم!
“من حتی با سرعت متوسط 1.5 برابر با تنظیم LM Studio/Llama.cpp بسیار خوشحال خواهم شد!” اولین واکنش من بود …
نگاهی دقیق تر
درست مانند Llama.cpp ، Sglang معلوم شد که یک سطح بسیار پایین است … من به طور معمول از استودیو LM (و برخی از آنها را با Ollama صرف کردم) برای اجرای مدل های محلی استفاده می کنم. آنها بسیار راحت هستند و به حداقل تنظیمات نیاز دارند – فقط در چند دقیقه و چند کلیک که می توانید مدل ها را کشف ، بارگیری و اجرا کنید. هر دو یک روش آسان برای گپ زدن ارائه می دهند و می توانند نقاط پایانی چت محلی OpenAI را اجرا کنند ، که برای ادغام با ابزارهای مختلف مفید است (به عنوان مثال با استفاده از UI وب محلی یا آزمایش با عوامل AI).
Sglang متفاوت است ، برای علاقه مندان به LLM ایجاد نشده است تا مدل ها را روی سکوهای خانگی خود اجرا کنند. من تحقیقات خود را با جستجوی راه حل های Ollama/Jan-Like ، ایده آل با GUI (به عنوان مثال LM Studio) که می تواند Sglang را به عنوان یک زمان اجرا ادغام کند ، شروع کردم ، اما من چیزی پیدا نکردم.
از این رو من دو ساعت را برای پیکربندی WSL2 و نصب SGLANG قبل از دریافت اولین نشانه های تولید شده خود گذراندم:
من ذکر صریح سیستم عامل های پشتیبانی شده را پیدا نکردم ، به نظر می رسد که فقط لینوکس است ، من از WSL (اوبونتو 24) در ویندوز استفاده کردم.
بدون UI چت (حتی از طریق CLI) ، فقط سرور استنتاج OpenAI
بارگیری پشتیبانی .safetensors
مدل هایی از Hugginface (اگرچه باید پیکربندی کنید huggingface-cli
برای اولین بار وارد سیستم شوید تا مدل هایی مانند Llama یا Gemma را بدست آورید)
علاوه بر فرمت مدل HF ، پشتیبانی محدودی برای GGUF دارد ، یعنی مدل هایی که ممکن است بارگیری کرده اید را می توان امتحان کرد. برای من llama 3.1 8b بارگیری شد ، Gemma 2 9b شکست خورد (@q8 و q4)
از تعیین کمیت آنلاین پس از بارگیری یک مدل پشتیبانی می کند
آن را از طریق یک UI وب سفارشی که مجبور شدم به طور جداگانه اجرا کنم ، آزمایش کردم. در هر پیشخوان یک نشانه وجود دارد.
اگر می خواهید خودتان Sglang را امتحان کنید ، من هنگام تنظیم آن و معیار در اینجا یادداشت های خود را گردآوری کرده ام.
نتایج
من سرعت استنباط را با Gemma 2 9B آزمایش کرده ام. SGLANG از مدلی از HF HUB Google در قالب SafeTensors ، LM Studio – Model GGUF از LMStudio HF Hub استفاده کرد. هر دو مدل در انواع 16 بیتی و 8 بیتی مورد آزمایش قرار گرفتند. هر دو از CUDA Backend ، RTX 4090 100 ٪ GPU Off-Load استفاده کردند.
زمان اجرا | میزان سازی | ورم | زمان بار | سرعت |
---|---|---|---|---|
سلاگ | fp8 | 21.1 گیگابایت | 4-5 دقیقه | 70 tok/s |
استودیوی LM | q8 | 12.6 گیگابایت | 10 ثانیه | 65 tok/s |
سلاگ | BF16 | 20.7 گیگابایت | 4-5 دقیقه | ~ 47 tok/s |
استودیوی LM | F16 | 20.7 گیگابایت | 20 ثانیه | ~ 44 tok/s |
با SGLANG تقریباً 7 ٪ سرعت تولید سریعتر در نشانه ها در ثانیه وجود دارد. با این حال ، Sglang در حال بارگیری بسیار آهسته مدل ها است و چند دقیقه در مقایسه با ثانیه با Llama.cpp طول می کشد. علاوه بر این برخی از رفتارهای عجیب و غریب از نظر مصرف VRAM وجود دارد ، بارگیری مدل در قالب کمیت FP8 (انجام کمیت آنلاین) مصرف حافظه SGLANG بالا رفت – بارگیری مدل های بزرگتر ممکن است یک چالش باشد.
چسبیدن به llama.cpp
IMO برای LLM محلی که تفاوت حاشیه ای در سرعت نسل را ندارد ، ارزش هیچ دردسر را ندارد – نصب دردناک ، کشف مدل مشکل دار و بارگیری ، زمان بار طولانی تر و مصرف VRAM عجیب و غریب. اگرچه SGLANG ممکن است گزینه خوبی برای محیط های تولید چند کاربره باشد که به طور همزمان درخواست های متعدد را ارائه می دهند.