مدل ۲۷ میلیاردی که تو ۸.۶ گیگ جا میشه
خلاصهٔ کاملتر
Bonsai 2 27B یه مدل زبانی ۲۷ میلیارد پارامتریه که روی معماری hybrid-attention مدل Qwen3.8-27B ساخته شده، ولی تقریباً همهٔ وزنهاش رو به جای اعداد اعشاری ۱۶ بیتی به صورت سهتایی (ternary) ذخیره میکنه، یعنی هر وزن فقط یکی از سه مقدار منفی یک، صفر یا مثبت یک رو میگیره. همین یه تغییر، مدلی رو که تو FP16 حدود ۵۴ گیگابایت حافظه میخواد روی دیسک به ۸.۶ گیگابایت میرسونه: ۷.۶۷ گیگ مدل زبانی و ۰.۹۲ گیگ vision tower.
هر ۱۲۸ وزن یه ضریب مقیاس FP16 مشترک دارن، برای همین به این فرمت میگن ternary g128. یه رقم سهتایی حدود ۱.۵۸۵ بیت اطلاعات داره و بعد از سرشکن کردن ضریب مشترک، هزینهٔ مؤثر حدود ۱.۷۱ بیت به ازای هر وزن درمیاد. قبل از کوانتایز کردن هم هر ماتریس وزن از یه چرخش Hadamard بلوکی (یعنی یه تبدیل متعامد روی بلوکهای ۱۰۲۴تایی) رد میشه که داخل خود وزنها تا میشه و بیت اضافه نمیخواد.
همین چرخش دلیل اصلی دردسر راهاندازیه. تبدیل معکوسش باید موقع اجرا روی activationها اعمال بشه و لودرهای عمومی MLX یا llama.cpp اصلاً خبر ندارن باید این کارو بکنن. بدترین بخش ماجرا اینه که اگه با یه لودر استاندارد بارش کنی هیچ خطایی نمیده، فقط بیسروصدا خروجی غلط تولید میکنه. مدل تو کانفیگش معماری خودش رو prism_hadamard_qwen35 اعلام میکنه که همین سیگناله. پس باید از runtime داخل خود پک استفاده کنی:
import sys
sys.path.insert(0, "bonsai2-27b-mlx/runtime")
from vision_artifact import load_vl_model, chat_config
model, processor, config = load_vl_model("bonsai2-27b-mlx")سرعتش روی سختافزار اپل با بکاند Metal گزارش شده: روی M5 Max حدود ۴۷ توکن بر ثانیه تولید و ۷۶۵ توکن بر ثانیه پردازش prompt؛ روی M5 Pro حدود ۲۸.۷ و ۳۹۳؛ روی M4 Pro حدود ۱۸ و ۱۲۵. مصرف برقش هم کمه، ریل GPU روی M5 Pro موقع decode حدود ۲۷.۵ وات اندازهگیری شده در برابر ۳۰۰ تا ۴۵۵ وات کارتهای دیتاسنتر. روی چیپهای کندتر مثل M4 Pro، گلوگاه عملی پردازش promptهای بلنده نه سرعت تولید.
برای CUDA و llama.cpp دو بستهبندی GGUF هست: PTQ1_0 با ۵.۹۵ گیگابایت که مقدارهای سهتایی رو فشردهتر کنار هم میچینه، و PQ2_0 با ۷.۲۱ گیگابایت که هر مقدار رو تو یه اسلات ۲ بیتی میذاره. هیچکدوم همیشه برنده نیستن: PTQ1_0 روی کارتهای محدود به پهنای باند حافظه مثل RTX 4090 جلو میزنه و PQ2_0 روی کارتهایی مثل RTX 5090 و H100 که گلوگاهشون توان دستوریه. خودِ وزنها تو هر دو دقیقاً یکیان و اختلاف حجم فقط مال نحوهٔ بستهبندیه.
نکات کلیدی:
- کل پک MLX برابر ۸.۶ گیگابایت (۷.۶۷ گیگ مدل زبانی و ۰.۹۲ گیگ vision tower)، در برابر حدود ۵۴ گیگ نسخهٔ FP16
- میانگین ۸۴.۷۸ روی مجموعهٔ ۱۴ بنچمارکی، یعنی ۹۸.۲٪ کیفیت FP16، در برابر ۷۲.۵۹ برای کوانتایز معمولی IQ2_XXS
- حدود ۴۷ توکن بر ثانیه روی M5 Max، ۲۸.۷ روی M5 Pro و ۱۸ روی M4 Pro
- بیلد استاندارد MLX یا llama.cpp مدل رو بدون خطا بار میکنه ولی خروجیش غلطه
- vision tower کوانتایز نشده و با همون FP16 اصلی Qwen3.8-27B میاد




