برنامه نویسی

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 ممکن است گزینه خوبی برای محیط های تولید چند کاربره باشد که به طور همزمان درخواست های متعدد را ارائه می دهند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا