دليل النشر

Ollama مقابل LocalAI: أي خادم نماذج LLM مستضاف ذاتيًا؟

انشر على VPS Cloud ←

مقارنة

Ollama مقابل LocalAI: أي خادم نماذج LLM مستضاف ذاتيًا؟

مقارنات8 دقائق للقراءةعدد الخطوات: 6

تشغيل نماذج اللغة على خادمك الخاص، من دون إرسال مُوجِّهاتك (prompts) إلى طرف ثالث، هو جوهر الذكاء الاصطناعي المستضاف ذاتيًا. يستهدف ‏Ollama البساطة الجذرية — أمر واحد لكل نموذج، وواجهة برمجية نظيفة، وإدارة تلقائية للذاكرة. أما ‏LocalAI فيستهدف التوافق الشامل — نقاط النهاية نفسها التي تقدمها ‏OpenAI API، وخلفيات متعددة، وصيغ متنوعة. كلاهما يعمل على ‏VPS دون ‏GPU. إليك كيفية الاختيار والنشر والتكامل حسب ملفك الشخصي.

المحتويات· لماذا تستضيف نماذج LLM ذاتيًا على VPS1/9
  1. 01لماذا تستضيف نماذج LLM ذاتيًا على VPS
  2. 02فوائد نموذج LLM مستضاف ذاتيًا
  3. 03المتطلبات: نماذج مُكمَّمة وذاكرة واقعية
  4. 04نشر Ollama (أو LocalAI) على VPS
  5. 05إدارة النماذج: ollama pull وollama list والحذف
  6. 06الأداء والذاكرة: اختيار التكميم المناسب
  7. 07التكامل: Open WebUI وOpenAI API وSDK
  8. 08استكشاف الأخطاء: الأخطاء الشائعة
  9. 09Ollama أم LocalAI: أي ملف شخصي لأي أداة؟

لماذا تستضيف نماذج LLM ذاتيًا على VPS

استضافة خادم نماذج ذاتيًا تعني إبقاء مُوجِّهاتك وبياناتك الحساسة بعيدًا عن الواجهات البرمجية التجارية، وإلغاء الفوترة حسب الرمز (token)، وتحديدك أنت للنموذج وإصداره وتكميمه (quantization). على ‏VPS، تكشف واجهة برمجية خاصة لتطبيقاتك الداخلية (روبوتات محادثة، ‏RAG، مساعدو برمجة) من دون أي تسرُّب إلى الخارج. يتميّز ‏Ollama ببساطته الجذرية: أمر واحد لتنزيل نموذج وتشغيله، وواجهة برمجية نظيفة، وإدارة تلقائية للذاكرة. أما ‏LocalAI فيضع نفسه بديلًا ‏'drop-in' لواجهة ‏OpenAI: يكشف نقاط النهاية نفسها (المحادثة، والتضمينات، والصور، والصوت) ويقبل خلفيات وصيغ نماذج متعددة. يكمن الخيار بين تجربة بسيطة إلى أقصى حد وأوسع توافق ممكن.

فوائد نموذج LLM مستضاف ذاتيًا

  • مُوجِّهات وبيانات سرّية لا تغادر ‏VPS الخاص بك أبدًا
  • لا فوترة حسب الرمز (token)، تكلفة متوقّعة مرتبطة بالخادم وحده
  • واجهة برمجية خاصة موصولة مباشرةً بتطبيقاتك الداخلية
  • حرية اختيار النموذج وحجمه ومستوى تكميمه (quantization)
  • توافق مع حزم ‏SDK الحالية عبر واجهة برمجية بأسلوب ‏OpenAI
  • مثالي لـ ‏RAG: اقرن نموذج ‏LLM بقاعدة بياناتك وبمحرك بحث مستضاف ذاتيًا

المتطلبات: نماذج مُكمَّمة وذاكرة واقعية

