تثبيت Ollama: دليل تشغيل نماذج اللغة الكبيرة محلياً
تثبيت Ollama، تشغيل نماذج LLM المحلية (Llama 3، Mistral، Gemma)، استخدام API، إدارة النماذج، تسريع GPU والنشر عبر Docker.
تثبيت LocalAI عبر Docker، خدمة AI مستضافة ذاتياً متوافقة مع OpenAI API، إنتاج النصوص، إنشاء الصور، تركيب الكلام، التضمينات وإدارة النماذج.
LocalAI هو خادم API للذكاء الاصطناعي مفتوح المصدر ومستضاف ذاتياً، متوافق بالكامل مع OpenAI API. يجمع جميع قدرات الذكاء الاصطناعي بما في ذلك إنتاج النصوص وإنشاء الصور وتركيب الكلام والتعرف على الكلام والتضمينات في خدمة واحدة. قدرته على العمل في وضع CPU بدون GPU هي أحد أكبر مزاياه.
LocalAI هو بديل مباشر يحاكي تنسيق OpenAI API بالضبط. يمكنك إعادة توجيه تطبيقاتك الحالية التي تستخدم OpenAI SDK إلى LocalAI بمجرد تغيير عنوان URL الأساسي. الميزات الرئيسية:
| المكون | وضع CPU | وضع GPU |
|---|---|---|
| RAM | 8 جيجابايت+ | 16 جيجابايت+ |
| القرص | 20 جيجابايت | 50 جيجابايت+ |
| GPU | غير مطلوب | NVIDIA 8 جيجابايت+ VRAM |
| نظام التشغيل | Linux/macOS | Linux (CUDA) |
| Docker | 24.0+ | 24.0+ + nvidia-container-toolkit |
docker run -d \
--name localai \
-p 8080:8080 \
-v localai_models:/build/models \
localai/localai:latest-cpu
docker run -d \
--name localai \
--gpus all \
-p 8080:8080 \
-v localai_models:/build/models \
localai/localai:latest-gpu-nvidia-cuda-12
version: '3.8'
services:
localai:
image: localai/localai:latest-gpu-nvidia-cuda-12
container_name: localai
ports:
- "8080:8080"
volumes:
- localai_models:/build/models
- ./config:/build/config
environment:
- THREADS=4
- CONTEXT_SIZE=4096
- GALLERIES=[{"name":"model-gallery","url":"github:mudler/LocalAI/gallery/index.yaml@master"}]
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/readyz"]
interval: 30s
timeout: 10s
retries: 3
volumes:
localai_models:
# قائمة النماذج المتاحة
curl http://localhost:8080/models/available
# تحميل نموذج
curl http://localhost:8080/models/apply -d '{
"id": "huggingface://TheBloke/Llama-2-7B-Chat-GGUF/llama-2-7b-chat.Q4_K_M.gguf",
"name": "llama-3"
}'
# قائمة النماذج المحملة
curl http://localhost:8080/v1/models
wget -O models/mistral-7b-instruct.gguf \
"https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf"
إنشاء ملف تكوين النموذج:
# config/mistral.yaml
name: mistral
backend: llama-cpp
parameters:
model: mistral-7b-instruct.gguf
temperature: 0.7
top_p: 0.9
top_k: 40
context_size: 4096
threads: 4
gpu_layers: 35
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3",
"messages": [
{"role": "system", "content": "أنت مساعد مفيد."},
{"role": "user", "content": "ما هو Docker Compose؟"}
],
"temperature": 0.7,
"max_tokens": 512
}'
curl http://localhost:8080/v1/embeddings \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-ada-002",
"input": "أفضل ممارسات أمان الخوادم"
}'
curl http://localhost:8080/v1/images/generations \
-H "Content-Type: application/json" \
-d '{
"model": "stablediffusion",
"prompt": "a futuristic server room, neon lights",
"size": "512x512"
}'
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed"
)
response = client.chat.completions.create(
model="llama-3",
messages=[
{"role": "system", "content": "أنت خبير في Linux."},
{"role": "user", "content": "كيف يتم تثبيت Nginx؟"}
],
max_tokens=1024
)
print(response.choices[0].message.content)
embedding = client.embeddings.create(
model="text-embedding-ada-002",
input="إدارة حاويات Docker"
)
print(f"بُعد التضمين: {len(embedding.data[0].embedding)}")
# config/models.yaml
- name: llama-3
backend: llama-cpp
parameters:
model: llama-3-8b.gguf
context_size: 4096
gpu_layers: 35
- name: mistral
backend: llama-cpp
parameters:
model: mistral-7b-instruct.gguf
context_size: 4096
gpu_layers: 35
- name: embedding
backend: llama-cpp
embeddings: true
parameters:
model: all-MiniLM-L6-v2.gguf
export THREADS=8
export CONTEXT_SIZE=4096
export GPU_LAYERS=35
export PARALLEL_REQUESTS=true
docker run -d \
--name localai \
--gpus all \
-p 8080:8080 \
-e THREADS=8 \
-e CONTEXT_SIZE=4096 \
-v localai_models:/build/models \
localai/localai:latest-gpu-nvidia-cuda-12
شغّل واجهة API الخاصة بك المتوافقة مع OpenAI باستخدام LocalAI على خوادم REXE. احصل على استدلال عالي الأداء مع خوادم GPU الخاصة بنا.
LocalAI يحاكي تنسيق OpenAI API بالضبط. تُستخدم نفس نقاط النهاية وتنسيقات الطلبات. الفرق أن النماذج تعمل على خادمك الخاص وبياناتك لا تغادر أبداً.
نعم، أحد أكبر مزايا LocalAI هو قدرته على العمل في وضع CPU. النماذج المكممة بتنسيق GGUF تعمل بسرعة مقبولة على CPU. لكن GPU يوفر أوقات استجابة أسرع بكثير.
LocalAI يدعم تنسيقات GGUF (llama.cpp) و GGML و PyTorch و Safetensors و ONNX. التنسيق الأكثر استخداماً هو GGUF الذي يوفر استهلاكاً منخفضاً للذاكرة.
نعم، LocalAI يوفر نقطة نهاية /v1/embeddings متوافقة مع OpenAI. يمكنك إنشاء متجهات نصية مع نماذج التضمين مثل all-MiniLM-L6-v2 واستخدامها في تطبيقات RAG.
نعم، يمكنك تعريف عدة تكوينات نماذج في مجلد config. كل نموذج يمكن الوصول إليه من API باسم مختلف. النماذج تخدم بالتوازي طالما أن RAM/VRAM كافٍ.
نعم، LocalAI يدعم إنتاج الصور عبر نقطة النهاية /v1/images/generations مع تكامل Stable Diffusion. كما يدعم التعرف على الكلام مع Whisper وتركيب الكلام مع TTS.
تثبيت Ollama، تشغيل نماذج LLM المحلية (Llama 3، Mistral، Gemma)، استخدام API، إدارة النماذج، تسريع GPU والنشر عبر Docker.
تثبيت Open WebUI عبر Docker، التكامل مع Ollama، إدارة المستخدمين، RAG (استعلام المستندات)، إدارة النماذج ودعم المستخدمين المتعددين.
تثبيت تعريفات NVIDIA، مجموعة أدوات CUDA، nvidia-container-toolkit، خدمة النماذج مع vLLM، مراقبة GPU ونشر نماذج AI مع Docker.