متن‌باز

FreeToken مدل‌های عظیم MoE را روی GPUهای مصرفی اجرا می‌کند

FreeToken، یک سیستم متن‌باز جدید برای سروینگ مدل‌های Mixture-of-Experts، تلاش می‌کند بخشی از workloadهای هوش مصنوعی را که معمولاً به زیرساخت دیتاسنتری نیاز دارند روی سخت‌افزارهای مصرفی و workstation اجرا کند. پژوهشگران در مقاله‌ای که در arXiv منتشر شده، یک runtime بومی لبه را توصیف می‌کنند که حافظه GPU، حافظه میزبان، اجرای CPU و پهنای باند PCIe را به‌عنوان یک پلتفرم استنتاجی یکپارچه و الاستیک در نظر می‌گیرد، نه اینکه استنتاج محلی را صرفاً نسخه کوچک‌تری از سروینگ تماماً مبتنی بر GPU بداند.

ادعای اصلی فقط این نیست که می‌توان مدل‌های بسیار بزرگ را از نظر فنی روی یک کامپیوتر شخصی بارگذاری کرد. FreeToken برای قابل استفاده کردن این مدل‌ها در workloadهای واقعی agentic طراحی شده است؛ جایی که promptهای طولانی، فراخوانی‌های مکرر ابزار و contextهای در حال تغییر، stack سروینگ را بسیار متفاوت از یک benchmark تک‌مرحله‌ای تحت فشار می‌گذارند. نویسندگان سیستم را با coding agentها، Claude Code، OpenCode، OpenClaw و workloadهای استدلال ریاضی ارزیابی کرده‌اند و آن را با llama.cpp، Ollama، KTransformers و MoE-Infinity مقایسه می‌کنند.

مدل‌های Mixture-of-Experts فرصت اصلی را ایجاد می‌کنند. یک مدل می‌تواند صدها میلیارد پارامتر در مجموع داشته باشد، اما برای هر token تنها بخش کوچکی از expertها را فعال کند. DeepSeek-V4-Flash، برای مثال، expert pool کامل بسیار بزرگ‌تری نسبت به تعداد پارامترهای فعالی دارد که برای یک token استفاده می‌شوند. این sparsity باعث می‌شود محاسبه فعال روی یک GPU مصرفی قدرتمند قابل انجام باشد، اما وزن کامل expertها همچنان می‌تواند بسیار بیشتر از ظرفیت VRAM باشد. مسئله سیستمی این است که expertهای غایب چگونه منتقل، cache یا روی CPU اجرا شوند بدون اینکه ترافیک حافظه به گلوگاهی غیرقابل استفاده تبدیل شود.

FreeToken این مشکل را با اجرای bandwidth-adaptive هدف می‌گیرد. در مرحله prefill، جابه‌جایی expertها را double-buffer می‌کند تا در زمانی که GPU لایه فعلی را محاسبه می‌کند، expertهای لایه بعدی از طریق PCIe منتقل شوند. در مرحله decode، runtime به‌صورت پویا cache missها را میان دو مسیر تقسیم می‌کند: انتقال expert به حافظه GPU و اجرای بخشی از عملیات expert مستقیماً روی CPU. این تقسیم بر اساس پهنای باند واقعی PCIe و host memory همان دستگاه تنظیم می‌شود، نه بر پایه یک سیاست ثابت از قبل تعیین‌شده.

سیستم برای workloadهای agentic یک لایه semantic-aware caching نیز اضافه می‌کند. Tool callها و سیستم‌های reasoning اغلب context را در مرزهای معنایی مشخص تغییر می‌دهند و همیشه یک گفت‌وگوی خطی را بدون تغییر ادامه نمی‌دهند. FreeToken در این مرزها checkpointهای recurrent state نگه می‌دارد تا پس از یک تغییر، فقط suffix جدید دوباره محاسبه شود. در decode نیز از یک shared LRU expert cache استفاده می‌کند که از هم‌پوشانی مسیر expertها میان tokenهای مجاور بهره می‌برد. هدف این دو مکانیزم کاهش همزمان recomputation در prefill و جابه‌جایی مکرر expertها است.

بخش سوم معماری، elastic memory management است. GPUهای مصرفی معمولاً یک appliance اختصاصی برای inference نیستند و در همان زمان browser، ابزارهای توسعه یا برنامه‌های دیگر نیز از VRAM استفاده می‌کنند. FreeToken می‌تواند اندازه GPU expert cache را تغییر دهد و بودجه حافظه را بدون restart کردن engine یا بارگذاری مجدد expert pool مقیم در host rebalance کند. مخزن منتشرشده پروژه پشتیبانی از GPUهای NVIDIA RTX سری 30، 40 و 50، APIهای سازگار با OpenAI و Anthropic و بیش از 20 مدل MoE را توضیح می‌دهد.