من دون ‏GPU، التزم بنماذج مُكمَّمة خفيفة. نموذج ‏3B بصيغة ‏GGUF Q4 يعمل على ‏VPS بـ ‏4 vCPU و‏8 غيغابايت من الذاكرة بزمن استجابة مقبول للاختبار؛ ونموذج ‏7B/8B بترميز ‏Q4 يتطلّب ‏8 إلى ‏16 غيغابايت من الذاكرة ومعالجًا جيدًا ليبقى قابلًا للاستخدام. وما بعد ذلك، على المعالج وحده، يصبح زمن الاستجابة مانعًا: للعمل في الوقت الفعلي على النماذج الكبيرة، لا غنى عن ‏VPS مزوَّد بـ ‏GPU. والأهم، جهِّز قرصًا سخيًا: أوزان عدة نماذج تبلغ بسرعة عشرات الغيغابايت. تحتاج إلى ‏Docker و‏Compose، ووحدة تخزين دائمة للنماذج، ونطاقًا فرعيًا إذا كشفت الواجهة البرمجية، وبروكسي عكسي مع مصادقة.

مرّر الجدول أفقيًا

المعيارOllamaLocalAI
الفلسفةالبساطة، أمر واحد لكل نموذجبديل ‏drop-in لواجهة ‏OpenAI
التثبيتسريع جدًا، صورة ‏Docker رسمية جاهزةيحتاج مزيدًا من الإعداد، خلفيات عديدة
التوافق مع ‏OpenAI APIنقطة نهاية متوافقة `/v1/chat/completions`أصلية وكاملة جدًا، جميع نقاط النهاية
النماذج المدعومةمكتبة رسمية على ollama.com/library‏GGUF و‏GPTQ و‏ONNX و‏exllama2 وغيرها
دعم ‏GPU‏NVIDIA و‏AMD و‏Apple Metal — اكتشاف تلقائي‏NVIDIA و‏AMD و‏CPU — دعم واسع للأجهزة
تعدد النماذج المتزامنةنعم، تحميل/تفريغ تلقائينعم، خلفيات معزولة لكل نموذج
واجهة ويب مدمجةلا (‏Open WebUI منفصل)لا (يُوصى بواجهة طرف ثالث)
حالة الاستخدام المثاليةالبدء بسرعة، النمذجة الأوليةترحيل تطبيق ‏OpenAI إلى الاستضافة الذاتية

نشر Ollama (أو LocalAI) على VPS

  1. تجهيز التخزين ووحدة تخزين النماذج

    أنشئ وحدة تخزين مخصصة (/srv/ollama/models) على قرص كبير بما يكفي. بما أن الأوزان ضخمة وقابلة لإعادة الاستخدام، يجب أن تبقى خارج الحاوية لتجنّب إعادة التنزيل عند كل إعادة تشغيل.

  2. تشغيل الحاوية

    شغِّل ollama/ollama (أو localai/localai) مع تركيب وحدة تخزين النماذج وربط المنفذ 11434/8080 محليًا. على ‏VPS من دون ‏GPU، يكون وضع المعالج تلقائيًا؛ ومع ‏GPU، فعِّل وقت التشغيل (runtime) المناسب.

  3. تنزيل نموذج

    مع ‏Ollama، نفِّذ docker compose exec ollama ollama pull llama3.2:3b. ومع ‏LocalAI، عرِّف النموذج في المعرض أو ضع ملف ‏GGUF في مجلد النماذج، ثم تحقّق من تحميله في السجلات (logs).

  4. اختبار الواجهة البرمجية

    أجرِ استدعاءً محليًا: curl http://127.0.0.1:11434/api/generate لـ ‏Ollama، أو نقطة النهاية المتوافقة مع ‏OpenAI POST /v1/chat/completions لـ ‏LocalAI. تأكّد من أن التوليد يعمل قبل أي كشف.

  5. الكشف خلف بروكسي عكسي بمصادقة

    وجِّه ‏llm.yourdomain.com إلى المنفذ المحلي باستخدام ‏Caddy أو ‏Nginx لأجل ‏TLS، وأضِف طبقة مصادقة (مفتاح ‏API في الترويسة أو ‏basic auth). واجهة ‏LLM مفتوحة على الإنترنت هي مدخل مكلف لا ينبغي تركه بلا رقابة أبدًا.

  6. توصيل تطبيقاتك

    وجِّه حزم ‏SDK الحالية إلى base_url الخاص بك. بما أن ‏LocalAI يكشف واجهة ‏OpenAI، تعمل معظم المكتبات بمجرد تغيير الرابط والمفتاح؛ ومن جهة ‏Ollama، استخدم واجهته الأصلية أو نقطة نهايته المتوافقة.

