Thursday, 17 September 2026 | التحديث اليومي نظرة ثاقبة للذكاء الاصطناعي، مكتوبة للبناة

مقارنة بين Ollama وllama.cpp (2026): ما الفرق بينهما، وأيهما يجب أن تختار؟

مقارنة llama.cpp وOllama تُعد مقارنة غير مألوفة، لأنهما ليسا في الواقع منافسين: فـOllama مبنية على قاعدة llama.cpp. والسؤال الصادق ليس أيُّهما أفضل، بل كم طبقة من الراحة تريدها بينك وبين محرك الاستنتاج.

إجابة سريعة

Ollama هي عبارة عن llama.cpp مع مدير نماذج، وخدمة خلفية، وواجهة برمجة تطبيقات (API) متوافقة مع OpenAI. استخدم Ollama ما لم تكن بحاجة إلى شيءٍ عمَّدَ Ollama إخفاءه: مثل إعدادات التجميع المخصصة، أو صيغ التكمين (quantisation) المتطورة جدًّا، أو واجهات الأجهزة غير المألوفة، أو القدرة على دمج عملية الاستنتاج مباشرةً داخل ملف تنفيذي بلغة C++ أو Python. أما llama.cpp الخام فتوفر أقصى درجات التحكم وأدنى درجات الراحة، بينما توفر Ollama العكس تمامًا، مع تكلفة أداءٍ تكون عادةً ضئيلة جدًّا.

ما الذي تقوم به كل طبقة فعليًّا

llama.cpp Ollama
ما هو هذا الشيء محرك الاستنتاج (C/C++) غلاف حول ذلك المحرك
إدارة النماذج تقوم أنت بالبحث عن ملفات GGUF ووضعها يدويًّا ollama pullمكتبة مُصدَّرة حسب الإصدار
الخادم llama-serverيُشغَّل يدويًّا خدمة تعمل باستمرار على المنفذ 11434
التهيئة عشرات العلمات (flags) الخاصة بسطر الأوامر، مع تحكم كامل قيم افتراضية معقولة، وملفات النماذج (modelfiles) لإعادة تعريفها عند الحاجة
خيارات التجميع تجميع البرمجية خصيصًا لجهازك المحدد ملفات تنفيذية مُجمَّعة مسبقًا
منحنى التعلُّم حاد جدًّا دقائق
الأفضل لـ الدمج في التطبيقات، والأبحاث، وضبط كل المعايير بدقة التطبيقات، والأتمتة، والاستخدام اليومي

متى يكون استخدام llama.cpp الخام مبرَّرًا

توجد أربع حالات تبرِّر حقًّا تجاوز الغلاف البرمجي. أولًا، دمج عملية الاستنتاج داخل ملفك التنفيذي الخاص — فـllama.cpp مكتبة، بينما Ollama خدمة يجب أن تُوزَّع جنبًا إلى جنب مع تطبيقك. ثانيًا، صيغ التكمين الجديدةالتي تظهر أولًا في المشروع الأصلي (upstream)، وقد تستغرق أسابيع حتى تظهر في المكتبة المُدارة. ثالثًا، أجهزة غير مألوفة — مثل علمات التجميع المحددة لوحدات معالجة الرسومات القديمة، أو مسرِّعات غير تقليدية، أو مجموعات التعليمات الخاصة بمعالجات CPU. رابعًا، استخلاص آخر بضعة نقاط مئوية من الأداء— إذ إن تجميع البرنامج خصيصًا لوحدة المعالجة المركزية لديك، وضبط عدد الخيوط وحجم الدفعات (batch sizes)، قد يتفوق على الملفات التنفيذية المُجمَّعة مسبقًا العامة، رغم أن المكاسب تكون عادةً في حدود نقطة مئوية واحدة أو اثنتين، وليس تحسينات جذرية.

ما تتخلى عنه

