
كيف تُعدّ وكيل برمجة محليًا على macOS باستخدام Gemma 4 وllama.cpp
يوثّق كايل هاويلز إعداد وكيل برمجة محلي على macOS: llama.cpp مع Metal، ونموذج Gemma 4 26B-A4B، ونموذج مسودة استباقي MTP، وأداة Pi. وارتفعت سرعة التوليد من 58.2 إلى 72.2 رمزًا في الثانية.
لماذا تشغّل وكيل برمجة محليًا
فقد كايل هاويلز الاتصال بالإنترنت عدة مرات فوجد نفسه بلا وكيل برمجة، لذلك حين رأى تحديث «Gemma 4 يعمل الآن بسرعة مضاعفة مع MTP» الخاص بالتنبؤ متعدد الرموز، قرر تشغيل وكيل على حاسوبه Mac.
كانت الشروط عملية: سرعة تكفي للاستخدام الفعلي؛ وواجهة متوافقة مع OpenAI كي تتصل بها أدوات أخرى؛ والأفضل دعم لقطات الشاشة والصور ليتمكن من إعطاء الوكيل صورة لما بناه.
المكوّنات التي استقر عليها
الإعداد النهائي: llama.cpp مبنيًا مع Metal على macOS، وGemma 4 26B-A4B بصيغة GGUF، ونموذج مسودة Q8 MTP للفك التخميني، ومشروع Gemma 4 متعدد الوسائط، وأداة Pi كوكيل برمجة طرفي. جرى الاختبار على Apple M1 Max بذاكرة موحّدة سعة 64 جيجابايت وmacOS 15.7.7.
النموذج الرئيسي هو gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf من مستودع Unsloth على Hugging Face، بحجم نحو 16 جيجابايت؛ ومع نموذج المسودة والمشروع يبلغ حجم المجلد نحو 17 جيجابايت. استُخدم في القياس طلب واحد يصف دالة Python مدمجة تحلّل unified diff، مع توليد نحو 128 رمزًا في كل تشغيل.
MTP يرفع سرعة التوليد نحو 24%
بلغ llama.cpp الأساسي مع تسريع Metal 298.0 رمز طلب في الثانية و58.2 رمز توليد في الثانية — قابل للاستخدام، لكنه بطيء لوكيل يكثر من استدعاء الأدوات. وأدت إضافة نموذج المسودة Q8 MTP إلى رفع التوليد إلى 72.2 رمزًا في الثانية. واختبر هاويلز طول المسودة من 1 إلى 6: كان الأسرع القيمة 3 (72.2)، وجاءت القيمة 2 قريبة جدًا (72.0)، أما القيم الأكبر فانخفضت إلى 63.7 و61.2. ولم تتغير معالجة الطلب تقريبًا — نحو 296 رمزًا في الثانية — ليبلغ التسريع الكلي 1.24 ضعفًا.
وقارن أيضًا مع MLX-LM متوقعًا أن يتفوق على عتاد Mac: بلغ أفضل تشغيل بـ MLX 45.8 رمزًا في الثانية، وكانت إصدارات 4-bit المجتمعية أبطأ — 43.9 و38.1. وفشلت محاولة استخدام MTP عبر gemma-4-swift-mlx لأن نقاط حفظ 26B بصيغة 4-bit لم تطابق مفاتيح الأوزان التي يتوقعها المحمّل.
الصور والإعداد وبديل Qwen
تحتاج خدمة llama.cpp إلى مشروع Gemma 4 متعدد الوسائط لدعم لقطات الشاشة، لأن طراز 12B وحده متعدد الوسائط أصلاً؛ وعند تحميل المشروع يعلن الخادم دعم الوسائط المتعددة ويمكن لـ Pi إرسال الصور. كما يجب أن يتضمن سجل النموذج في Pi كلاً من النص والصورة، وإلا فلن تصل مخرجات الأدوات المصوّرة إلى النموذج. ولم يُظهر إعادة اختبار النص مع المشروع أي تباطؤ.
البناء قياسي: ثبّت cmake وgit وtmux وPython 3.11 عبر Homebrew، وابنِ llama.cpp مع تفعيل Metal وAccelerate، ثم نزّل النموذج ومسودة MTP وملف mmproj-BF16.gguf، ثم شغّل llama-server على 127.0.0.1:8080 مع --spec-type draft-mtp و--spec-draft-n-max 3 وسياق من 65,536 رمزًا. بذلك تحصل على نقطة نهاية /v1 متوافقة مع OpenAI يشير إليها Pi في ملف models.json.
الخلاصة: نموذج المسودة MTP يستحق الاستخدام، إذ يرفع Gemma 4 من 58.2 إلى 72.2 رمزًا في الثانية مع إبقاء الإعداد بسيطًا. ويذكر اقتراحًا شائعًا بالانتقال إلى Qwen3.6 35B-A3B: تشير القياسات التي وجدها إلى أن Qwen وكيل برمجة أفضل، لكنه أبطأ — نحو 55 رمزًا في الثانية في الإعداد نفسه مقابل 72 لـ Gemma 4.
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.