إدارة النماذج: ollama pull وollama list والحذف

مع ‏Ollama، تتم إدارة النماذج بالكامل عبر سطر الأوامر أو ‏REST API. ollama pull llama3.2 ينزِّل النسخة الافتراضية؛ ollama pull llama3.1:8b-instruct-q4_K_M يسحب نسخة مُكمَّمة محددة من المكتبة الرسمية على ‏ollama.com/library. ollama list يعرض النماذج المحلية مع حجمها على القرص وبصمتها (digest). ollama run mistral يفتح جلسة تفاعلية في الطرفية. ollama rm llama3.2 يحذف نموذجًا لتحرير المساحة. مع ‏LocalAI، المنطق مختلف: النماذج تعيش في المجلد /models المركَّب داخل الحاوية. تنزِّل ملف ‏GGUF (صيغة ‏llama.cpp) أو ‏GPTQ وتضعه في ذلك المجلد؛ يحمّله ‏LocalAI عند البدء أو عند الطلب. معرض ‏LocalAI يوفر إعدادات جاهزة للنماذج الشائعة. نقطة عملية: ‏Ollama يفرِّغ تلقائيًا النماذج غير المستخدمة لتحرير الذاكرة، في حين يترك ‏LocalAI هذا لإعداداتك.

الأداء والذاكرة: اختيار التكميم المناسب

التكميم (quantization) يقلّل دقة الأوزان لتقليص حجم النموذج واستهلاكه للذاكرة. الصيغتان ‏Q4_K_M و‏Q5_K_S هما الأكثر شيوعًا في الممارسة. ‏Q4_K_M (4 بت، طريقة ‏K، حجم ‏M) تقدّم أفضل موازنة بين الحجم والجودة لمعظم الاستخدامات: نموذج ‏Llama 3.1 8B بصيغة ‏Q4_K_M يستهلك نحو 4.7 غيغابايت من الذاكرة، مقابل نحو 16 غيغابايت للنسخة غير المُكمَّمة بـ ‏FP16 (المصدر: ‏ollama.com/library/llama3.1). ‏Q5_K_S ترتفع إلى نحو 5.5 غيغابايت لكنها تحافظ بشكل أفضل على التماسك في التوليدات الطويلة. على ‏VPS بسعة 8 غيغابايت، استهدف نماذج ‏3B أو ‏7B بصيغة ‏Q4؛ وعلى 16 غيغابايت، يبقى ‏7B/8B Q5_K_M سلسًا. على المعالج وحده، توقّع 3 إلى 10 رموز/ثانية حسب النموذج وعدد الأنوية — مقبول للاستخدام غير المتزامن، بطيء جدًا للبث التفاعلي. مع ‏GPU من ‏NVIDIA، يكتشف ‏Ollama تلقائيًا ‏CUDA ويفرِّغ الطبقات على ‏GPU؛ والمنطق ذاته مع ‏AMD (ROCm) و‏Apple Silicon (Metal). يوفر ‏LocalAI تحكمًا أدق في توزيع طبقات ‏GPU عبر معاملات تكوين الخلفية، مفيد حين يتشارك ‏GPU و‏CPU الأحمال.

على ‏VPS من دون ‏GPU، سرّ السلاسة هو التكميم (quantization): نموذج بترميز ‏Q4_K_M يقدّم أفضل موازنة بين الحجم والجودة ويتّسع في الذاكرة حيث تنهار النسخة غير المُكمَّمة. حُدّ أيضًا context window عند الحد الأدنى الضروري (مثلًا 4096 tokens): سياق مُبالَغ في حجمه يضاعف استهلاك الذاكرة وزمن الاستجابة من دون فائدة حقيقية لمعظم المهام.

التكامل: Open WebUI وOpenAI API وSDK

