بونسای ۲: مدل ۲۷ میلیاردی روی لپتاپ
خلاصهٔ کاملتر
تو این مقاله اومده که Bonsai 2 27B نسخهٔ ternary (یعنی هر وزن مدل فقط سه حالت -۱، ۰ یا +۱ داره) از مدل Qwen3.8-27B هست. مدل اصلی با دقت FP16 حدود ۵۴ گیگ جا میگیره، ولی این نسخه با ۸.۶ گیگ روی دیسک، ۹۸.۲ درصد هوش مدل کامل رو نگه داشته. معمولاً فشردهسازی با بیت پایین کلی از کیفیت رو میخوره، ولی اینجا این اتفاق نیفتاده.
رازش یه چرخش بلوکی Hadamard هست: قبل از اینکه وزنها به سه حالت گرد بشن، ماتریس وزنها به یه پایهٔ ریاضی دیگه چرخونده میشه و موقع اجرا عکس همون چرخش روی ورودیها اعمال میشه. این کار اطلاعات رو جوری پخش میکنه که گرد کردن کمتر ضرر بزنه. چرخش توی خود فایل وزنها ذخیره شده، پس نه حجم اضافه میکنه نه کندی. ولی یه دردسر داره: لودر معمولی MLX یا llama.cpp اینو نمیشناسه و بهجای ارور دادن، خروجی غلط میده.
چرا نسخهٔ مک ۸.۶ گیگه و نه ۵.۸ گیگ؟ دو دلیل داره. اول اینکه فرمت MLX برای هر گروه ۱۲۸تایی از وزنها هم scale و هم bias ذخیره میکنه، در حالی که این روش فقط به scale نیاز داره. همین نرخ واقعی رو از ۱.۷۲ بیت به ۲.۲۵ بیت به ازای هر وزن میبره، یعنی ۷.۶۷ گیگ برای بخش زبانی. دوم اینکه ۰.۹۲ گیگ vision tower مدل اصلی دستنخورده و با دقت کامل FP16 سر جاش مونده.
روی مکبوک M5 Max حدود ۴۷ توکن در ثانیه تولید میکنه و پردازش پرامپتش حدود ۷۶۵ توکن در ثانیهست. روی M5 Pro این عددها میشه ۲۸.۱ و ۳۸۷، با مصرف ۲۷.۵ وات روی GPU. کارتهای دسکتاپ مثل RTX 5090 و H100 بین ۷۴ تا ۱۳۰ توکن در ثانیه میدن ولی ۳۰۰ تا ۴۵۵ وات میکشن. نویسنده میگه مقایسهٔ سرعت اصل ماجرا نیست، چون نسخهٔ FP16 اصلاً تو حافظهٔ لپتاپ جا نمیشه.
برای اجرا روی مک باید مدل رو از Hugging Face بگیری و حتماً از لودر خودش استفاده کنی، چون مدل یه model_type سفارشی به اسم prism_hadamard_qwen35 اعلام میکنه که لودرهای عادی نمیشناسنش. پارامترهای نمونهبرداری هم خودکار خونده نمیشن، پس برای حالت thinking باید دستی temperature=1.0، top_p=0.95 و top_k=20 بدی، وگرنه به حالت greedy میافته و کیفیت خروجی میاد پایین. کاربرهای NVIDIA هم نسخهٔ GGUF رو دارن.
نکات کلیدی:
- میانگین ۸۴.۷۸ تو ۱۴ بنچمارک حالت thinking، در برابر ۷۲.۵۹ برای فشردهسازی معمولی IQ2_XXS با حجم بیشتر
- حجم روی مک: ۷.۶۷ گیگ برای بخش زبانی، ۸.۶ گیگ با احتساب vision tower
- دو فرمت GGUF برای llama.cpp: PTQ1_0 با ۵.۹۵ گیگ و PQ2_0 با ۷.۲۱ گیگ
- پنجرهٔ کانتکست ۲۶۲ هزار توکنی و حدود ۷۵ درصد linear attention از مدل پایه سر جاش مونده
- لودر استاندارد MLX یا llama.cpp بدون ارور دادن خروجی غلط تولید میکنه




