تثبيت Ollama: دليل تشغيل نماذج اللغة الكبيرة محلياً
تثبيت Ollama، تشغيل نماذج LLM المحلية (Llama 3، Mistral، Gemma)، استخدام API، إدارة النماذج، تسريع GPU والنشر عبر Docker.
تثبيت تعريفات NVIDIA، مجموعة أدوات CUDA، nvidia-container-toolkit، خدمة النماذج مع vLLM، مراقبة GPU ونشر نماذج AI مع Docker.
خوادم GPU ضرورية لتشغيل نماذج الذكاء الاصطناعي في بيئات الإنتاج. يغطي هذا الدليل كل شيء من تثبيت تعريفات NVIDIA إلى تكوين CUDA، وتكامل Docker مع GPU، وخدمة النماذج عالية الأداء مع vLLM.
| المكون | الحد الأدنى | الموصى به |
|---|---|---|
| GPU | NVIDIA T4 (16 جيجابايت) | NVIDIA A100 (40/80 جيجابايت) |
| RAM | 32 جيجابايت | 64 جيجابايت+ |
| القرص | 100 جيجابايت SSD | 500 جيجابايت NVMe |
| نظام التشغيل | Ubuntu 22.04 LTS | Ubuntu 22.04/24.04 LTS |
| CUDA | 12.0+ | 12.4+ |
أولاً، قم بإزالة التعريفات الموجودة وتثبيت الجديدة:
# إزالة تعريفات NVIDIA الموجودة
sudo apt-get purge nvidia-* -y
sudo apt-get autoremove -y
# تحديث النظام
sudo apt-get update && sudo apt-get upgrade -y
# إضافة مستودع تعريفات NVIDIA
sudo apt-get install -y linux-headers-$(uname -r)
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt-get update
# التحقق من التعريف الموصى به
ubuntu-drivers devices
# تثبيت تعريف NVIDIA
sudo apt-get install -y nvidia-driver-550
sudo reboot
التحقق بعد التثبيت:
nvidia-smi
# إضافة مفتاح CUDA
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
# تثبيت CUDA Toolkit
sudo apt-get install -y cuda-toolkit-12-4
# تكوين PATH
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
# التحقق
nvcc --version
مطلوب nvidia-container-toolkit لاستخدام GPU في حاويات Docker:
# مستودع NVIDIA Container Toolkit
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# تكوين Docker runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# اختبار
sudo docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi
vLLM هو محرك استدلال LLM عالي الإنتاجية. يحسّن استخدام الذاكرة بتقنية PagedAttention.
docker run -d \
--name vllm \
--gpus all \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env HUGGING_FACE_HUB_TOKEN=$HF_TOKEN \
vllm/vllm-openai:latest \
--model meta-llama/Meta-Llama-3.1-8B-Instruct \
--max-model-len 4096 \
--gpu-memory-utilization 0.9
version: '3.8'
services:
vllm:
image: vllm/vllm-openai:latest
container_name: vllm-server
ports:
- "8000:8000"
volumes:
- huggingface_cache:/root/.cache/huggingface
environment:
- HUGGING_FACE_HUB_TOKEN=${HF_TOKEN}
command: >
--model meta-llama/Meta-Llama-3.1-8B-Instruct
--max-model-len 4096
--gpu-memory-utilization 0.9
--tensor-parallel-size 1
--dtype auto
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
volumes:
huggingface_cache:
vLLM يوفر API متوافق مع OpenAI:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Meta-Llama-3.1-8B-Instruct",
"messages": [
{"role": "system", "content": "أنت مساعد مفيد."},
{"role": "user", "content": "ما هو Docker؟"}
],
"max_tokens": 512,
"temperature": 0.7
}'
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="not-needed"
)
response = client.chat.completions.create(
model="meta-llama/Meta-Llama-3.1-8B-Instruct",
messages=[
{"role": "system", "content": "أنت خبير في Linux."},
{"role": "user", "content": "كيف يتم تكوين RAID؟"}
],
max_tokens=1024,
temperature=0.7
)
print(response.choices[0].message.content)
docker run -d \
--name vllm-multi \
--gpus all \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
vllm/vllm-openai:latest \
--model meta-llama/Meta-Llama-3.1-70B-Instruct \
--tensor-parallel-size 4 \
--max-model-len 4096 \
--gpu-memory-utilization 0.9
# الحالة الحالية
nvidia-smi
# المراقبة المستمرة
watch -n 1 nvidia-smi
# استخدام GPU والذاكرة فقط
nvidia-smi --query-gpu=index,name,utilization.gpu,memory.used,memory.total,temperature.gpu --format=csv -l 1
# تفعيل وضع الاستمرارية
sudo nvidia-smi -pm 1
# تثبيت سرعة ساعة GPU
sudo nvidia-smi -lgc 1410,1410
# تعيين حد الطاقة
sudo nvidia-smi -pl 300
شغّل نماذج الذكاء الاصطناعي بأداء عالٍ على خوادم REXE GPU مع NVIDIA A100/H100. تواصل معنا للحصول على حلول خوادم GPU احترافية.
للنماذج ذات 7B-13B معلمة، يكفي NVIDIA T4 (16 جيجابايت) أو RTX 4090 (24 جيجابايت). للنماذج 70B يُنصح بـ A100 (40/80 جيجابايت) أو H100 (80 جيجابايت). سعة VRAM هي العامل الأكثر أهمية.
Ollama مثالي للإعداد السهل وبيئات التطوير. vLLM يوفر إنتاجية عالية وزمن استجابة منخفض في بيئات الإنتاج. vLLM يقدم استخداماً أكثر كفاءة للذاكرة مع continuous batching و PagedAttention.
حاويات Docker لا يمكنها الوصول إلى GPU افتراضياً. nvidia-container-toolkit يضيف دعم GPU passthrough إلى Docker runtime. هذا يسمح باستخدام GPU داخل الحاويات باستخدام المعلمة --gpus all.
نعم، يمكن تشغيل عدة نماذج على نفس GPU طالما أن VRAM كافٍ. في vLLM يمكنك تعيين حدود الذاكرة لكل نموذج باستخدام المعلمة --gpu-memory-utilization.
نعم، أثناء تحديث التعريف ينقطع الوصول إلى GPU وتتأثر الحاويات قيد التشغيل. أوقف الحاويات قبل التحديث، حدّث التعريف، أعد تشغيل النظام ثم أعد تشغيل الحاويات.
قلّل حجم النموذج (استخدم نسخة مكممة)، خفّض قيمة --max-model-len، اضبط --gpu-memory-utilization بين 0.85-0.9، أو استخدم GPU بسعة VRAM أكبر.
تثبيت Ollama، تشغيل نماذج LLM المحلية (Llama 3، Mistral، Gemma)، استخدام API، إدارة النماذج، تسريع GPU والنشر عبر Docker.
تثبيت Open WebUI عبر Docker، التكامل مع Ollama، إدارة المستخدمين، RAG (استعلام المستندات)، إدارة النماذج ودعم المستخدمين المتعددين.
تثبيت Stable Diffusion، واجهات AUTOMATIC1111 و ComfyUI، تنزيل النماذج، تدريب LoRA، استخدام ControlNet وإنتاج صور مستضاف ذاتياً مع Docker.