دليل إعداد Ollama: تشغيل الـ LLMs المحلية كالمحترفين (إصدار 2026)

٢٢ فبراير ٢٠٢٦

Ollama Setup Guide: Run Local LLMs Like a Pro (2026 Edition)

ملخص

  • Ollama يتيح لك تشغيل نماذج لغوية كبيرة (LLMs) مثل Llama 2 و Mistral و Phi 2 محلياً على أنظمة macOS و Linux و Windows.
  • التثبيت يتم بأمر واحد، لكن الضبط الدقيق (fine-tuning) وتحسين أداء وحدة معالجة الرسومات (GPU) وإدارة النماذج يتطلب عناية.
  • يمكنك تشغيل النماذج عبر واجهة سطر الأوامر (CLI) أو API REST، أو دمجها مع تطبيقات مثل VS Code و LangChain.
  • يغطي الدليل ضبط الأداء، والأمان، والمراقبة، واستكشاف الأخطاء وإصلاحها للحصول على نتائج بمستوى الإنتاج الاحترافي.
  • يتضمن أمثلة قابلة للتنفيذ وأفضل الممارسات الواقعية.

ما ستتعلمه

  1. ما هو Ollama وكيف يتناسب مع نظام النماذج اللغوية الكبيرة المحلية.
  2. كيفية تثبيت Ollama على macOS و Linux و Windows.
  3. كيفية سحب وتشغيل وإدارة النماذج بكفاءة.
  4. كيفية دمج Ollama مع تطبيقات Python أو JavaScript.
  5. كيفية مراقبة الأداء، وتأمين إعداداتك، وتصحيح المشكلات الشائعة.

المتطلبات الأساسية

قبل البدء:

  • الأجهزة: وحدة معالجة مركزية (CPU) حديثة (Apple Silicon أو x86_64) ويفضل وحدة معالجة رسومات (GPU) بذاكرة VRAM لا تقل عن 8 جيجابايت.
  • نظام التشغيل: macOS 12+، أو Ubuntu 22.04+، أو Windows 11 (يوصى بـ WSL2 للحصول على أفضل النتائج).
  • مهارات أساسية في سطر الأوامر (CLI): الراحة في استخدام bash أو PowerShell.
  • اختياري: الإلمام بـ Docker لعمليات النشر المعتمدة على الحاويات.

مقدمة: لماذا Ollama؟

Ollama هو بيئة تشغيل خفيفة للنماذج اللغوية الكبيرة المحلية. يوفر واجهة موحدة لتحميل وتشغيل وخدمة النماذج على جهازك الخاص — دون الحاجة للاعتماد على السحابة. فكر فيه كـ خادم LLM محلي يجرد تعقيدات أوزان النماذج، والترميز (tokenization)، وتسريع وحدة معالجة الرسومات (GPU).

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


Ollama مقابل واجهات برمجة تطبيقات LLM السحابية

الميزة Ollama (محلي) واجهات السحابة (مثل OpenAI, Anthropic)
زمن الاستجابة (Latency) منخفض (يعمل محلياً) يعتمد على الشبكة
التكلفة مجاني بعد الإعداد دفع مقابل كل رمز (token)
الخصوصية البيانات تبقى على الجهاز البيانات تُرسل إلى الخوادم
الأجهزة يتطلب موارد GPU/CPU بنية تحتية مدارة
التخصيص تحكم كامل، يمكن الضبط الدقيق محدود أو غير موجود
سهولة الإعداد متوسط سهل جداً

دليل الإعداد خطوة بخطوة

1. تثبيت Ollama

macOS

brew install ollama/tap/ollama
ollama serve

Linux (Debian/Ubuntu)

curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl start ollama

Windows (عبر WSL2)

wsl --install Ubuntu
curl -fsSL https://ollama.com/install.sh | sh

نصيحة: يتم تثبيت Ollama تلقائياً كخدمة خلفية تستمع على المنفذ 11434.


2. التحقق من التثبيت

قم بتشغيل:

ollama --version
ollama list

المخرجات المتوقعة:

ollama version 0.1.30
NAME     SIZE     MODIFIED

إذا رأيت معلومات الإصدار ولا توجد أخطاء، فأنت جاهز للبدء.


3. سحب نموذج

يستضيف Ollama نماذج مختارة مثل Llama 2 و Mistral و Phi 2. اسحب واحداً:

ollama pull llama2

سترى تقدم التحميل والبيانات الوصفية للنموذج. يتم تخزين النماذج في ~/.ollama/models.


4. تشغيل أول نموذج لك

ollama run llama2

يمكنك الآن الدردشة بشكل تفاعلي:

>>> What is the capital of France?
Paris.

للخروج، اكتب Ctrl + D.


5. التكامل عبر API REST

يكشف Ollama عن API HTTP محلي على المنفذ 11434.

مثال: عميل Python

import requests

prompt = {"model": "llama2", "prompt": "Explain quantum computing in simple terms."}
response = requests.post("http://localhost:11434/API/generate", json=prompt, stream=True)

for line in response.iter_lines():
    if line:
        print(line.decode())

هذا يقوم ببث الرموز (tokens) فور توليدها — وهو أمر رائع لتطبيقات الدردشة.

مثال: عميل JavaScript

const res = await fetch('http://localhost:11434/API/generate', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ model: 'llama2', prompt: 'Write a haiku about AI.' })
});

for await (const chunk of res.body) {
  process.stdout.write(chunk.toString());
}

6. إنشاء نماذج مخصصة

يمكنك تحديد ملف .modelfile لتخصيص السلوك:

FROM llama2
PARAMETER temperature 0.7
PARAMETER top_p 0.9
SYSTEM "You are a helpful assistant specialized in Python."

البناء والتشغيل:

ollama create python-helper -f ./Modelfile
ollama run python-helper

7. نظرة عامة على البنية

إليك كيف يتناسب Ollama مع سير عملك:

graph TD
A[المستخدم / التطبيق] -->|HTTP / CLI| B[Ollama Daemon]
B --> C[Model Runtime]
C --> D[تسريع GPU / CPU]
B --> E[التخزين المحلي (~/.ollama)]
  • B (Ollama Daemon): يعالج الطلبات ودورة حياة النموذج.
  • C (Runtime): ينفذ استنتاج النموذج.
  • E (Storage): يقوم بتخزين النماذج مؤقتاً للاستخدام دون اتصال.

متى تستخدم ومتى لا تستخدم Ollama

استخدم Ollama عندما تجنب Ollama عندما
تحتاج إلى خصوصية كاملة واستنتاج دون اتصال تحتاج إلى قابلية توسع هائلة لمتعدد المستخدمين
تريد بناء نماذج أولية بسرعة دون تكاليف API تفتقر إلى موارد GPU/CPU كافية
تبني أدوات داخلية أو مساعدين تحتاج إلى ضمان وقت تشغيل واتفاقيات مستوى الخدمة (SLAs)
تريد ضبطاً دقيقاً أو تخصيصاً للنماذج تفضل بساطة السحابة المدارة

مثال واقعي: الذكاء الاصطناعي المحلي على نطاق واسع

يستخدم العديد من المطورين في المؤسسات الكبيرة Ollama داخلياً لـ أعباء العمل الحساسة للخصوصية، مثل تلخيص المستندات الداخلية أو بناء مساعدين برمجيين (copilots) لا تغادر الشبكة المؤسسية أبداً. على الرغم من عدم توثيقها علناً، إلا أن استراتيجيات LLM المحلية المماثلة شائعة في مختبرات البحث والتطوير في الشركات والصناعات المنظمة حيث تهم مكان إقامة البيانات.


أفضل الممارسات

  • تسريع وحدة معالجة الرسومات (GPU): يكتشف Ollama تلقائياً خلفيات CUDA أو Metal1. بالنسبة لوحدات معالجة الرسومات NVIDIA، تأكد من تثبيت برامج التشغيل و CUDA 12+.
  • التكميم (Quantization): يتم توزيع النماذج بتنسيقات مكممة (مثل Q4_K_M) لتقليل استهلاك الذاكرة.
  • حجم الدفعة (Batch Size): اضبطه باستخدام أعلام --num-thread أو --num-batch لضبط معدل النتاج (throughput).
  • الذاكرة: احتفظ بما لا يقل عن 1.5 ضعف حجم النموذج في ذاكرة الوصول العشوائي (RAM) أو VRAM المتاحة.

أمثلة على مخرجات اختبار الأداء:

Tokens/s: 22.4 (CPU)
Tokens/s: 95.7 (GPU)

اعتبارات أمنية

  • تعرض الـ API المحلي: افتراضياً، يستمع Ollama على localhost. تجنب تعريض المنفذ 11434 علناً.
  • عزل البيئة (Sandboxing): قم بالتشغيل داخل Docker أو جهاز افتراضي (VM) للعزل إذا كنت تستخدم نماذج غير موثوقة.
  • أصالة النموذج: اسحب فقط من المصادر الموثوقة (سجل Ollama الرسمي).
  • حقن الأوامر (Prompt Injection): قم بتنقية مدخلات المستخدم عند دمج Ollama في التطبيقات2.

قابلية التوسع والجاهزية للإنتاج

تم تصميم Ollama لـ الاستنتاج على عقدة واحدة، ولكن يمكنك التوسع أفقياً:

  1. استخدام Docker: قم بتشغيل عدة مثيلات خلف وكيل عكسي (reverse proxy).
  • توزيع الأحمال (Load Balancing): استخدم Nginx أو Traefik لتوزيع الطلبات.
  • التخزين المؤقت (Caching): قم بتخزين الاستجابات المتكررة مؤقتاً لتقليل الحمل.
  • مثال لـ Docker-compose:

    version: '3'
    services:
      ollama1:
        image: ollama/ollama:latest
        ports: ["11434"]
      ollama2:
        image: ollama/ollama:latest
      proxy:
        image: nginx:latest
        ports:
          - "8080:80"
    

    الاختبار ومعالجة الأخطاء

    مثال لاختبار الوحدة (Unit Testing)

    يمكنك محاكاة (Mock) الـ API الخاص بـ Ollama في الاختبارات:

    import requests_mock
    
    def test_prompt():
        with requests_mock.Mocker() as m:
            m.post('http://localhost:11434/API/generate', json={"response": "Hello!"})
            res = requests.post('http://localhost:11434/API/generate', json={"prompt": "Hi"})
            assert res.json()['response'] == 'Hello!'
    

    نمط معالجة الأخطاء

    try:
        res = requests.post('http://localhost:11434/API/generate', timeout=30)
        res.raise_for_status()
    except requests.exceptions.Timeout:
        print("Model took too long to respond.")
    except requests.exceptions.ConnectionError:
        print("Ollama service not running.")
    

    المراقبة والقابلية للملاحظة

    يمكنك مراقبة Ollama عبر:

    • مقاييس النظام: htop، أو nvidia-smi، أو Activity Monitor.
    • السجلات (Logs): يقوم Ollama بتسجيل السجلات في ~/.ollama/logs.
    • Prometheus: قم بتغليف استدعاءات API الخاصة بـ Ollama بمصدري مقاييس (metrics exporters).

    مثال لمقياس Prometheus:

    ollama_tokens_generated_total{model="llama2"} 12345
    

    الأخطاء الشائعة والحلول

    المشكلة السبب الحل
    connection refused الخدمة (Daemon) لا تعمل قم بتشغيل ollama serve
    out of memory النموذج كبير جداً على الـ GPU استخدم نموذجاً أصغر مكمماً (quantized)
    invalid model صيغة Modelfile خاطئة تحقق باستخدام ollama show
    slow inference وضع المعالج (CPU) فقط قم بتفعيل الـ GPU أو تقليل طول السياق (context length)

    أخطاء شائعة يقع فيها الجميع

    1. تحميل نماذج ضخمة متعددة بدون مساحة قرص كافية.
    2. جعل الـ API متاحاً للعامة بدون مصادقة (authentication).
    3. تجاهل صيغ التكميم (quantization)، مما يؤدي إلى أخطاء في الذاكرة.
    4. تشغيل تعريفات قديمة تعطّل تسريع الـ GPU.

    دليل استكشاف الأخطاء وإصلاحها

    العرض التشخيص الإصلاح
    خدمة Ollama لا تبدأ تعارض في المنافذ (Ports) غيّر المنفذ باستخدام متغير البيئة OLLAMA_HOST
    تحميل النموذج متوقف مشكلة في الشبكة أعد المحاولة باستخدام علامة --resume
    الـ API يعيد خطأ 500 تلف في التخزين المؤقت احذف ~/.ollama/models وأعد التحميل
    النموذج بطيء جداً الاعتماد على المعالج (CPU fallback) تحقق من تعريفات الـ GPU ومسار CUDA

    تحدي "جربها بنفسك"

    1. قم بإنشاء Modelfile يلخص النصوص في نقاط (bullet points).
    2. اجعله متاحاً عبر Flask أو FastAPI باستخدام REST API الخاص بـ Ollama.
    3. أضف تسجيلاً للطلبات (request logging) وقم بقياس سرعة معالجة الرموز (tokens/sec).

    النقاط الرئيسية

    • يوفر Ollama طريقة سريعة وخاصة ومرنة لتشغيل نماذج اللغة الكبيرة (LLMs) محلياً.
    • التثبيت يستغرق دقائق؛ والتحسين يتطلب الفهم.
    • استخدم تسريع الـ GPU والنماذج المكممة (quantized) للحصول على أفضل النتائج.
    • قم بتأمين الـ API المحلي وراقب الأداء بانتظام.
    • ممتاز للنماذج الأولية، والأبحاث، وأدوات الذكاء الاصطناعي الداخلية.

    الخطوات التالية / قراءات إضافية


    Footnotes

    1. NVIDIA CUDA Toolkit Documentation – https://docs.nvidia.com/cuda/

    2. OWASP Top 10 – Injection Risks – https://owasp.org/www-project-top-ten/

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

    نعم، ولكن توقع استنتاجاً (inference) أبطأ. وضع الـ CPU يعمل مع النماذج الصغيرة مثل Phi 2.

    نشرة أسبوعية مجانية

    ابقَ على مسار النيرد

    بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

    بدون إزعاج. إلغاء الاشتراك في أي وقت.