انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

تثبيت Ollama: دليل تشغيل نماذج اللغة الكبيرة محلياً

تثبيت Ollama، تشغيل نماذج LLM المحلية (Llama 3، Mistral، Gemma)، استخدام API، إدارة النماذج، تسريع GPU والنشر عبر Docker.

وقت القراءة: 15 دقيقة الذكاء الاصطناعي على خادمك
ollamallmذكاء اصطناعيself-hostingdockergpullama

جدول المحتويات

تثبيت Ollama: دليل تشغيل نماذج اللغة الكبيرة محلياً

Ollama هو أداة مفتوحة المصدر تتيح لك تشغيل نماذج اللغة الكبيرة (LLM) بسهولة على خادمك المحلي. يمكنك تنزيل واستخدام Llama 3 وMistral وGemma وPhi-3 والعديد من النماذج الأخرى بأمر واحد. يغطي هذا الدليل تثبيت Ollama وإدارة النماذج واستخدام API وتسريع GPU بالتفصيل.

ما هو Ollama؟

Ollama هو بيئة تشغيل خفيفة مصممة لتشغيل نماذج LLM محلياً. يتيح لك تنزيل وإدارة النماذج بنهج مشابه لـ Docker. الميزات الرئيسية:

  • تثبيت سهل: إعداد وتنزيل النماذج بأمر واحد
  • دعم واسع للنماذج: Llama 3، Mistral، Gemma، Phi-3، CodeLlama، Qwen والمزيد
  • REST API: نقطة نهاية API متوافقة مع OpenAI
  • تسريع GPU: دعم NVIDIA وAMD GPU
  • Modelfile: إنشاء تكوينات نماذج مخصصة
  • استهلاك منخفض للموارد: استهلاك ذاكرة منخفض مع النماذج المكممة

متطلبات النظام

المكونالحد الأدنىالموصى به
RAM8 جيجابايت16 جيجابايت+
القرص20 جيجابايت50 جيجابايت+
GPU (اختياري)NVIDIA 4 جيجابايت VRAMNVIDIA 8 جيجابايت+ VRAM
نظام التشغيلLinux، macOS، WindowsUbuntu 22.04 LTS

التثبيت على Linux

استخدم سكريبت التثبيت الرسمي:

hljs bash
curl -fsSL https://ollama.com/install.sh | sh

بعد التثبيت، تبدأ خدمة Ollama تلقائياً. تحقق من الحالة:

hljs bash
systemctl status ollama

التثبيت اليدوي

إذا لم يعمل السكريبت:

hljs bash
# تنزيل الملف الثنائي
curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/local/bin/ollama
chmod +x /usr/local/bin/ollama

# إنشاء مستخدم ollama
useradd -r -s /bin/false -m -d /usr/share/ollama ollama

# ملف خدمة systemd
cat > /etc/systemd/system/ollama.service << 'EOF'
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="HOME=/usr/share/ollama"

[Install]
WantedBy=default.target
EOF

systemctl daemon-reload
systemctl enable --now ollama

التثبيت عبر Docker

وضع CPU

hljs bash
docker run -d \
  --name ollama \
  -p 11434:11434 \
  -v ollama_data:/root/.ollama \
  ollama/ollama

وضع GPU (NVIDIA)

hljs bash
docker run -d \
  --name ollama \
  --gpus all \
  -p 11434:11434 \
  -v ollama_data:/root/.ollama \
  ollama/ollama

Docker Compose

hljs yaml
version: '3.8'
services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

volumes:
  ollama_data:

تنزيل وتشغيل النماذج

hljs bash
# نموذج Llama 3.1 8B
ollama pull llama3.1

# Mistral 7B
ollama pull mistral

# Google Gemma 2 9B
ollama pull gemma2

# محادثة تفاعلية
ollama run llama3.1

# استعلام واحد
ollama run llama3.1 "كيف أتحقق من استخدام القرص في Linux؟"

إدارة النماذج

hljs bash
# عرض النماذج المثبتة
ollama list

# معلومات النموذج
ollama show llama3.1

# حذف نموذج
ollama rm mistral

# عرض النماذج قيد التشغيل
ollama ps

استخدام REST API

يوفر Ollama واجهة REST API على المنفذ 11434:

إكمال المحادثة

hljs bash
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.1",
  "messages": [
    {"role": "system", "content": "أنت مساعد مفيد."},
    {"role": "user", "content": "ما هو Docker؟"}
  ],
  "stream": false
}'

توليد النص

hljs bash
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1",
  "prompt": "اكتب تكوين Nginx reverse proxy",
  "stream": false
}'

استخدام API مع Python

hljs python
import requests

def chat_with_ollama(prompt, model="llama3.1"):
    response = requests.post(
        "http://localhost:11434/api/chat",
        json={
            "model": model,
            "messages": [{"role": "user", "content": prompt}],
            "stream": False
        }
    )
    return response.json()["message"]["content"]

result = chat_with_ollama("كيف أرتب قائمة في Python؟")
print(result)

نماذج مخصصة مع Modelfile

hljs dockerfile
# Modelfile
FROM llama3.1

SYSTEM """أنت مساعد الدعم الفني لـ REXE Technology.
تساعد في إدارة الخوادم وDocker وLinux وموضوعات الشبكات."""

PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096

إنشاء النموذج:

hljs bash
ollama create rexe-assistant -f Modelfile
ollama run rexe-assistant

تسريع GPU

NVIDIA GPU

hljs bash
# التحقق من تعريف NVIDIA
nvidia-smi

# إصدار CUDA
nvcc --version

AMD GPU (ROCm)

hljs bash
curl -fsSL https://ollama.com/install.sh | OLLAMA_ACCELERATION=rocm sh

docker run -d \
  --name ollama \
  --device /dev/kfd \
  --device /dev/dri \
  -p 11434:11434 \
  -v ollama_data:/root/.ollama \
  ollama/ollama:rocm

متغيرات البيئة

hljs bash
# /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama"
Environment="OLLAMA_NUM_PARALLEL=4"
Environment="OLLAMA_MAX_LOADED_MODELS=2"
Environment="OLLAMA_KEEP_ALIVE=5m"

تطبيق التغييرات:

hljs bash
systemctl daemon-reload
systemctl restart ollama

نصائح الأداء

hljs bash
# توفير RAM مع النماذج المكممة
ollama pull llama3.1:8b-q4_0    # 4-بت (~4.7 جيجابايت)
ollama pull llama3.1:8b-q5_1    # 5-بت (~5.7 جيجابايت)
ollama pull llama3.1:8b-q8_0    # 8-بت (~8.5 جيجابايت)

# إعداد نافذة السياق
ollama run llama3.1 --num-ctx 2048

مع خوادم REXE GPU، يمكنك تشغيل نماذج اللغة الكبيرة بأداء عالٍ عبر Ollama. توفر وحدات NVIDIA A100/H100 GPU استجابات سريعة حتى مع نماذج 70B معلمة.