كل ما يضيفه Ollama، ستحتاج إلى إعادة بنائه بنفسك: تنزيل ملفات GGUF وتنظيمها، والحفاظ على تشغيل الخادم، وإدارة النموذج المحمل حاليًّا، وكتابة واجهة برمجة التطبيقات (API) التي تتوقعها تطبيقاتك. ولمعظم المشاريع، يتطلب ذلك أيامًا من العمل لإعادة إنشاء شيءٍ موجودٍ بالفعل ومُدارٍ جيدًا. أما دليلنا الخاص بـ دليل Ollama فيغطي ما تتضمَّنه هذه الطبقة المُيسِّرة، وكذلك قائمة النماذج يُظهر المكتبة التي كنت ستُنظِّمها يدويًّا.

رأي Convly

إذا كنت تطرح هذا السؤال أصلًا، فاستخدم Ollama. أما الأشخاص الذين يحتاجون حقًّا إلى llama.cpp الخام — مثل مساهمي محركات التنفيذ، ومطوري الاستنتاج المدمج، ومحرِّكي الأجهزة — فإنهم يعرفونه بالفعل، وهم لا يقارنون بين الأدوات؛ بل يُجرِّبون عملية التجميع. أما المسار العملي الوسطي للغالبية العظمى فهو استخدام Ollama مع ملف النموذج (modelfile): فتحصل على أطوال سياق مخصصة، وتعليمات نظام (system prompts) ومواصفات عيّنة (sampling parameters) دون الحاجة إلى امتلاك سلسلة أدوات البناء. الجأ إلى llama.cpp فقط عندما يفرض عليك متطلبٌ محدَّدٌ وواضحٌ ذلك، وليس من أجل سرعةٍ قد لا تلاحظها أصلًا.

الأسئلة الشائعة

هل يستخدم Ollama مكتبة llama.cpp؟

نعم. إن مسار الاستنتاج في Ollama مبنيٌّ على llama.cpp، ولذلك يُنفِّذ كلاهما ملفات نماذج GGUF نفسها ويُحقِّقان أداءً متشابهًا عند استخدام نفس الإعدادات.

هل تتفوَّق سرعة llama.cpp على Ollama؟

بدرجة ضئيلة جدًّا، إذا قمت بترجمته (compiling) خصيصًا لجهازك الدقيق وضبطت العلمات (flags) بدقة. أما عند التشغيل القياسي (out of the box) باستخدام نفس النموذج ونفس درجة التكميم (quantisation)، فإن الفرق ضئيلٌ جدًّا — ومعظم الفروق المُبلَّغ عنها تعود إلى اختلاف أطوال السياق أو إعدادات تفويض المعالجة إلى وحدة معالجة الرسوميات (GPU-offload)، وليس إلى الاختلاف بين المحركين.

هل يمكنني استخدام ملفات GGUF الخاصة بي المُنشأة عبر llama.cpp مع Ollama؟

نعم — فملف النموذج (modelfile) الذي يشير إلى ملف GGUF محلي يُدرجه تلقائيًّا في Ollama، وبالتالي يمكنك الاحتفاظ بالملفات التي حمَّلتها مسبقًا بدلًا من إعادة تنزيلها.

أيُّها يجب أن يتعلَّمه المبتدئ أولاً؟

Ollama. فهو يُعلِّم المفاهيم الجوهرية — كالتكثيف (quantisation)، وطول السياق (context length)، وحدود الذاكرة — دون الحاجة إلى خطوة بناء (build step). أما llama.cpp فيصبح أكثر منطقية بمجرد أن تعرف بالضبط ما الذي تريد تغييره.

انظر أيضًا Ollama مقابل LM Studio و vLLM مقابل Ollama.

بقلم مصطفى إحسان

مصطفى إحسان هو مؤسس ومُحرِّر موقع Convly.ai. وقد أنشأ قاعدة بيانات النماذج الحية للذكاء الاصطناعي الخاصة بالموقع، ومؤشر الأداء السعري الخاص به، بالإضافة إلى الحاسبات المجانية لحساب متطلبات الذاكرة VRAM، وتكاليف واجهة برمجة التطبيقات (API)، والاقتصاديات المرتبطة بالاستضافة الذاتية. ويكتب مصطفى عن أسعار النماذج، ونتائج الاختبارات المعيارية، والأجهزة اللازمة لتشغيل نماذج الذكاء الاصطناعي محليًّا، ويعطي دائمًا الأولوية للأرقام المُقاسة بدقة على الادعاءات التي تطلقها الشركات المصنِّعة.

انتقل إلى الأعلى