‏Open WebUI هو واجهة المستخدم الرسومية المرجعية لـ ‏Ollama: تُنشر كحاوية ‏Docker واحدة وتتصل بـ ‏Ollama عبر متغير البيئة OLLAMA_BASE_URL=http://ollama:11434. تحصل على محادثة كاملة مع سجل وتحديد نموذج وإدارة المحادثات — مشابهة لـ ‏ChatGPT لكن مستضافة على ‏VPS الخاص بك. للتكاملات البرمجية، يكشف ‏Ollama /api/generate (توليد بسيط) و/v1/chat/completions (متوافق مع ‏OpenAI). عميل ‏Python موجود يُعاد تهيئته هكذا: client = openai.OpenAI(base_url='http://localhost:11434/v1', api_key='ollama'). ‏LocalAI يكشف بالضبط الواجهة ذاتها لـ ‏OpenAI — POST /v1/chat/completions وPOST /v1/embeddings وPOST /v1/images/generations — مما يتيح ترحيل تطبيق موجود بتغيير الرابط الأساسي والمفتاح فحسب. أطر العمل كـ ‏LangChain و‏LlamaIndex و‏Semantic Kernel لديها جميعًا موصّل ‏Ollama أو ‏OpenAI متوافق مع الحلين. لـ ‏RAG، اقرن أيًّا منهما بـ ‏Weaviate أو ‏Qdrant أو ‏Chroma: يولِّد ‏LLM، ويصفِّي محرك النواقل (vector engine) السياقات ذات الصلة، ويبقى كل شيء على خادمك.

استكشاف الأخطاء: الأخطاء الشائعة

خطأ ‏OOM (نفاد الذاكرة): النموذج أكبر من الذاكرة المتاحة. تحقّق من الحجم الفعلي للنموذج بـ ollama list، وقلِّل التكميم (Q4 بدلًا من Q5 أو Q8)، أو اختر نموذجًا أصغر. إذا استمر الخطأ، قلِّل num_ctx (نافذة السياق) في خيارات التوليد. النموذج غير موجود: مع ‏Ollama، قد يفشل ollama pull إذا كان الاسم غير صحيح — تحقّق من القائمة الدقيقة على ‏ollama.com/library؛ مع ‏LocalAI، تأكّد من أن ملف ‏GGUF موجود في المجلد /models وأن اسمه يطابق المعرِّف المُعلَن في الإعداد. ‏GPU غير مكتشف: على ‏VPS مع ‏GPU من ‏NVIDIA، يحتاج ‏Ollama إلى ‏NVIDIA Container Toolkit مثبتًا على المضيف والمعامل runtime: nvidia في ملف ‏Compose؛ تحقّق بـ ollama ps من أن النموذج مُفرَّغ فعلًا على ‏GPU. مهلة انتهاء عند التوليدات الطويلة: ارفع مهلة البروكسي العكسي (Nginx: proxy_read_timeout 300s) ومهلة العميل. للاستخدام المكثّف، فضِّل البث ("stream": true) الذي يُعيد الرموز فور توليدها ويتجنّب انتهاء المهلة في الردود الطويلة.

Ollama أم LocalAI: أي ملف شخصي لأي أداة؟

اختر ‏Ollama إذا كنت تبدأ مع ‏LLM المستضاف ذاتيًا، أو إذا أردت تجربة مطوِّر قريبة من مدير الحزم، أو إذا كانت حالتك النمذجة السريعة أو روبوت محادثة داخلي أو مساعد برمجة، أو إذا كنت تخطط لتوصيل ‏Open WebUI للحصول على واجهة مستخدم فورية. ‏Ollama يتولى وحده التنزيلات والتكميم والتبديل بين ‏CPU و‏GPU — لا يتطلّب أي إعداد إضافي فوق ملف ‏Compose. اختر ‏LocalAI إذا كنت ترحِّل تطبيقًا موجودًا يستدعي ‏OpenAI API وتريد تجنّب أي تعديلات في كود العميل، أو إذا كنت بحاجة إلى وسائط غير النص (توليد صور، TTS، STT) في حاوية واحدة، أو إذا كنت تدير صيغ نماذج متنوعة (GPTQ, ONNX, exllama2) لا يغطيها وحده الخلفية ‏llama.cpp. ‏LocalAI يتطلّب إعدادًا أوليًا أكبر لكنه يوفر تحكمًا أوسع في بيئة الإنتاج.

خادم LLM الخاص بك مستضاف ذاتيًا

انشر Ollama أو LocalAI على VPS Cloud من ServOrbit مع قالب Docker: واجهة برمجية خاصة وبروكسي عكسي وSSL، لتوصيل تطبيقاتك من دون إرسال مُوجِّهاتك إلى الخارج.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة