DEV Community

Cover image for تشغيل Gemma 4 محليًا باستخدام Ollama: دليل شامل
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

تشغيل Gemma 4 محليًا باستخدام Ollama: دليل شامل

ملخص سريع

صدرت Gemma 4 في 3 أبريل 2026، وأصبح بإمكانك مباشرة تشغيل نموذج gemma4:e4b الافتراضي بأمرين فقط بفضل دعم Ollama v0.20.0. في هذا الدليل ستجد الخطوات العملية لإعداد النموذج واختيار المتغير المناسب واستخدام API واختبار نقاط نهاية Gemma 4 محليًا باستخدام Apidog.

جرّب Apidog اليوم

مقدمة

أعلنت Google عن نموذج Gemma 4 في 2 أبريل 2026. في أقل من 24 ساعة، أطلقت Ollama الإصدار v0.20.0 بدعم لكافة متغيرات النموذج الأربعة.

للمطورين، هذه ليست مجرد ترقية عادية: فقد حقق النموذج 89.2% في AIME 2026 (مقابل 20.8% لـ Gemma 3) وقفز معيار البرمجة من 110 ELO إلى 2150 على Codeforces. الميزات تتضمن استدعاء وظائف أصلي، أوضاع تفكير قابلة للتخصيص، نافذة سياق 256K للمتغيرات الأكبر، وكل ذلك يعمل محليًا على جهازك.

إذا كنت تبني تطبيقات تعتمد على API، فإن توفر النموذج محليًا يتيح لك ذكاء اصطناعي سريع وآمن لتوليد بيانات وهمية وكتابة سيناريوهات اختبار والتحقق من الاستجابات دون الحاجة لإرسال البيانات لخوادم خارجية.

💡بعد تشغيل Gemma 4 محليًا، استخدم ميزة Smart Mock في Apidog لتوليد بيانات استجابة API واقعية من مخططك بنفس منطق الاستدلال المدعوم بالذكاء الاصطناعي. حدد شكل API مرة واحدة، ثم اترك Apidog يتولى الباقي—مثالي لتجارب النماذج المحلية وبيانات اختبار متسقة دون تجهيز يدوي.

يغطي هذا الدليل خطوات التثبيت وحتى أول استدعاء API محلي.

ما الجديد في Gemma 4

تتوفر Gemma 4 بأربعة متغيرات، كل واحد يلبي احتياجات مختلفة بوضوح.

Gemma 4 Variants

  • الاستدلال والبرمجة: نموذج 31B يحقق 80% في LiveCodeBench v6 (مقابل 29.1% لـ Gemma 3 27B).
  • هندسة MoE: متغير 26B يستخدم MoE بـ 4B معلمة نشطة فقط أثناء الاستدلال—جودة عالية بتكلفة حسابية منخفضة.
  • سياق طويل: E2B وE4B يدعمان 128K توكن، بينما 26B و31B يصلان حتى 256K—يكفي لإدخال مواصفات API أو قواعد بيانات كبيرة.
  • استدعاء وظائف أصلي: جميع المتغيرات تدعم أدوات منظمة مباشرة وتعيد JSON صالح حسب المخطط المحدد.
  • إدخال متعدد الوسائط: E2B وE4B يقبلان نصوصًا وصوتًا وصورًا.
  • أوضاع التفكير: تحكم متقدم في تفعيل Chain-of-Thought لكل طلب.

شرح متغيرات نموذج Gemma 4

اختر النموذج المناسب حسب جهازك:

النموذج الحجم على القرص السياق المعمارية الأفضل لـ
gemma4:e2b 7.2 GB 128K Dense أجهزة محمولة/حوسبة طرفية/صوت/صورة
gemma4:e4b 9.6 GB 128K Dense (افتراضي) معظم المطورين
gemma4:26b 18 GB 256K MoE (4B active) أفضل جودة لكل جيجابايت
gemma4:31b 20 GB 256K Dense أقصى جودة

نموذج e4b افتراضي عند تشغيل ollama run gemma4 ويعمل على معظم وحدات معالجة الرسومات بذاكرة 10GB+ أو معالجات Apple Silicon بذاكرة موحدة. إذا كان لديك 20GB RAM أو أكثر، جرب متغير MoE (26b) لجودة عالية بسرعة جيدة.

المتطلبات الأساسية

  • Ollama v0.20.0 أو أحدث. تحقق من الإصدار:
  ollama --version
Enter fullscreen mode Exit fullscreen mode
  • تحديث Ollama إذا لزم الأمر:
  # ماك
  brew upgrade ollama

  # لينكس
  curl -fsSL https://ollama.com/install.sh | sh
Enter fullscreen mode Exit fullscreen mode
  • ويندوز: حمّل أحدث إصدار من ollama.com.
  • متطلبات الأجهزة:
    • gemma4:e2b: 8GB (16GB موصى بها)
    • gemma4:e4b: 10GB VRAM أو 16GB unified memory
    • gemma4:26b: 20GB+ RAM
    • gemma4:31b: 24GB VRAM أو 32GB unified

تثبيت وتشغيل Gemma 4

