تشغيل النماذج المحلية باستخدام Ollama وllama.cpp
يجعل Ollama تشغيل LLMs شبيهًا بـ «docker run»، بينما يتعمق llama.cpp في التكميم والتحكم المباشر بـ C++.
تشغيل النماذج المحلية باستخدام Ollama وllama.cpp درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
مساران سهلان
لاستضافة النماذج المفتوحة ذاتيًا على محطة عمل أو خادم:
- Ollama — الخيار الأبسط، مع تجربة استخدام شبيهة بـ Docker لنماذج LLM
- llama.cpp — أقرب إلى العتاد، ويوفر تحكمًا أكبر وبصمة أصغر
Ollama Quick Start
# Install (macOS):
brew install ollama
# Pull a model:
ollama pull llama3.1:8b
# Run interactively:
ollama run llama3.1:8b 'Hello'
# Serve via HTTP (OpenAI-compatible):
ollama serveCalling Ollama Via SDK
from openai import OpenAI
client = OpenAI(base_url='http://localhost:11434/v1', api_key='ollama')
response = client.chat.completions.create(
model='llama3.1:8b',
messages=[{'role': 'user', 'content': 'Hello'}]
)
print(response.choices[0].message.content)استدعاء الأدوات في Ollama
يدعم Ollama استدعاء الأدوات للنماذج المتوافقة، مثل Llama 3.1+ وMistral وQwen 2.5:
tools = [{'type': 'function', 'function': {...}}]
response = client.chat.completions.create(
model='llama3.1:8b',
messages=messages,
tools=tools
)أساسيات llama.cpp
إن llama.cpp هو تطبيق بلغة C++ يشغّل أي نموذج بتنسيق GGUF على CPU أو GPU أو Metal، بما في ذلك Apple Silicon:
# Build (or install pre-built):
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make
# Run a quantized model:
./llama-cli -m models/llama-3.1-8b-instruct.Q4_K_M.gguf -p 'Hello'Server Mode
./llama-server -m models/llama-3.1-8b-instruct.Q4_K_M.gguf --port 8080
# Now OpenAI-compatible endpoint at http://localhost:8080/v1التكميم
يتيح التكميم إلى 4 بت (Q4_K_M) تشغيل نموذج "16GB" باستخدام نحو 5GB من ذاكرة RAM، مع فقدان هامشي في الجودة. جرّبوا Q4 أولًا؛ وانتقلوا إلى مستوى أعلى، مثل Q5 أو Q6 أو Q8، للمهام التي تعتمد على الجودة.
متطلبات العتاد
| النموذج | RAM Q4 | VRAM Q4 |
|---|---|---|
| 7-8B | ~6 GB | ~6 GB |
| 13B | ~10 GB | ~10 GB |
| 70B | ~40 GB | ~40 GB |
تجعل الذاكرة الموحدة في Apple Silicon النماذج المحلية الكبيرة قابلة للاستخدام على نحو مفاجئ.
vLLM للإنتاجية
لتقديم الخدمة في بيئة الإنتاج مع التزامن العالي، استخدموا vLLM، الذي يوفر PagedAttention والتجميع المستمر:
# pip install vllm
from vllm import LLM, SamplingParams
llm = LLM(model='meta-llama/Llama-3.1-8B-Instruct')
params = SamplingParams(temperature=0.2, max_tokens=512)
result = llm.generate(['Hello world'], params)Text Generation Inference (TGI)
إن HuggingFace TGI خادم إنتاج آخر. ويوفر دعمًا قويًا لاستخدام الأدوات.
مقارنة الخوادم
- Ollama — أفضل تجربة استخدام، وواجهة CLI/HTTP بسيطة، ومناسب للتطوير
- llama.cpp — الأخف وزنًا، ويعمل في أي مكان
- vLLM — أعلى إنتاجية، ويعمل على GPU فقط
- TGI — تكامل مع HuggingFace ومراقبة
متى نستضيف ذاتيًا؟
- خصوصية صارمة
- حجم كبير جدًا، إذ تبلغ نقطة التعادل في التكلفة نحو 10M رمز يوميًا
- نماذج مضبوطة دقيقًا
- سيناريوهات الحافة أو العمل دون اتصال
متى لا نستضيف ذاتيًا؟
- المشروعات الجانبية ذات الحجم الصغير، إذ تكون الاستضافة المُدارة أرخص
- الحاجة إلى جودة استدلال رائدة
- المهام متعددة الوسائط
نقطة نهاية متوافقة مع OpenAI
لماذا يُعد اصطلاح نقطة النهاية المتوافقة مع OpenAI مناسبًا للنماذج المحلية؟
خلاصة
استخدموا Ollama لبساطة التطوير، وllama.cpp لقابلية النقل، وvLLM لإنتاجية بيئة الإنتاج. فجميعها تتحدث واجهات API متوافقة مع OpenAI، ما يتيح التبديل من دون تغيير التعليمات البرمجية.
الأسئلة الشائعة
هل درس «تشغيل النماذج المحلية باستخدام Ollama وllama.cpp» مجاني؟
نعم — نص درس «تشغيل النماذج المحلية باستخدام Ollama وllama.cpp» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.
ماذا ستتعلم في «تشغيل النماذج المحلية باستخدام Ollama وllama.cpp»؟
يجعل Ollama تشغيل LLMs شبيهًا بـ «docker run»، بينما يتعمق llama.cpp في التكميم والتحكم المباشر بـ C++. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟
لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تشغيل النماذج المحلية باستخدام Ollama وllama.cpp»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟
نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- نظرة عامة على Llama وMistral وQwen
- تشغيل النماذج المحلية باستخدام Ollama وllama.cpp
- استدعاء الدوال في النماذج المفتوحة (Hermes وFunctionary)
- المفاضلات: زمن الاستجابة والتكلفة والقدرة