الخلاصة الرئيسية
تشغيل Gemma 4 محلياً يستغرق أقل من 5 دقائق باستخدام Ollama: قم بتثبيت Ollama، وقم بتشغيل أمر واحد، وسيكون لديك نموذج AI بقدرات كاملة يعمل على أجهزتك الخاصة بتكاليف API صفرية، وعدم خروج أي بيانات من جهازك، وصفر قيود على الاستخدام بموجب Apache 2.0. يعمل نموذج E2B على أي كمبيوتر محمول. نموذج 26B MoE يناسب بطاقة RTX 4090 واحدة ويقدم جودة تضاهي النماذج التي تزيد عنها بـ 10x من حيث عدد الـ active parameter.
تشغيل Gemma 4 محلياً: الدليل الكامل
لماذا تشغيل Gemma 4 محلياً؟
قبل الخوض في الإعداد، إليك سبب أهمية الاستدلال المحلي في 2026:
- الخصوصية — بياناتك لا تغادر جهازك أبداً. لا يتم إرسال prompts إلى خوادم خارجية. هذا أمر بالغ الأهمية للكود المصدري المملوك، أو المستندات القانونية، أو البيانات الطبية، أو أي معلومات حساسة.
- التكلفة — تكلفة صفرية لكل token بعد الاستثمار لمرة واحدة في الأجهزة. يوفر المستخدمون المكثفون مئات الدولارات شهرياً مقارنة بأسعار API.
- زمن الاستجابة (Latency) — لا توجد رحلات شبكة ذهاباً وإياباً. تستجيب نماذج E2B و E4B في أجزاء من الثانية على الأجهزة الحديثة.
- الموثوقية — لا توجد قيود على معدل استخدام API، ولا انقطاعات، ولا تغييرات في سياسة المزود. نموذجك متاح دائماً.
- التخصيص — قم بإجراء fine-tune، و quantization، وتعديل النموذج بحرية بموجب Apache 2.0.
- الوصول دون اتصال بالإنترنت — يعمل بدون اتصال بالإنترنت بمجرد تنزيل النموذج.
يعد Gemma 4 مناسباً بشكل خاص للنشر المحلي لأن Google صممت النماذج الأصغر خصيصاً للاستخدام على الحافة (edge) وعلى الأجهزة. نماذج E2B و E4B ليست مجرد أفكار ثانوية — بل هي نماذج من الدرجة الأولى تم تحسينها لقيود الأجهزة المحلية.
المتطلبات الأساسية
متطلبات الأجهزة حسب النموذج
| النموذج | الحد الأدنى من RAM | الـ VRAM الموصى به | هل يمكن تشغيله على الـ CPU فقط؟ | مساحة القرص |
|---|---|---|---|---|
| E2B (4-bit) | 5 GB | 4 GB | نعم | ~1.5 GB |
| E4B (4-bit) | 5 GB | 4 GB | نعم | ~2.8 GB |
| E4B (FP16) | 9 GB | 9 GB | بطيء | ~9 GB |
| 26B MoE (4-bit) | 18 GB | 16 GB | بطيء جداً | ~15 GB |
| 26B MoE (FP16) | 52 GB | 48 GB | لا | ~52 GB |
| 31B Dense (4-bit) | 20 GB | 18 GB | بطيء جداً | ~18 GB |
| 31B Dense (FP16) | 62 GB | 48 GB+ | لا | ~62 GB |
الخلاصة الرئيسية: إذا كان لديك كمبيوتر محمول تم تصنيعه بعد 2022، فيمكنك تشغيل E2B أو E4B. إذا كان لديك RTX 4090 (24GB VRAM) أو Apple M-series Mac مع 32GB+ RAM، فيمكنك تشغيل 26B MoE أو 31B Dense عند 4-bit quantization.
متطلبات البرمجيات
- نظام التشغيل: macOS، Linux، أو Windows
- Ollama: الإصدار 0.6+ (تنزيل من ollama.com)
- برامج تشغيل GPU (اختياري): NVIDIA CUDA 12+ لبطاقات NVIDIA GPUs، ولا يلزم وجود برامج تشغيل إضافية لـ Apple Silicon
الخطوة 1: تثبيت Ollama
macOS
قم بالتنزيل من ollama.com/download أو استخدم Homebrew:
brew install ollama
Linux
سكربت تثبيت من سطر واحد:
curl -fsSL https://ollama.com/install.sh | sh
Windows
قم بتنزيل برنامج التثبيت من ollama.com/download وقم بتشغيله. يعمل Ollama كخدمة خلفية على Windows.
التحقق من التثبيت
ollama --version
يجب أن ترى ollama version 0.6.x أو أعلى. إذا رأيت رقم الإصدار، فهذا يعني أن Ollama مثبت بشكل صحيح.
الخطوة 2: سحب نموذج Gemma 4
اختر النموذج الذي يتوافق مع أجهزتك:
لأجهزة الكمبيوتر المحمولة وأعباء العمل الخفيفة
# أصغر نموذج — يعمل على أي كمبيوتر محمول حديث (5GB RAM)
ollama pull gemma4:e2b
# نموذج صغير بقدرات أوسع (5-9GB RAM)
ollama pull gemma4:e4b
لأجهزة الكمبيوتر المكتبية مع GPU مخصص
# أفضل كفاءة — جودة رائدة عند 3.8B active params (18GB RAM)
ollama pull gemma4:26b-moe
# أعلى جودة — كامل بارامترات 31B (20GB RAM)
ollama pull gemma4:31b
تحديد الـ Quantization
بشكل افتراضي، يقوم Ollama بسحب الـ quantization الموصى به لكل نموذج (عادةً Q4_K_M لتوازن جيد بين الجودة والحجم). يمكنك تحديد quantizations مختلفة:
# جودة أعلى، حجم أكبر
ollama pull gemma4:31b-q5_K_M
# حجم أصغر، جودة أقل قليلاً
ollama pull gemma4:31b-q3_K_M
# دقة كاملة (تتطلب RAM أكثر بكثير)
ollama pull gemma4:31b-fp16
سيستغرق التنزيل بضع دقائق حسب اتصالك بالإنترنت. تتراوح أحجام النماذج من ~1.5GB (E2B 4-bit) إلى ~62GB (31B FP16).
الخطوة 3: تشغيل Gemma 4
دردشة تفاعلية
ollama run gemma4:e4b
يؤدي هذا إلى فتح جلسة دردشة تفاعلية. اكتب الـ prompt الخاص بك واضغط Enter:
>>> What are the key differences between REST and GraphQL APIs?
سيستجيب النموذج مباشرة في terminal الخاص بك. اكتب /bye للخروج.
Prompt واحد (غير تفاعلي)
echo "Explain the Builder design pattern in Python with an example" | ollama run gemma4:26b-moe
مع وضع التفكير (Thinking Mode)
يدعم Gemma 4 وضع التفكير القابل للتكوين للمهام المعقدة. قم بتمكينه عن طريق إضافة system prompt:
ollama run gemma4:31b --system "Think step by step before answering. Show your reasoning process."
لمهام الرياضيات والمنطق والتحليل المعقد، يحسن وضع التفكير جودة الإجابة بشكل كبير. سيقوم النموذج بتوليد 4,000+ tokens من التفكير الداخلي قبل تقديم استجابته النهائية.
الخطوة 4: استخدام الـ API المحلي
يوفر Ollama واجهة REST API على localhost:11434 متوافقة مع تنسيق OpenAI API. وهذا يعني أن أي أداة أو مكتبة تدعم OpenAI's API يمكنها الاتصال بـ Gemma 4 المحلي الخاص بك مع تغيير بسيط في URL.
اختبار الـ API باستخدام curl
curl http://localhost:11434/api/generate -d '{
"model": "gemma4:26b-moe",
"prompt": "Write a Python function to parse CSV files with error handling",
"stream": false
}'
نقطة نهاية متوافقة مع OpenAI
curl http://localhost:11434/v1/chat/completions -d '{
"model": "gemma4:26b-moe",
"messages": [
{"role": "user", "content": "Explain async/await in JavaScript"}
]
}'
الخطوة 5: الدمج مع تطبيقك
Python
import requests
def ask_gemma(prompt, model="gemma4:26b-moe"):
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": model,
"prompt": prompt,
"stream": False
}
)
return response.json()["response"]
# الاستخدام
answer = ask_gemma("What is the time complexity of merge sort?")
print(answer)
Python مع OpenAI SDK
from openai import OpenAI
# التوجيه إلى Ollama المحلي بدلاً من OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # لا يتطلب Ollama مفتاح API حقيقي
)
response = client.chat.completions.create(
model="gemma4:26b-moe",
messages=[
{"role": "system", "content": "You are a helpful coding assistant."},
{"role": "user", "content": "Write a React hook for debounced search"}
]
)
print(response.choices[0].message.content)
Node.js / TypeScript
const response = await fetch("http://localhost:11434/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "gemma4:26b-moe",
messages: [
{ role: "user", content: "Explain the Observer pattern with a TypeScript example" }
]
})
});
const data = await response.json();
console.log(data.choices[0].message.content);
الاستخدام مع LangChain
from langchain_community.llms import Ollama
llm = Ollama(model="gemma4:26b-moe")
response = llm.invoke("Summarize the key principles of clean architecture")
print(response)
الاستخدام مع LlamaIndex
from llama_index.llms.ollama import Ollama
llm = Ollama(model="gemma4:26b-moe", request_timeout=120.0)
response = llm.complete("What are the SOLID principles in software engineering?")
print(response)
شرح خيارات الـ Quantization
يقلل الـ Quantization من حجم النموذج واستخدام الذاكرة باستخدام أرقام ذات دقة أقل لتمثيل أوزان النموذج. المقايضة تكون بين الجودة واستخدام الموارد:
| الـ Quantization | بت لكل وزن | تأثير الجودة | توفير الذاكرة | الأفضل لـ |
|---|---|---|---|---|
| FP16 | 16 bits | لا يوجد (جودة كاملة) | الأساس | الخوادم ذات VRAM وافر |
| Q8_0 | 8 bits | مهمل | ~50% | استدلال محلي عالي الجودة |
| Q6_K | 6 bits | طفيف جداً | ~62% | استخدام محلي يركز على الجودة |
| Q5_K_M | 5 bits | طفيف | ~69% | توازن جيد |
| Q4_K_M | 4 bits | صغير | ~75% | الافتراضي الموصى به |
| Q3_K_M | 3 bits | متوسط | ~81% | الأجهزة المحدودة |
| Q2_K | 2 bits | كبير | ~87% | القيود الشديدة |
Q4_K_M هو الخيار الأنسب لمعظم المستخدمين. الفرق في الجودة عن FP16 صغير بما يكفي لدرجة أن معظم المهام تنتج نتائج لا يمكن تمييزها، بينما يجعل توفير الذاكرة بنسبة 75% الفرق بين "يحتاج إلى خادم" و "يعمل على كمبيوتري المحمول".
اختيار الـ Quantization الصحيح
لـ Gemma 4 E2B/E4B: استخدم الافتراضي (Q4_K_M). هذه النماذج صغيرة بالفعل لدرجة أن الـ quantization الأعلى لا يغير تجربة المستخدم بشكل ملموس.
لـ Gemma 4 26B MoE: يناسب Q4_K_M مساحة 18GB RAM، وهو ضمن 24GB VRAM لبطاقة RTX 4090 مع مساحة لـ KV cache. إذا كان لديك 48GB+ VRAM (A6000، بطاقات ثنائية)، ففكر في Q8_0 للحصول على جودة أفضل قليلاً.
لـ Gemma 4 31B Dense: Q4_K_M عند 20GB يناسب RTX 4090 بهوامش ضيقة. ينتج Q5_K_M نتائج أفضل قليلاً ولكنه يتطلب ~24GB، مما يستهلك كل VRAM المتاح. إذا كان لديك 32GB+ VRAM (RTX 5090، A6000)، فإن Q6_K أو Q8_0 تستحق الترقية.
ضبط الأداء
التحميل على الـ GPU (GPU Offloading)
يقوم Ollama تلقائياً بنقل طبقات النموذج إلى GPU عندما يتوفر VRAM. إذا كان جزء فقط من النموذج يناسب VRAM، فإن Ollama يقسم العمل بين GPU و CPU. يمكنك التحكم في ذلك:
# فرض جميع الطبقات على GPU (يفشل إذا لم يكن VRAM كافياً)
OLLAMA_NUM_GPU=999 ollama run gemma4:26b-moe
# فرض CPU فقط (مفيد للاختبار)
OLLAMA_NUM_GPU=0 ollama run gemma4:e4b
تكوين نافذة السياق (Context Window)
بشكل افتراضي، يستخدم Ollama نافذة سياق تبلغ 2048 tokens لتحقيق الكفاءة. للاستفادة من كامل إمكانيات سياق Gemma 4:
# تعيين نافذة السياق إلى 32K tokens
ollama run gemma4:26b-moe --num-ctx 32768
# تعيين نافذة السياق إلى 128K tokens (يتطلب RAM أكثر)
ollama run gemma4:26b-moe --num-ctx 131072
هام: تستهلك نوافذ السياق الأكبر مساحة RAM أكبر لـ KV cache. قد تتطلب نافذة سياق 128K على نموذج 31B مساحة 8-16GB RAM إضافية تتجاوز أوزان النموذج. ابدأ بـ 32K وقم بالزيادة فقط إذا كانت حالة الاستخدام الخاصة بك تتطلب ذلك.
الطلبات المتزامنة
يدعم Ollama خدمة طلبات متعددة في وقت واحد:
# السماح بما يصل إلى 4 طلبات متزامنة
OLLAMA_NUM_PARALLEL=4 ollama serve
يضيف كل طلب متزامن عبئاً على الذاكرة لـ KV cache الخاص به. على GPU بسعة 24GB يشغل 26B MoE عند Q4_K_M (~18GB)، لديك مساحة تبلغ حوالي 6GB — كافية لـ 2-3 طلبات متزامنة بسياقات قصيرة.
إعدادات الـ Keep-Alive
بشكل افتراضي، يبقي Ollama النماذج محملة في الذاكرة لمدة 5 دقائق بعد آخر طلب. اضبط هذا حسب حالة الاستخدام الخاصة بك:
# إبقاء النموذج محملاً لمدة 1 ساعة
OLLAMA_KEEP_ALIVE=3600 ollama serve
# إبقاء النموذج محملاً إلى أجل غير مسمى
OLLAMA_KEEP_ALIVE=-1 ollama serve
# إلغاء التحميل فوراً بعد كل طلب (يوفر الذاكرة)
OLLAMA_KEEP_ALIVE=0 ollama serve
تحسين NVIDIA RTX
أصدرت NVIDIA نسخاً محسنة من Gemma 4 لبطاقات RTX GPUs. تشمل هذه التحسينات:
- CUDA kernels مخصصة لآلية attention الخاصة بـ Gemma 4
- تكامل TensorRT-LLM لاستدلال أسرع
- دعم Flash Attention لتقليل استخدام الذاكرة أثناء استدلال السياق الطويل
- إدارة محسنة لـ KV cache لتحقيق إنتاجية أفضل
تثبيت Gemma 4 المحسن من NVIDIA
إذا كان لديك GPU من سلسلة RTX 4000 أو 5000:
# تحقق من GPU الخاص بك
nvidia-smi
# سحب نسخة NVIDIA المحسنة (إذا كانت متوفرة في Ollama)
ollama pull gemma4:31b-nvidia
بدلاً من ذلك، استخدم NVIDIA's AI Workbench أو TensorRT-LLM مباشرة للحصول على أقصى أداء. يمكن أن توفر النسخ المحسنة من NVIDIA استدلالاً أسرع بنسبة 30-50% على RTX GPUs مقارنة بإصدارات Ollama القياسية.
مقاييس الأداء في العالم الحقيقي
تم القياس على تكوينات الأجهزة الشائعة:
الـ Tokens في الثانية (سرعة التوليد)
| النموذج | RTX 4090 (24GB) | RTX 3090 (24GB) | M3 Max (36GB) | CPU فقط (32GB) |
|---|---|---|---|---|
| E2B (Q4) | ~150 tok/s | ~120 tok/s | ~100 tok/s | ~30 tok/s |
| E4B (Q4) | ~100 tok/s | ~80 tok/s | ~70 tok/s | ~15 tok/s |
| 26B MoE (Q4) | ~40 tok/s | ~30 tok/s | ~25 tok/s | ~3 tok/s |
| 31B Dense (Q4) | ~30 tok/s | ~20 tok/s | ~20 tok/s | ~2 tok/s |
السياق: سرعة القراءة البشرية تبلغ حوالي 4-5 tokens في الثانية. أي نموذج يولد أكثر من 10 tok/s يبدو "فورياً" للاستخدام التفاعلي. نماذج E2B و E4B سريعة بما يكفي للبث في الوقت الفعلي على أي جهاز تقريباً.
الوقت حتى أول Token (الكمون)
| النموذج | RTX 4090 | M3 Max | CPU فقط |
|---|---|---|---|
| E2B | <100ms | <200ms | <500ms |
| E4B | <200ms | <300ms | ~1s |
| 26B MoE | ~500ms | ~1s | ~5s |
| 31B Dense | ~800ms | ~1.5s | ~8s |
بالنسبة للتطبيقات التفاعلية، يهم الوقت حتى أول Token أكثر من سرعة التوليد. تبدأ نماذج E2B و E4B في التوليد بشكل فوري تقريباً حتى على CPU، مما يجعلها مثالية لواجهات الدردشة في الوقت الفعلي.
حالات الاستخدام الشائعة
مساعد برمجة محلي
استخدم Gemma 4 كمساعد برمجة خاص لا يرسل الكود الخاص بك أبداً إلى خوادم خارجية:
ollama run gemma4:26b-moe --system "You are an expert software engineer. When given code, analyze it for bugs, suggest improvements, and explain your reasoning. Be concise and practical."
قم بربط هذا مع ملحقات VS Code مثل Continue أو Twinny التي تدعم Ollama كخلفية.
تحليل المستندات
معالجة المستندات الحساسة محلياً:
echo "Analyze this contract clause and identify potential risks: [paste clause]" | ollama run gemma4:31b
مع سياق 256K، يمكن لنموذج 31B معالجة مستندات تصل إلى ~750 صفحة — وهو كافٍ لمعظم العقود والأوراق البحثية والوثائق التقنية.
الـ RAG المحلي (Retrieval-Augmented Generation)
اجمع بين Gemma 4 وقاعدة بيانات vector محلية لنظام RAG خاص بالكامل:
from langchain_community.llms import Ollama
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.vectorstores import Chroma
# استخدام Gemma 4 لكل من embeddings والتوليد
embeddings = OllamaEmbeddings(model="gemma4:e4b")
llm = Ollama(model="gemma4:26b-moe")
# إنشاء مخزن vector من مستنداتك
vectorstore = Chroma.from_documents(documents, embeddings)
# الاستعلام باستخدام RAG
retriever = vectorstore.as_retriever()
docs = retriever.get_relevant_documents("What is our refund policy?")
context = "\n".join([doc.page_content for doc in docs])
response = llm.invoke(f"Based on this context:\n{context}\n\nAnswer: What is our refund policy?")
بناء ميزات AI في التطبيقات
بالنسبة للمطورين الذين يبنون تطبيقات بقدرات AI، فإن تشغيل Gemma 4 محلياً عبر Ollama API هو أسرع طريق لنموذج أولي عامل. تعني واجهة API المتوافقة مع OpenAI أنه يمكنك البدء بـ Gemma 4 المحلي للتطوير والتبديل إلى cloud APIs للإنتاج دون تغيير كود التطبيق.
منصات مثل ZBuild يمكنها التعامل مع البنية التحتية للتطبيق — frontend، backend، authentication، database — بينما تركز أنت على طبقة دمج AI. قم بتوجيه نقطة نهاية AI لتطبيقك إلى localhost:11434 أثناء التطوير واستبدلها بنقطة نهاية سحابية عندما تكون مستعداً للتوسع.
استكشاف الأخطاء وإصلاحها
أخطاء "Out of memory"
إذا رأيت أخطاء في الذاكرة:
- جرب quantization أصغر:
ollama pull gemma4:31b-q3_K_M - قلل نافذة السياق:
--num-ctx 4096 - أغلق التطبيقات الأخرى التي تستهلك GPU بشكل مكثف
- انتقل إلى نموذج أصغر: يوفر 26B MoE جودة قريبة من 31B بتكلفة ذاكرة أقل
سرعة توليد بطيئة
إذا كان التوليد أبطأ من المتوقع:
- تحقق من استخدام GPU:
nvidia-smi(يجب أن يظهر استخداماً عالياً لـ GPU) - تأكد من أن النموذج يناسب VRAM تماماً — النقل الجزئي لـ CPU أبطأ بكثير
- قلل
--num-ctxلتحرير VRAM للحساب - تحقق مما إذا كانت هناك عمليات أخرى تستخدم GPU
النموذج غير موجود
إذا فشل ollama run gemma4:26b-moe:
# عرض النماذج المتاحة
ollama list
# البحث عن نماذج Gemma 4
ollama search gemma4
# سحب النموذج المحدد
ollama pull gemma4:26b-moe
رفض اتصال الـ API
إذا لم تتمكن التطبيقات من الاتصال بـ localhost:11434:
# تحقق مما إذا كان Ollama يعمل
ollama list
# ابدأ خادم Ollama يدوياً
ollama serve
# تحقق من المنفذ
curl http://localhost:11434/api/tags
شجرة قرار اختيار النموذج
استخدم هذا لاختيار النموذج المناسب بسرعة:
هل لديك GPU مخصص مع 16GB+ VRAM؟
- نعم ← هل تريد أقصى جودة أم أقصى كفاءة؟
- أقصى جودة ←
gemma4:31b(Q4_K_M، يحتاج 20GB) - أقصى كفاءة ←
gemma4:26b-moe(Q4_K_M، يحتاج 18GB)
- أقصى جودة ←
- لا ← هل لديك 8GB+ RAM؟
- نعم ←
gemma4:e4b(Q4_K_M، جودة أفضل) - لا ←
gemma4:e2b(Q4_K_M، يعمل على 5GB)
- نعم ←
لمعظم المطورين الذين لديهم كمبيوتر مكتبي حديث أو جهاز ألعاب: ابدأ بـ gemma4:26b-moe. فهو يقدم أفضل نسبة جودة إلى موارد في عائلة Gemma 4 بأكملها.
ما يمكنك بناؤه
مع تشغيل Gemma 4 محلياً، لديك خلفية AI بتكلفة صفرية لـ:
- تطبيقات الدردشة مع خصوصية كاملة للمحادثات
- أدوات تحليل الكود التي تعمل على قواعد الأكواد المملوكة
- خطوط معالجة المستندات للبيانات الحساسة
- مساعدو AI محليون يعملون دون اتصال بالإنترنت
- ميزات AI نموذجية قبل الالتزام بتكاليف cloud API
- نماذج fine-tuned لمهام محددة للمجال (يسمح Apache 2.0 بذلك بحرية)
تعني رخصة Apache 2.0 أن كل ما تبنيه هو ملكك — لا توجد قيود على الاستخدام، ولا تقاسم للإيرادات، ولا حاجة للموافقة. قم بتشغيله محلياً، وانشره على خوادمك، وادمج في منتجاتك. هذا هو شكل الذكاء الاصطناعي المفتوح حقاً.
المصادر
- Gemma 4 Announcement - Google Blog
- Gemma 4 on Ollama
- Ollama Installation Guide
- Ollama API Documentation
- NVIDIA Gemma 4 RTX Optimization
- Gemma 4 Technical Report - Google DeepMind
- Gemma 4 Hugging Face Models
- Continue.dev - Local AI Code Assistant
- LangChain Ollama Integration
- Google AI for Developers - Gemma