لتشغيل النموذج الافتراضي:

ollama run gemma4
Enter fullscreen mode Exit fullscreen mode

Ollama CLI

ستحمّل حوالي 9.6GB عند التشغيل الأول. بعد بدء الجلسة التفاعلية، جرب:

>>> What are the HTTP status codes for client errors?
Enter fullscreen mode Exit fullscreen mode

لتشغيل متغير محدد:

# نموذج أخف
ollama run gemma4:e2b

# نموذج MoE
ollama run gemma4:26b

# النموذج الرائد
ollama run gemma4:31b
Enter fullscreen mode Exit fullscreen mode

لتحميل النموذج دون تشغيله فورًا:

ollama pull gemma4
ollama pull gemma4:26b
Enter fullscreen mode Exit fullscreen mode

قائمة النماذج المتوفرة:

ollama list
Enter fullscreen mode Exit fullscreen mode

استخدام واجهة برمجة تطبيقات Gemma 4 محليًا

يفتح Ollama API REST محليًا على http://localhost:11434. بعد تحميل النموذج، استخدم أي عميل HTTP.

توليد إكمال

curl http://localhost:11434/api/generate \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4",
    "prompt": "اكتب استجابة JSON لنقطة نهاية واجهة برمجة تطبيقات ملف تعريف المستخدم",
    "stream": false
  }'
Enter fullscreen mode Exit fullscreen mode

إكمال الدردشة (متوافق مع OpenAI)

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4",
    "messages": [
      {
        "role": "user",
        "content": "قم بتوليد بيانات JSON وهمية واقعية لاستجابة واجهة برمجة تطبيقات طلبات التجارة الإلكترونية"
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

عميل بايثون

import requests

def ask_gemma4(prompt: str, model: str = "gemma4") -> str:
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": model,
            "prompt": prompt,
            "stream": False
        }
    )
    response.raise_for_status()
    return response.json()["response"]

result = ask_gemma4("اذكر الحقول التي يجب أن تتضمنها استجابة واجهة برمجة تطبيقات الدفع")
print(result)
Enter fullscreen mode Exit fullscreen mode

استخدام SDK بايثون الخاص بـ OpenAI

نظرًا لأن واجهة Ollama متوافقة مع OpenAI، يمكنك استخدام SDK الرسمي:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # مطلوب فقط للشكل
)

response = client.chat.completions.create(
    model="gemma4",
    messages=[
        {
            "role": "system",
            "content": "أنت تولد بيانات استجابة واجهة برمجة تطبيقات واقعية بتنسيق JSON."
        },
        {
            "role": "user",
            "content": "أنشئ استجابة نموذجية لنقطة نهاية GET /users/{id}"
        }
    ]
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

استخدام استدعاء الوظائف مع Gemma 4

حدد مخطط الوظيفة ليعيد النموذج JSON مطابق:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_user",
            "description": "استرداد مستخدم بواسطة المعرف من واجهة برمجة التطبيقات",
            "parameters": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "integer",
                        "description": "معرف المستخدم الفريد"
                    },
                    "include_orders": {
                        "type": "boolean",
                        "description": "ما إذا كان يجب تضمين سجل الطلبات"
                    }
                },
                "required": ["user_id"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="gemma4",
    messages=[
        {"role": "user", "content": "احصل على المستخدم 42 مع سجل طلباته"}
    ],
    tools=tools,
    tool_choice="auto"
)

tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name)       # get_user
print(tool_call.function.arguments)  # {"user_id": 42, "include_orders": true}
Enter fullscreen mode Exit fullscreen mode

النموذج يستخرج المعلمات مباشرة ويعيد كائن JSON منظم دون معالجة إضافية.

تمكين وضع التفكير

للمهام المعقدة (سيناريوهات اختبار، تحليل المواصفات):

response = client.chat.completions.create(
    model="gemma4",
    messages=[
        {
            "role": "user",
            "content": "صمم سيناريو اختبار كامل لواجهة برمجة تطبيقات معالجة الدفع مع حالات الحافة"
        }
    ],
    extra_body={"think": True}
)

print(response.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

تجاوز وضع التفكير للطلبات البسيطة لتقليل زمن الاستجابة.

اختبار استجابات API Gemma 4 باستخدام Apidog

بعد تشغيل Gemma 4 محليًا، استخدم Apidog لاختبار نقاط النهاية بكفاءة.

Apidog

خطوات العمل:

  1. استيراد مواصفات Ollama API: أنشئ مشروعًا جديدًا في Apidog واضبط الـ Base URL على http://localhost:11434.
  2. تحديد نقاط النهاية:
    • POST /api/generate للإكمال النصي
    • POST /v1/chat/completions للدردشة
    • GET /api/tags لسرد النماذج
  3. إعداد سيناريو اختبار:
    • الخطوة 1: تأكد من وجود gemma4 في GET /api/tags
    • الخطوة 2: اختبر أن حقل response غير فارغ في POST /api/generate
    • الخطوة 3: تحقق من تنسيق الرد في POST /v1/chat/completions
    • استخدم Extract Variable لتمرير الاستجابة بين الخطوات واختبار تدفقات المحادثة.
  4. التحقق من صحة مخططات الاستجابة:
    • استخدم Contract Testing في Apidog للتحقق من مواصفات OpenAPI ومتابعة التغييرات بعد أي تحديث.
  5. Smart Mock للتطوير المتوازي:
    • فعّل Smart Mock لتوليد استجابات واقعية من مواصفاتك تلقائيًا، ما يسمح لفرق الـ frontend بالعمل دون الاعتماد على النموذج المحلي.

الإدخال متعدد الوسائط باستخدام Gemma 4

لتضمين صور مع النص (E2B وE4B):

import base64

with open("api_diagram.png", "rb") as f:
    image_data = base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
    model="gemma4:e4b",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{image_data}"
                    }
                },
                {
                    "type": "text",
                    "text": "صف تدفق واجهة برمجة التطبيقات الموضح في هذا الرسم البياني وحدد مسارات الأخطاء المحتملة"
                }
            ]
        }
    ]
)
Enter fullscreen mode Exit fullscreen mode

مثالي لتحليل المخططات واستخلاص البيانات من الصور.

المشكلات الشائعة والحلول

  • النموذج غير موجود: نفذ ollama pull gemma4 أو تحقق بـ ollama list.
  • استدلال بطيء على CPU: استخدم GPU أو جرّب gemma4:e2b لتحسين الأداء.
  • نفاد الذاكرة: راقب VRAM/الذاكرة الموحدة بـ ollama ps، وبدّل لنموذج أصغر (e2b).
  • مشكلة في Apple Silicon: حدث Ollama لـ 0.20.0 للحصول على دعم MLX.
  • المنفذ مشغول: استخدم منفذ آخر: OLLAMA_HOST=0.0.0.0:11435 ollama serve
  • استجابات مقطوعة: زد نافذة السياق بإضافة "options": {"num_ctx": 8192} لجسم الطلب.

Gemma 4 مقابل النماذج المحلية الأخرى

النموذج أفضل حجم السياق استدعاء الوظائف معيار البرمجة
Gemma 4 e4b (9.6 GB) 128K-256K أصلي 80% LiveCodeBench
Llama 3.3 70B-Q4 (40 GB) 128K أصلي ~60%
Qwen3.6-Plus 72B-Q4 (44 GB) 128K أصلي قوي
Mistral Small 24B (14 GB) 128K أصلي متوسط

ميزة Gemma 4 الأهم هي متغير MoE (26B): جودة شبه رائدة بـ 18GB فقط وسرعة عالية. لمهام البرمجة الخالصة، 31B قادر على منافسة النماذج الأكبر.

الخلاصة

Gemma 4 مع Ollama يوفر لك واحدة من أقوى تجارب الذكاء الاصطناعي المحلية—تثبيت سريع، ونموذج افتراضي مناسب لمعظم الأجهزة، وقفزة ملحوظة في جودة الاستدلال. ابدأ بـ ollama run gemma4، واختبر API عبر Apidog، ثم اختر المتغير المناسب حسب احتياجك من الجدول أعلاه.

للفرق التي تعتمد على واجهة برمجة التطبيقات في تطويرها، الدمج بين الاستدلال المحلي وميزات Smart Mock وسيناريوهات الاختبار في Apidog يمنحك دورة تطوير مكتملة بلا تبعيات خارجية.

الأسئلة الشائعة

كيف أقوم بتحديث Gemma 4 في Ollama عند صدور إصدار جديد؟

شغل ollama pull gemma4 وسيتم تحديث النموذج تلقائيًا.

هل يمكنني تشغيل Gemma 4 على جهاز بدون GPU؟

نعم، لكن الأداء سيكون بطيئًا (1-3 توكن في الثانية). استخدم e2b للأجهزة الضعيفة.

ما الفرق بين gemma4:e2b و gemma4:e4b؟

E4B أكبر وأكثر قدرة. E2B أصغر ويدعم الصوت. e4b افتراضي لمعظم مهام النصوص.

هل تعمل Gemma 4 مع LangChain و LlamaIndex؟

نعم. استخدم مزود Ollama وحدد gemma4 كاسم النموذج.

هل API Gemma 4 المحلي متوافق مع OpenAI API؟

إلى حد كبير نعم. استخدم /v1/chat/completions وبدل base_url وapi_key كما في الأمثلة أعلاه.

كيف أستخدم وضع التفكير في Gemma 4؟

مرر "think": true في extra_body في SDK أو في جسم JSON للطلب المباشر.

هل يمكنني تقديم Gemma 4 لأجهزة أخرى على شبكتي؟

نعم. شغّل Ollama باستخدام

OLLAMA_HOST=0.0.0.0:11434 ollama serve

ويمكن الوصول إليه عبر الشبكة.

ما هو أفضل نموذج Gemma 4 لمهام تطوير API؟

e4b توازن ممتاز بين السرعة والجودة للبيانات الوهمية والاختبار. لمهام أكثر تعقيدًا استخدم 26b MoE.

Top comments (0)