نتایج اصلی مقاله قابل توجه‌اند. روی RTX 5090، نویسندگان برای Qwen3.6-35B-A3B سرعت 77 تا 83 token در ثانیه و برای DeepSeek-V4-Flash سرعت 22 تا 25 token در ثانیه را در چهار workload گزارش می‌کنند. طبق مقاله، throughput مدل Qwen3.6 نسبت به قوی‌ترین baseline بین 1.8 تا 2.3 برابر و برای DeepSeek-V4-Flash بین 1.5 تا 1.9 برابر بالاتر است. با agenticتر شدن workloadها، نرخ decode FreeToken در محدوده 12 درصدی نتیجه single-turn باقی می‌ماند، در حالی که برخی سیستم‌های رقیب افت بیشتری نشان می‌دهند.

Latency نیز بخش مهمی از ارزیابی است. نویسندگان گزارش می‌کنند که بدترین time to first token مشاهده‌شده برای FreeToken در همه workloadهای تست‌شده کمتر از 44 ثانیه باقی می‌ماند، در حالی که هر baseline دست‌کم در یک مورد از 150 ثانیه عبور می‌کند. این تفاوت برای نرم‌افزارهای agent مهم است، چون prefill بسیار کند می‌تواند از یک مسئله performance به یک مشکل timeout یا reliability تبدیل شود. مقاله tail latency را صریحاً به‌عنوان یک مرز availability برای clientهای واقعی مطرح می‌کند.

نتایج cross-hardware دلیل اصلی جذابیت FreeToken برای local AI هستند. نویسندگان گزارش می‌کنند یک مدل 35B روی لپ‌تاپ مجهز به RTX 4060 با 8 گیگابایت VRAM با سرعت 39.3 token در ثانیه سرو می‌شود. روی یک gaming desktop با RTX 5090 و 32 گیگابایت VRAM، سیستم DeepSeek-V4-Flash با 284 میلیارد پارامتر را به‌صورت interactive اجرا می‌کند. روی workstation دارای یک RTX PRO 6000 با 96 گیگابایت VRAM نیز GLM-5.2 با 753 میلیارد پارامتر با سرعت 14.9 token در ثانیه سرو می‌شود که طبق مقاله حدود دو برابر throughput گزارش‌شده برای llama.cpp در همان tier است.

با این حال، این اعداد باید به‌عنوان نتایج پژوهشی خوانده شوند، نه benchmarkهای مستقل و نهایی. ارزیابی توسط خود نویسندگان FreeToken انجام شده و مقاله اشاره می‌کند که بعضی engineهای مقایسه‌شده قادر به سرو همه مدل‌ها یا همه workloadهای multi-turn در ماتریس تست نیستند. این موضوع خودش برای deployability مهم است، اما در عین حال به این معنی است که هر مقایسه یک رقابت کاملاً متقارن میان configurationهای دارای پشتیبانی یکسان نیست. برای تبدیل این نتایج به ادعای عمومی performance، reproduction مستقل روی سخت‌افزارهای مصرفی بیشتر، سیستم‌عامل‌های مختلف و نسخه‌های متفاوت مدل‌ها ضروری خواهد بود.

با وجود این caveat، FreeToken یک تغییر معنادار در سطح systems engineering نشان می‌دهد. انتشار مدل‌های open-weight باعث شده پارامترهای frontier-scale قابل دریافت باشند، اما دسترسی عملی همچنان به ظرفیت حافظه، bandwidth و نرم‌افزار سروینگ محدود بوده است. runtimeای که CPU، GPU، host memory و پهنای باند interconnect را به‌عنوان یک resource pool هماهنگ مدیریت کند می‌تواند اقتصاد experimentation را برای developerها و تیم‌های کوچک تغییر دهد، به‌خصوص در workloadهایی که در حالت عادی به هزینه زیاد hosted inference یا GPUهای سروری اختصاصی نیاز دارند.

این پروژه فقط یک مقاله نظری هم نیست و کد آن برای بررسی عملی در دسترس است. مخزن GitHub پروژه FreeToken با مجوز Apache 2.0 منتشر شده، مستندات نصب و مدل‌ها را دارد و CLI و API server سازگار ارائه می‌کند. بنابراین مرحله بعدی روشن است: developerهای مستقل می‌توانند بررسی کنند آیا performance گزارش‌شده در مقاله قابل تکرار است و آیا runtime زیر فشار واقعی حافظه و sessionهای agent طولانی‌مدت روی کامپیوترهای شخصی پایدار باقی می‌ماند یا نه.

## Sources

- مقاله FreeToken در arXiv
- مخزن کد FreeToken

تاریخ انتشار: