انتقل إلى المحتوى
Taha Media

تشغيل نموذج ذكاء اصطناعي محلياً لشركتك: العتاد والنماذج والخطوات بدون أن تخرج بياناتك

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

نُشر في 4 دقائق قراءة

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

ماذا يعني "محلي" بالضبط؟

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

لكن "محلي" لا يعني تلقائياً "آمن". إذا فتحت منفذ النموذج على الإنترنت بدون حماية، أو استخدمت واجهة دردشة ترسل إحصاءات، فقد ضيعت الفائدة. سنعود لهذا في قسم التأمين.

كم ذاكرة أحتاج؟

القاعدة التقريبية: حجم النموذج بعد الضغط (Quantization) يساوي عدد المعاملات × عدد البتات ÷ 8، ثم أضف هامشاً لذاكرة السياق (KV cache) التي تكبر مع طول النص.

صيغة الضغط الشائعة Q4_K_M تستخدم قرابة 4.5 إلى 5 بتات للمعامل. فتقريباً:

حجم النموذجالملف بصيغة Q4 تقريباًأين يعمل بشكل مريح
7 إلى 8 مليار4.5 إلى 5 GBبطاقة 8GB، أو معالج مع 16GB RAM
14 مليارقرابة 9 GBبطاقة 12GB، أو 32GB RAM
32 مليارقرابة 19 إلى 20 GBبطاقة 24GB، أو 32GB RAM ببطء
70 مليارقرابة 40 GBبطاقتان كبيرتان، أو جهاز بذاكرة موحدة كبيرة

هذه أرقام تقديرية للتخطيط، والحجم الدقيق مكتوب بجانب كل ملف على Hugging Face.

لماذا نماذج MoE مهمة للشركات الصغيرة؟

نماذج "خليط الخبراء" (Mixture of Experts) مثل النماذج التي يكتب في اسمها 35B-A3B فيها 35 مليار معامل إجمالاً، لكن قرابة 3 مليارات فقط تعمل لكل كلمة. هذا يعني أنك تحتاج ذاكرة RAM تكفي لكامل الملف، لكن السرعة تقترب من نموذج صغير.

وفي llama.cpp يمكنك إبقاء طبقات "الخبراء" على المعالج وذاكرة RAM، ووضع الباقي على بطاقة الرسوميات، عبر الخيار --n-cpu-moe (أو --cpu-moe لكل الخبراء).

من تجربتي: شغّلت نموذج MoE بحجم 35 مليار معامل (35B-A3B بصيغة Q4_K_M، ملف بحجم قرابة 21.7GB) على سيرفر منزلي فيه بطاقة GTX 1650 بذاكرة 4GB فقط، ومعالج Ryzen 5 5500، و26GB RAM مخصصة للحاوية. السرعة بدأت عند 6 رموز في الثانية ووصلت إلى قرابة 37 رمزاً في الثانية. والمفاجأة أن أكبر تحسن لم يكن من ضبط النموذج: الحاوية كانت تستخدم ذاكرة Swap ممتلئة بالكامل، فكان النظام ينقل أجزاء النموذج إلى القرص. إزالة الـ Swap وحدها رفعت السرعة من 6 إلى 34 رمزاً في الثانية.

الدرس: قِس قبل أن تشتري عتاداً جديداً. كثير من البطء سببه إعدادات وليس ضعف الجهاز.

أي برنامج تشغيل أختار؟

  • Ollama: الأسهل للبداية. أمر واحد لتنزيل النموذج وتشغيله، وواجهة متوافقة مع OpenAI على http://localhost:11434/v1/، فأي برنامج يدعم OpenAI يمكن توجيهه إليه.
  • llama.cpp (llama-server): تحكم أدق في توزيع الطبقات بين البطاقة والمعالج، وهو الأنسب للعتاد المحدود ونماذج MoE.
  • vLLM: للإنتاج متعدد المستخدمين على بطاقات قوية، أعلى إنتاجية لكنه يحتاج إعداداً أكثر وذاكرة بطاقة أكبر.

خطوات التشغيل بـ Ollama

# تثبيت على Linux
curl -fsSL https://ollama.com/install.sh | sh

# تنزيل نموذج وتجربته
ollama pull <اسم-النموذج>
ollama run <اسم-النموذج> "لخص هذه الفقرة في سطرين: ..."

إعدادات مهمة من الوثائق الرسمية:

  • يستمع Ollama افتراضياً على 127.0.0.1:11434، أي من الجهاز نفسه فقط. لا تغيّر ذلك عبر OLLAMA_HOST إلا خلف حماية.
  • طول السياق الافتراضي 4096 رمزاً. للمستندات الطويلة ارفعه بـ OLLAMA_CONTEXT_LENGTH أو num_ctx في كل طلب، مع العلم أن ذلك يستهلك ذاكرة إضافية.
  • يبقى النموذج في الذاكرة 5 دقائق بعد آخر طلب ثم يُفرّغ. إذا كان الاستخدام متقطعاً ولا تريد انتظار التحميل كل مرة، اضبط OLLAMA_KEEP_ALIVE.

ثم يمكن لأي تطبيق داخلي استدعاؤه:

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"<اسم-النموذج>","messages":[{"role":"user","content":"مرحباً"}]}'

تأمين التشغيل داخل الشركة

  1. أبقِ النموذج على localhost، وضع أمامه بروكسي (Caddy أو Nginx) بمصادقة، أو اجعله متاحاً فقط عبر VPN الشركة.
  2. لا تفتح المنفذ 11434 على الإنترنت. خوادم Ollama المكشوفة بدون مصادقة يمكن لأي أحد استخدامها.
  3. سجّل من يستخدم النظام دون تخزين محتوى الأسئلة إذا كان حساساً.
  4. راجع واجهة الدردشة التي تضعها فوقه: هل ترسل إحصاءات؟ هل تخزن المحادثات؟ وأين؟

الإجابة من ملفات الشركة (RAG)

النموذج وحده لا يعرف سياسات شركتك. لكي يجيب منها، تُقسّم الملفات إلى مقاطع، وتُحوّل لمتجهات بنموذج تضمين (Embeddings) محلي أيضاً، وتُخزّن في قاعدة مثل Postgres مع pgvector. عند السؤال يُسترجع أقرب المقاطع ويُطلب من النموذج الإجابة منها فقط مع ذكر المصدر. هكذا يمكن للموظف التحقق من كل إجابة، ويقول النظام "غير موجود في الملفات" بدل أن يخترع.

توقعات واقعية

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

الخلاصة

ابدأ بسؤال: ما المهمة بالضبط؟ ثم اختر أصغر نموذج يؤديها جيداً على بياناتك، وقدّر الذاكرة بالقاعدة أعلاه، وفكّر في نماذج MoE إذا كانت بطاقتك صغيرة وذاكرة RAM كبيرة. شغّله على localhost خلف مصادقة، وقِس السرعة والجودة قبل التوسع.

المصادر

تحتاج من ينفّذ هذا عنك؟

خدمة

مساعد ذكاء اصطناعي يجيب من ملفات شركتك مع ذكر المصدر

كل إجابة مرفقة باسم الملف والصفحة، ويقول بوضوح إذا لم تكن المعلومة في ملفاتك. وخيار تشغيله بالكامل على سيرفرك بنموذج محلي فلا تخرج بياناتك.

خدمة

أركّب لك النظام على سيرفرك مع SSL ونسخ احتياطي

n8n أو Supabase أو Odoo أو غيرها، على VPS أو جهاز داخل شركتك: Docker، دومين بشهادة SSL، نسخ احتياطي تلقائي مع شرح الاستعادة، ودليل تشغيل بالعربية. التسليم خلال يومين.