
گزارش تازهای از XDA Developers نشان میدهد که با تغییر یک فلگ (Flag) در llama.cpp میتوان مدلهای زبانی بزرگتر از ظرفیت حافظه ویدئویی (VRAM) را روی لپتاپهای مجهز به پردازنده گرافیکی ۸ گیگابایتی نیز با سرعت قابلقبول اجرا کرد. در این آزمایش، لپتاپ Lenovo Legion 5 با RTX 3070 Mobile و ۸ گیگابایت VRAM توانسته مدل MoE حدود ۳۵ میلیارد پارامتری را به نزدیک ۳۳ توکن بر ثانیه برساند.
چرا مدل ۳۵ میلیاردی در ۸ گیگابایت VRAM جا میشود؟
مدل Qwen3.6-35B-A3B از معماری ترکیبی متخصصها (Mixture-of-Experts / MoE) استفاده میکند. در این معماری، از ۳۵ میلیارد پارامتر مدل، در هر مرحله تنها حدود ۳ میلیارد پارامتر فعال میشوند و بخش زیادی از لایههای متخصص (Expert Layers) بیکار میمانند. همین ویژگی اجازه میدهد بخشی از وزنهای غیرفعال به حافظه سیستم (System RAM) منتقل شود و بخشهای همیشهفعال، از جمله لایههای توجه (Attention Layers)، تعبیهها (Embeddings)، وزنهای مشترک و کش کلید-مقدار (KV Cache)، در VRAM باقی بمانند.
نقش فلگ --n-cpu-moe در llama.cpp
فلگ کلیدی این آزمایش --n-cpu-moe N است. با ترکیب آن با -ngl 99 میتوان به llama.cpp دستور داد همه لایهها را ابتدا روی GPU بارگذاری کند؛ سپس --n-cpu-moe تعداد مشخصی از لایهها را انتخاب و تنسورهای متخصص (Expert Tensors) آنها را به حافظه سیستم منتقل میکند. این بخشها فقط زمانی خوانده میشوند که مسیریاب (Router) مدل آنها را انتخاب کند و در صورت نیاز به VRAM کپی میشوند.
نتایج آزمون با llama-bench
برای سنجش دقیق، از ابزار llama-bench در llama.cpp استفاده شده است. آزمون روی دو مدل انجام شد: Qwen3.6-27B با کوانتیزهسازی (Quantization) IQ4_XS بهعنوان مدل مرجع و Qwen3.6-35B-A3B با کوانتیزهسازی UD-IQ4_XS. پارامترهای آزمون شامل پردازش پیشدرآمد (Prompt Processing) با ۵۱۲ توکن، تولید ۱۲۸ توکن، سه بار تکرار و کوانتیزهسازی کش کلید-مقدار به ۸ بیت بوده است.
- Qwen3.6-27B (مدل Dense، حجم ۱۴.۳۷ گیبی): پردازش پیشدرآمد ۳۸.۸۳ توکن بر ثانیه و تولید ۰.۷۵ توکن بر ثانیه.
- Qwen3.6-35B-A3B (مدل MoE، حجم ۱۶.۵۰ گیبی) بدون انتقال لایههای متخصص به RAM: پردازش پیشدرآمد ۱۰۹.۶۶ توکن بر ثانیه و تولید ۴.۰۲ توکن بر ثانیه.
- Qwen3.6-35B-A3B با انتقال ۲۸ لایه متخصص به RAM: پردازش پیشدرآمد ۳۴۱.۳۷ توکن بر ثانیه و تولید ۳۲.۸۲ توکن بر ثانیه.
تغییری که دسترسی به مدلهای بزرگتر را آسانتر میکند
بر اساس این نتایج، همان مدل ۳۵ میلیاردی که در حالت بدون بهینهسازی فقط حدود ۴ توکن بر ثانیه تولید میکرد، با انتقال بخشی از لایههای متخصص به حافظه سیستم به نزدیک ۳۳ توکن بر ثانیه میرسد. این سرعت برای کار با مدل بهصورت محلی و بدون اتکا به شبکه، در سناریوهایی مانند سفر یا محیط بدون اینترنت اهمیت دارد. llama.cpp یک فریمورک متنباز (Open-Source) برای اجرای محلی مدلهای زبانی بزرگ است و این آزمایش نشان میدهد بهینهسازی نرمافزاری میتواند محدودیت ظاهری VRAM را تا حد زیادی جبران کند.