← جميع المقالات

نموذج بـ 744 مليار معامل يعمل على حاسوب محمول: محرّك Colibrì يبقي الخبراء على قرص SSD

نواة زجاجية مضيئة وإلى جانبها بنية شفافة ضخمة من مكعبات مضيئة على سطح فاتح

محرّك Colibrì مفتوح المصدر، المكتوب بلغة C الصافية ومن دون أي اعتماد خارجي، يشغّل نماذج من 744 مليار إلى 2.8 تريليون معامل على حاسوب محمول عادي — ومن دون الحاجة إلى كرت رسوميات. ولا يتحقّق ذلك بضغط النموذج حتى يفقد معناه: المحرّك يبقي «الخبراء» — الأجزاء التي لا يحتاجها كل رمز — على القرص، ويحمّل فقط ما يحتاجه الرمز الحالي فعلاً. تجاوز المشروع 37 ألف نجمة على GitHub ويدعم اليوم تسع عائلات من النماذج.

ما هو هذا المشروع

Colibrì محرّك لاستدلال النماذج الكبيرة، كتبه مطوّر واحد باسم JustVugg. بدأ تجربة على حاسوب محمول باثنتي عشرة نواة و25 غيغابايت من الذاكرة، وصار مشروعاً بـ 37,951 نجمة و4,124 تفرّعاً على GitHub. الرخصة Apache 2.0 والكود كله مفتوح.

المحرّك نفسه ملف واحد بلغة C مع ترويسات صغيرة. لا BLAS، ولا Python أثناء التشغيل، ولا كرت رسوميات إلزامي. البناء بـ gcc أو clang مع OpenMP، وهناك نسخ جاهزة لنظم Linux وmacOS وWindows.

لماذا هذا ممكن أصلاً

السرّ في بنية النماذج الحديثة. GLM-5.2 فيه 744 مليار معامل، لكن ما ينشط لكل رمز نحو 40 ملياراً فقط: الموجّه (router) يختار أي «خبراء» سيحسبون هذا الرمز. وما يتغيّر من رمز إلى آخر جزء صغير فقط — نحو 11 غيغابايت من الأوزان.

ومن هنا الفكرة المركزية: لا يلزم أن يتّسع النموذج في الذاكرة السريعة، بل يلزم وضعه في المكان الصحيح. الجزء الكثيف (الانتباه والخبراء المشتركون والتضمينات — نحو 17 مليار معامل) يقيم دائماً في الذاكرة العشوائية ويشغل نحو 9.9 غيغابايت بصيغة int4. أما الخبراء الموجَّهون وعددهم 19,456 (75 طبقة MoE في كل منها 256، إضافة إلى رأس MTP، بنحو 19 ميغابايت لكل خبير بصيغة int4) فيقيمون على القرص — نحو 370 غيغابايت — ويُحمَّلون عند الحاجة.

نواة زجاجية مضيئة وإلى جانبها بنية شفافة ضخمة من مكعبات مضيئة على سطح فاتح

مُصرِّف JIT للأوزان

يصف المؤلف قلب المحرّك بأنه مُصرِّف JIT، لكن للأوزان. فمُصرِّف JIT العادي لا يبني البرنامج كله، بل يراقب ما يُنفَّذ فعلاً ويصرّف المسارات الساخنة. وColibrì يراهن الرهان نفسه: المعاملات ليست حالة يجب الاحتفاظ بها، بل بيانات يجب تقديمها في وقتها.

«حرارة» التوجيه المقيسة تحدّد أي خبير يستحق أي طبقة. ولكل طبقة ذاكرة LRU، ومخزن ساخن متعلَّم للخبراء المثبَّتين، وتحميل مسبق بطبقة إلى الأمام: الموجّه يعمل قبل أن تُحتاج نتائجه، فيختفي زمن الجلب خلف الحساب. وكلما طال تشغيلك، صار المحرّك أدقّ في توقّع خبرائك الساخنين.

طبقات الذاكرة الثلاث — VRAM وRAM وNVMe — هي طبقات لوضع الأوزان نفسها. قلة الذاكرة السريعة تغيّر السرعة لا النموذج: دقة الأوزان واختيار الموجّه يبقيان كما هما، والخبير القادم من VRAM والخبير القادم من القرص يعطيان النتيجة ذاتها.

الأرقام

كل القياسات على النموذج نفسه GLM-5.2 في حاوية int4؛ المتغيّر الوحيد هو العتاد، أي مكان إقامة الخبراء.

  • ست بطاقات RTX 5090 مع إقامة كاملة للخبراء: 5.8–6.8 رمزاً في الثانية، وزمن أول رمز نحو 13 ثانية.
  • حاسوب مكتبي بمعالج فقط و128 غيغابايت ذاكرة: نحو 1.8 رمز في الثانية على ذاكرة مؤقتة دافئة.
  • حاسوب محمول ببطاقة RTX 5070 Ti واحدة: 1.07 رمز في الثانية.
  • الجهاز الذي بدأ منه كل شيء — 12 نواة و25 غيغابايت: 0.05–0.1 رمز في الثانية على ذاكرة باردة. وهذا هو الحدّ الأدنى الصادق للمشروع.

وقيس أثر قرصَي NVMe مستقلّين على حدة: +37.5% في سرعة الفكّ. أما القرص الثالث الأبطأ فلم يضف شيئاً بعد التوزيع الموزون.

ما يدعمه

يغطّي المحرّك اليوم تسع عائلات من النماذج، لكل منها ملف C خاص، مع إعادة استخدام المكوّنات المشتركة (الإدخال والإخراج والذاكرة المؤقتة والمُرمِّز):

  • GLM-5.2 وGLM-5.3 — 744 مليار معامل، نحو 372 و419 غيغابايت على القرص، ومن 16 غيغابايت ذاكرة؛
  • GLM-5.3-Flash — 321 ملياراً، مع دعم الصور؛
  • Inkling — 975 ملياراً؛
  • Kimi K3 — 2.8 تريليون معامل، نحو 1.6 تيرابايت على القرص ومن 32 غيغابايت ذاكرة، دون كرت رسوميات؛
  • DeepSeek V4 Flash — 284 ملياراً وDeepSeek V4.1 Flash — 552 ملياراً، وكلاهما مع دعم الصور؛
  • Qwen3.8-Flash-Next — 125 ملياراً زائد 51 ملياراً في ذاكرة n-gram؛
  • Qwen3.6 — 35 ملياراً وOLMoE — 7 مليارات.

وهناك لوحة ويب بمقاييس حيّة، وصفحة Brain منفصلة تُظهر كل خبراء GLM-5.2 وعددهم 19,456: ترى أي خبير استدعاه الموجّه للتوّ وفي أي طبقة ذاكرة يقيم الآن. وهناك أيضاً وضع عنقود محلي: منسّق يتولّى الرموز والتوجيه، وعمال خبراء على أجهزة أخرى يتولّون الحساب.

ما يقوله المؤلفون بصراحة

المشروع لا يَعِد عمداً بسرعة ثابتة. يقول الوصف صراحةً: لا ضمان على السرعة، بل ضمان صارم على الدلالة — على التجارب أن تثبت نفسها بقياسات قابلة للتكرار، والسياسة الافتراضية لا تغيّر دقة النموذج ولا منطق الموجّه في الخفاء.

وبعض الأفكار ما زالت فرضيات. فتثبيت الخبراء الساخنين المتعلَّم يفوز في المهام المتكرّرة لكنه قد يُفرط في التخصيص لطلب بعينه. والفكّ التخميني في بعض التهيئات قاس خسارة نحو 32% بدل مكسب عند إصابة خبراء بنحو 85%. والوصول المباشر إلى القرص يعتمد كثيراً على طراز القرص. ويدعو المؤلف المجتمع إلى اختبار هذه الفرضيات ونشر النتائج السلبية أيضاً.

ماذا يعني ذلك

الخلاصة بسيطة: العمل مع نموذج كبير لا يستلزم استئجار رفّ خوادم. فإذا كان النموذج متناثراً، يمكن توزيعه على طبقات الذاكرة وتشغيله على ما هو موجود أصلاً تحت الطاولة. وستكون السرعة متواضعة — من جزء من الرمز في الثانية على جهاز ضعيف إلى بضعة رموز على جهاز سريع — لكنه تشغيل محلي كامل لا عرض توضيحي.

ولمن يفضّل مجرّد الحديث مع النماذج الحديثة من دون متاعب الأقراص والبناء، هناك دردشة NeuralSpace؛ وتوليد الصور في قسم الصور، والفيديو في قسم الفيديو.

أسئلة شائعة

ما هو Colibrì؟

محرّك مفتوح المصدر لاستدلال النماذج الكبيرة، مكتوب بلغة C الصافية. لا يبقي النموذج كله في الذاكرة السريعة، بل يوزّعه على طبقات: بعضه في الذاكرة العشوائية، وبعضه على القرص، وبعضه في ذاكرة الرسوميات عند توفّرها.

هل أحتاج كرت رسوميات؟

لا. الكرت يزيد السرعة فقط، ولا يحتاجه أي من النماذج المدعومة. والسرعة تحدّدها أساساً وحدة التخزين التي يُحمَّل منها الخبراء.

ما مدى سرعته؟

جزء من الرمز في الثانية على جهاز ضعيف، وبضعة رموز على جهاز سريع. ليس بديلاً سريعاً عن واجهات السحابة، لكنه تشغيل محلي كامل بلا خوادم مستأجرة.

من أين أحصل عليه؟

الكود والنسخ الجاهزة في مستودع JustVugg/colibri المفتوح على GitHub. المصدر: 量子位 (QbitAI).