لماذا تستضيف نماذج LLM ذاتيًا على VPS
استضافة خادم نماذج ذاتيًا تعني إبقاء مُوجِّهاتك وبياناتك الحساسة بعيدًا عن الواجهات البرمجية التجارية، وإلغاء الفوترة حسب الرمز (token)، وتحديدك أنت للنموذج وإصداره وتكميمه (quantization). على VPS، تكشف واجهة برمجية خاصة لتطبيقاتك الداخلية (روبوتات محادثة، RAG، مساعدو برمجة) من دون أي تسرّب إلى الخارج. يتميّز Ollama ببساطته الجذرية: أمر واحد لتنزيل نموذج وتشغيله، وواجهة برمجية نظيفة، وإدارة تلقائية للذاكرة. أما LocalAI فيضع نفسه بديلًا 'drop-in' لواجهة OpenAI: يكشف نقاط النهاية نفسها (المحادثة، التضمينات، الصور، الصوت) ويقبل خلفيات (backends) وصيغ نماذج متعددة. يكمن الخيار بين تجربة بسيطة إلى أقصى حد وأوسع توافق ممكن.
فوائد نموذج 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، ووحدة تخزين دائمة للنماذج، ونطاقًا فرعيًا إذا كشفت الواجهة البرمجية، وبروكسي عكسي مع مصادقة.
نشر Ollama (أو LocalAI) على VPS
تجهيز التخزين ووحدة تخزين النماذج
أنشئ وحدة تخزين مخصصة (/srv/ollama/models) على قرص كبير بما يكفي. بما أن الأوزان ضخمة وقابلة لإعادة الاستخدام، يجب أن تبقى خارج الحاوية لتجنّب إعادة التنزيل عند كل إعادة تشغيل.
تشغيل الحاوية
شغِّل ollama/ollama (أو localai/localai) مع تركيب وحدة تخزين النماذج وربط المنفذ 11434/8080 محليًا. على VPS من دون GPU، يكون وضع المعالج تلقائيًا؛ ومع GPU، فعِّل وقت التشغيل (runtime) المناسب.
تنزيل نموذج
مع Ollama، نفِّذ docker compose exec ollama ollama pull llama3.2:3b. ومع LocalAI، عرِّف النموذج في المعرض أو ضع ملف GGUF في مجلد النماذج، ثم تحقّق من تحميله في السجلات (logs).
اختبار الواجهة البرمجية
أجرِ استدعاءً محليًا: curl http://127.0.0.1:11434/api/generate لـ Ollama، أو نقطة النهاية المتوافقة مع OpenAI POST /v1/chat/completions لـ LocalAI. تأكّد من أن التوليد يعمل قبل أي كشف.
الكشف خلف بروكسي عكسي بمصادقة
وجِّه llm.yourdomain.com إلى المنفذ المحلي باستخدام Caddy أو Nginx لأجل TLS، وأضِف طبقة مصادقة (مفتاح API في الترويسة أو basic auth). واجهة LLM مفتوحة على الإنترنت هي مدخل مكلف لا ينبغي تركه بلا رقابة أبدًا.
توصيل تطبيقاتك
وجِّه حزم SDK الحالية إلى base_url الخاص بك. بما أن LocalAI يكشف واجهة OpenAI، تعمل معظم المكتبات بمجرد تغيير الرابط والمفتاح؛ ومن جهة Ollama، استخدم واجهته الأصلية أو نقطة نهايته المتوافقة.
| المعيار | Ollama | LocalAI |
|---|---|---|
| الفلسفة | البساطة، أمر واحد لكل نموذج | بديل drop-in لواجهة OpenAI |
| التوافق مع واجهة OpenAI | نقطة نهاية متوافقة متاحة | أصلي ومتكامل جدًا |
| الوسائط المدعومة | نص، تضمينات، رؤية (حسب النموذج) | نص، تضمينات، صور، صوت، TTS |
| إدارة النماذج | `ollama pull`، سلس جدًا | معرض + ملفات، أكثر يدوية |
| الخلفيات / الصيغ | GGUF بشكل أساسي | خلفيات وصيغ متعددة |
| سهولة البدء | سريع جدًا | مزيد من الإعداد |
| دعم GPU / CPU | كلاهما، تبديل سهل | كلاهما، دعم عتادي واسع |
| حالة الاستخدام المثالية | البدء بسرعة، النمذجة الأولية | ترحيل تطبيق OpenAI إلى الاستضافة الذاتية |
على VPS من دون GPU، سرّ السلاسة هو التكميم (quantization): نموذج بترميز Q4_K_M يقدّم أفضل موازنة بين الحجم والجودة ويتّسع في الذاكرة حيث تنهار النسخة غير المُكمَّمة. حُدّ أيضًا context window عند الحد الأدنى الضروري (مثلًا 4096 tokens): سياق مُبالغ في حجمه يضاعف استهلاك الذاكرة وزمن الاستجابة من دون فائدة حقيقية لمعظم المهام.