تشغيل CrucibleForge على نماذجك الخاصة: دليل التثبيت
- تاريخ النشر
- 5 نوفمبر 2026
- تاريخ التحديث
- 5 نوفمبر 2026
- بقلم
- جاكوب لويد — كُتب بمساعدة الذكاء الاصطناعي بعد إنجاز المشروع
- مدة القراءة
- قراءة 2 دقيقة

بعبارة مبسطة: CrucibleForge هو الأداة المجانية مفتوحة المصدر التي تُنتج جميع النتائج على لوحة MakoBench. توضح هذه الصفحة كيفية تثبيته، وربطه بنموذج محلي أو مضيف، وتشغيل اختبار سريع وقراءة النتائج. إذا لم يكن لديك بطاقة رسومات (GPU)، فيمكنك طلب منا تشغيل نموذجك على أجهزتنا الخاصة.
انتقل إلى: CrucibleForge على GitHub
CrucibleForge هو الأداة مفتوحة المصدر التي تُنتج جميع النتائج الموجودة في لوحة MakoBench. إنه مجاني تمامًا (ترخيص MIT-0، بدون أي شروط) ويمكنك تشغيله باستخدام نماذجك الخاصة على جهازك. تشرح هذه الصفحة كيفية التثبيت والتشغيل لأول مرة؛ جميع الأوامر المذكورة تم تنفيذها على نسخة حديثة من المستودع العام، والنتائج الموضحة هي نتائج تلك التشغيلات. لا تملك جهازًا يحتوي على وحدة معالجة رسومية أو لا يوجد لديك وقت كافٍ؟ اطلب منا تشغيل نموذجك على أجهزتنا.
لا تملك وحدة معالجة رسومية؟ اطلب منا تشغيل نموذجك على أجهزتنا.
اطلب تشغيل نموذجك شارك في التصويت على ما سيتم اختباره لاحقًا
لا تحتاج إلى وحدة معالجة رسومية لتشغيل CrucibleForge؛ كل ما تحتاجه هو نقطة اتصال لاختبار النموذج. نموذج الطلب هذا مخصص للنماذج التي لا يمكنك استضافتها بنفسك.
خلاصة المعلومات
- أربعة أوامر فقط تكفي للبدء من مرحلة النسخ الأولي وحتى تشغيل الاختبار:
uv sync،config --init،status،all. - أي نقطة اتصال متوافقة مع OpenAI يمكن استخدامها. سواء كانت Ollama أو LM Studio أو llama.cpp أو vLLM أو أي واجهة برمجة تطبيقات مستضافة.
- الجهاز الذي يشغل CrucibleForge لا يحتاج إلى وحدة معالجة رسومية. أما بالنسبة للنماذج المحلية، فإن عملية التقييم تستغرق حوالي 25 إلى 30 دقيقة على جهاز يحتوي على وحدة معالجة رسومية قوية، بما في ذلك مرحلة التقييم نفسها.
- جرّب أولاً اختبار “smoke test”. استغرق تشغيل هذا الاختبار لدينا 1.6 دقيقة وتكلفةه كانت 0.0229 دولار فقط.
- اختبار “smoke test” لا يُعد نتيجة تقييم رسمية. فهو يغطي 4 من أصل 33 حالة اختبار، لذا لا يتم احتساب أي درجة إجمالية أو ترتيب له.
ما الذي تحتاجه قبل البدء؟
- Python 3.12 أو إصدار أحدث مع
uv، أو Docker. سيقومuvبتنزيل Python لك. - نموذج للاختبار يعمل خلف نقطة نهاية من نوع
/chat/completionsمتوافقة مع OpenAI. - جهاز تقييم، وهو أي نموذج تعليمي قادر على أداء المهمة، سواء كان محليًا أو مستضافًا. يتم تقييم الكود عن طريق تشغيله، لكن الدردشة تحتاج إلى جهاز تقييم.
- على لينكس،
bubblewrap(bwrap). يتم تشغيل الكود الذي يكتبه النموذج داخله. أما على ويندوز وماك أو إس، فلا يوجد bubblewrap؛ لذا يجب تمرير الخيار--allow-unsandboxedأو استخدام صورة Docker، حيث يعمل الحاوية كبيئة عزل آمنة.
كيف يتم التثبيت؟
هذه هي الطريقة التقليدية على لينكس؛ أما استخدام Docker فهو الخيار الأسهل إذا كنتم لا ترغبون في تثبيت أدوات بايثون. يحتوي ملف README على أوامر يمكن نسخها ولصقها لنظامي ويندوز ولينكس، بالإضافة إلى macOS؛ حيث يُعتبر Docker Desktop أو Compose هي الطريقة الأولى في كل من هذه الأنظمة. لم نستخدم طريقة Docker في إعداد هذه الصفحة.
git clone https://github.com/LaserLloyd/CrucibleForge.git
cd CrucibleForge
uv sync --python 3.13
uv run crucibleforge --version
crucibleforge 4.0.1
هذا هو الإصدار 4.0.1، وهو الإصدار العام الحالي وقت كتابة هذا النص. الآن، قم بإنشاء ملف الإعدادات الخاص بكم:
uv run crucibleforge config --init
wrote models.yaml - edit providers/models, then `crucibleforge status`
يحتوي ملف الإعدادات الابتدائي على قائمة بمزودي الخدمات مثل LM Studio وOllama وllama.cpp وأي خادم محلي، بالإضافة إلى DeepSeek وOpenRouter وOpenAI وOpen WebUI؛ كما يتضمن أربعة نماذج مثالية للاستخدام. لن يعمل أي من هذه الخدمات حتى تقوموا بتفعيل واحدة منها.
كيف تقوم بالاتصال بنموذجك؟
يحتاج ملف models.yaml إلى مزود خدمة، ونموذج، بالإضافة إلى عنصر تقييم.
- مزود الخدمة. هو المكان الذي يتم فيه تقديم النموذج. أي خادم يتوافق مع بروتوكول
/chat/completionsيعمل معtype: openai. أمثلة محلية من ملف README:http://localhost:11434/v1لبرنامج Ollama، وhttp://localhost:1234/v1لبرنامج LM Studio، وhttp://localhost:8000/v1لبرنامج vLLM. بالنسبة للواجهات البرمجية المضيفة، يتم استخدامapi_key_env: NAME_OF_ENV_VAR؛ ولا يتم وضع المفتاح نفسه أبدًا في الملف. - النموذج. يجب أن يحتوي على عنصر
name، بالإضافة إلىproviderوmodel_idالذي يعرفه الخادم، وcontext_length. - عنصر التقييم. يتم تحديده في كل عملية تشغيل عبر الأمر
--judge provider:model_id.
للاطلاع على ما يقدمه الخادم، يمكنك طرح استفسار عليه. هذا مثال لمزود خدمة مضيف حيث يتم تخزين المفتاح في متغير بيئي:
uv run crucibleforge models discover deepseek
* deepseek-flash
* deepseek-v4-pro
2 models on deepseek (* = in registry)
النجمة تشير إلى أن النموذج موجود بالفعل في السجل. يحتوي الملف الابتدائي على إعدادات deepseek-flash بشكل تلقائي، لذا لم نحتاج إلى أي تعديلات لعملية التشغيل لدينا. أما بالنسبة لنموذجك الخاص، فأضف إدخالًا على النحو التالي:
models:
- name: my-model
provider: ollama
model_id: qwen3:8b
context_length: 32768
كيف يمكن التحقق من الإعدادات؟
export DEEPSEEK_API_KEY=... # only for a hosted provider or judge
uv run crucibleforge status
بدون تعيين المفتاح، يكون مخرج الحالة الخاص بمزود الخدمة كالتالي (مقتطف من الأسطر ذات الصلة):
suite revision: 4.0.1+e3d1c6fb
providers:
ollama openai http://localhost:11434/v1 DOWN conc=8
deepseek openai https://api.deepseek.com/v1 UP conc=8 key: $DEEPSEEK_API_KEY (NOT SET)
reachable, but it wants an API key: set $DEEPSEEK_API_KEY (HTTP 401)
registry (models):
[enabled ] deepseek-flash deepseek deepseek-flash $0.14/0.28 per 1M
cases: 393 total (235 hard)
smoke subset: 37 cases
benchmark (bench): 33 cases
DOWN يعني أنه لم يتم الرد على الطلبات المرسلة إلى ذلك العنوان، وهو أمر متوقع بالنسبة للخوادم المحلية التي لم نكن نشغلها. أما UP مع رمز الخطأ 401 فهو يعني أن الخادم قابل للوصول ولكنه يتطلب مفتاحًا للتفعيل. عدد الحالات مهم أيضًا: إجمالي عدد الحالات هو 393، بينما يستخدم النظام 33 منها فقط.
ما هو تكلفة تشغيل العملية قبل بدئها؟
أضف --plan إلى أي عملية تشغيل، ولن يتم تنفيذ أي شيء فعليًا. كما سيقوم البرنامج بطباعة ما الذي سيتم تشغيله وتقدير للتكلفة:
uv run crucibleforge all --models deepseek-flash --judge deepseek:deepseek-v4-flash --plan
T1 - every model: 29 rows (29 cases) + 4 perf probes
one round - hosted API (nothing loaded): 29 rows, 8 requests at once
estimate: generation 18.5 min; judge 16.0 min ... -> ~34 min
(plan only - no model, provider or judge was called; times are estimates)
هذا هو التشغيل الكامل لنموذج مدار على الخادم؛ وفقًا لتقديرات الأداة، فإن الوقت المستغرق حوالي 34 دقيقة. هذا مجرد تقدير وليس قياسًا فعليًا. أما بالنسبة للنماذج المحلية، فيذكر ملف README أن الوقت المستغرق يتراوح بين 25 إلى 30 دقيقة على جهاز يحتوي على GPU سريع.
كيف يبدو تنفيذ اختبار “الدخان”؟
يقوم العلم --smoke بتشغيل مجموعة صغيرة من البيانات بشكل كامل: التوليد، التقييم، وإعداد التقرير. إنها أسرع طريقة للتأكد من أن إعداداتك تعمل بشكل صحيح. لقد استخدمنا نموذج DeepSeek Flash كنموذج توليدي وكجهاز تقييم في الوقت نفسه؛ وهذا هو التركيب الموصى به في دليل البدء السريع، وقمنا بتشغيل الاختبار خارج أوقات الذروة لدى DeepSeek.
uv run crucibleforge all --smoke --models deepseek-flash --judge deepseek:deepseek-v4-flash --yes
... profile bench: 4 cases, thinking cap 24576, judge deepseek:deepseek-v4-flash
... link check passed: deepseek reachable, data channel OK
... run: models=['deepseek-flash'] cases=4 smoke=True fresh=False
... [deepseek-flash] RD1-marisol r1 done (15 rows)
... judging done: 1 rows, 0 unparsable judge verdicts, 0 empty generations, 0 errored
run summary:
deepseek-flash: 15 rows, load 0.0s (deepseek), $0.0229
timing: generation 1.2 min, judge 14 s, report 8 s, total 1.6 min
wrote results/report.md, results/failures.md, results/report.html
<pاستغرق التنفيذ 1.6 دقيقة، وتكلف 0.0229 دولار. تتكون البيانات من 15 صفًا؛ أحدها عبارة عن حالة محاكاة، والبقية عبارة عن اختبارات سرعة. هناك تحذيران يجدر معرفتهما:
- رفضت واجهة برمجة التطبيقات الخاصة بجهاز التقييم طلبًا لإخراج بيانات منسقة، لذا اضطر CrucibleForge إلى استخدام تنسيق JSON النصي العادي في تلك الجلسة؛ ومع ذلك تم الحصول على الدرجات بشكل طبيعي.
- فشل جهاز التقييم في إجراء اختبار المعايرة بالنسبة للنصوص التي تحتوي على محتوى للبالغين؛ لذا قام CrucibleForge بتقييم الصفوف الأخرى فقط، وترك صفوف المحتوى المخصص للبالغين معلقة حتى يتم تقييمها بواسطة جهاز تقييم قادر على التعامل معها. يذكر الدليل أن معظم أجهزة التقييم المستضافة تتصرف بهذه الطريقة؛ وتظهر هذه الدرجات بجانب اللوحة الرئيسية دون أن يتم إضافتها إلى الإجمالي.
كيفية قراءة النتائج؟
افتح ملف results/report.html في متصفح الويب، أو اقرأ ملف results/report.md. أظهرت عملية الاختبار التي أجريناها صفًا واحدًا فقط:
| Model | Overall | Class | Coding | Chat | tok/s | Suite | Notes |
| deepseek-flash | - | - | - | 2.5 +/- 0.1 | 159.7 | 4.0.1 | partial (4/33 cases); judged by deepseek-v4-flash |
الرقم 2.5 المذكور في قسم “Chat” ليس تقييمًا للنموذج؛ بل هو عدد الحالات التي تم اختبارها من القسم الخاص بـ Chat. يشير الصف إلى جزئي (4 من أصل 33 حالة)، والنموجذج الذي يعطي نتائج جزئية لا يحتوي على تقييم إجمالي أو تصنيف أو مرتبة. هذه هي القاعدة المتبعة في اللوحة الرئيسية أيضًا. قم بتشغيل الاختبارات كاملة للحصول على التقييم الإجمالي الحقيقي (الكود بالإضافة إلى Chat، 20 حالة إجمالية). لمعرفة معنى كل عمود، اقرأ كيفية عمل MakoBench وما الذي يختبره MakoBench.
يُستخدم مؤشر السرعة (الرموز في الثانية) فقط للمقارنة بين النماذج التي تم تشغيلها على نفس الأجهزة؛ أما سرعة النموذج المضيف فتعتمد على مزود الخدمة ومدى ازدحامه.
كيفية تشغيل الاختبارات الكاملة؟
uv run crucibleforge all --models my-model --judge my-provider:my-judge --yes
أضف --fresh أولاً لحفظ نسخة سابقة من نموذج الذكاء الاصطناعي. تظهر النتائج في مجلد results/ بجانب ملف models.yaml؛ حيث يتضمن ذلك ورقة النتائج، الأخطاء، التقرير بصيغة HTML، بالإضافة إلى سجل لكل سؤال وإجابة. واجهة المستخدم الرسومية تُشغل عبر أمر واحد فقط (uv run crucibleforge gui) وتستمع للطلبات عبر loopback بشكل افتراضي.
بعض الأمور التي يجب معرفتها أولاً
- حالات البرمجة تقوم بتشغيل الكود الذي كتبه النموذج. استخدم أداة bubblewrap على لينكس أو صورة Docker في الأنظمة الأخرى. يسمح الخيار
--allow-unsandboxedبتشغيل ذلك الكود بصفة المستخدم نفسه، مما يجعل الملفات الخاصة به قابلة للقراءة. - التشغيل على الخوادم المدارة يتطلب تكاليف مالية. يُفضل تشغيل الأمر
--planثم اختبار التشغيل التجريبي أولاً. - تتضمن مجموعة الاختبارات حالات تتعلق بالقصص الخيالية للبالغين؛ هذه الحالات لا تُدرج أبداً في النتائج الإجمالية. يتضمن ملف README ملاحظات تتعلق بمحتوى هذه الحالات.
- يؤثر المحكم على درجات الاختبارات المتعلقة بـ Chat. في لوحة تحكم MakoBench، المحكم المستخدم هو Gemma 4 31B (نسخة غير مفلترة، بتنسيق Q8) والتي تعمل على أجهزة GPU الخاصة بنا. تتطابق درجات Chat الخاصة بك مع اللوحة فقط إذا استخدمت نفس المحكم؛ أما حالات البرمجة فيتم تقييمها عبر تشغيل الكود، لذا فإن النتائج متطابقة في كل الأحوال.
- يتم مقارنة الدرجات ضمن إصدار واحد من مجموعة الاختبارات فقط. هذه الصفحة تتعلق بالإصدار 4.0؛ يمكنك الاطلاع على التغييرات التي طرأت في الإصدار 4.0.
هل تم التحقق من كل شيء؟
تقريبًا. كما قمنا بتشغيل الأمر uv run crucibleforge cases verify، الذي يعيد حساب الإجابات الصحيحة دون الاتصال بالخادم. وقد تحقق من 393 حالة، وأبلغ عن وجود مشكلة في حالة واحدة فقط؛ وهي حالة تتعلق ببنك الكودات حيث تجاوز وقت تنفيذ الحل المرجعي الحد المسموح به في اختبار الإشارات. تم تشغيل هذا الاختبار على نفس الجهاز الذي نستخدمه لأعمال أخرى، لذا لا يمكننا التأكد مما إذا كانت هناك مشكلة حقيقية أم أن الجهاز بطيء في الأداء. لم نبلغ الجهات المعنية بهذه المشكلة بعد. إذا واجهت نفس الحالة، فأنت لست الوحيد.
هل ترغب في أن نقوم بتشغيله نيابة عنك؟
لا يوجد جهاز GPU مناسب لذلك؟ اطلب منا تشغيل نموذجك على أجهزتنا.
اطلب تشغيل النموذج صوت على ما يجب تشغيله بعد ذلك
نحن من يقرر ما سيتم تشغيله، لأن النماذج الكبيرة يجب أن تتناسب مع مواصفات أجهزتنا. الأصوات تحدد ترتيب تشغيل النماذج في علامة التبويب المخصصة للتصويت. وتظهر النتائج على لوحة MakoBench.
ذات صلة: كيف يعمل MakoBench، الإصدار 4.0: ما الذي تغيّر، واللوحة الرئيسية.