Loading blog posts...
Loading blog posts...
جاري التحميل...

ربما واجهت رسالة الخطأ "out of memory" مرات أكثر مما يمكنك إحصاؤه. وربما تعاني بطاقة الرسوميات (GPU) بسعة 8 جيجابايت لديك عند تشغيل نماذج يزعم مستخدمو Reddit أنها تعمل "بكل سلاسة". دعنا نجعل الأمور واضحة، ونركز على ما يهم حقاً عند تشغيل النماذج اللغوية الكبيرة (LLMs) محلياً.
انسَ أمر أنوية CUDA. وانسَ سرعات المعالج. VRAM هي التي تحدد النماذج التي يمكنك تشغيلها محلياً.
أثناء عملية الاستدلال (Inference)، يجب أن تستقر أوزان النموذج داخل ذاكرة GPU، وتُقرأ باستمرار أثناء توليد الرموز (Tokens). وبمجرد أن تتسرب هذه الأوزان إلى ذاكرة النظام (RAM)، ينهار الأداء بشكل ملحوظ: تخيل انخفاض السرعة من أكثر من 50 رمزاً في الثانية إلى أرقام فردية فقط.
قاعدة الحجم بسيطة جداً: حجم النموذج + ذاكرة التخزين المؤقت (KV cache) + مساحة إضافية بنسبة 10-25% = الحد الأدنى المطلوب من VRAM. يحتاج نموذج بحجم 7B بصيغة FP16 إلى حوالي 14 جيجابايت. ولكن إذا قمت بتكميمه (Quantize) إلى 4-bit GGUF، فسينخفض الاستهلاك إلى حوالي 4-5 جيجابايت. في المقابل، لا يزال نموذج بحجم 70B بصيغة Q4 يحتاج إلى حوالي 38-40 جيجابايت، وهو رقم يتجاوز حتى سعة بطاقة RTX 4090 البالغة 24 جيجابايت.
| وحدة معالجة الرسوميات (GPU) | سعة VRAM | حجم النموذج الواقعي | سرعة نموذج ~7B Q4 |
|---|---|---|---|
| RTX 4060 | 8 جيجابايت | 3B-8B (سياق محدود) | 28-35 رمز/ث |
| RTX 4070 | 12 جيجابايت | 7B-8B (سياق مفيد) | 48-58 رمز/ث |
| RTX 4080 | 16 جيجابايت | 7B-14B | 70-85 رمز/ث |
| RTX 4090 | 24 جيجابايت | 13B-34B | 90-110 رمز/ث |
| RTX 5090 | 32 جيجابايت | 27B-70B (مُكمَّم) | ~140 رمز/ث |
يُعد النطاق الترددي للذاكرة (Memory bandwidth) سبباً رئيسياً في تفاوت السرعات. فعملية الاستدلال هي ببساطة تدفق مستمر للأوزان، لذلك فإن الفرق بين 1008 جيجابايت/ثانية في RTX 4090 و 1792 جيجابايت/ثانية في RTX 5090 يظهر تأثيره مباشرة في أداء توليد النصوص.

Note
[!NOTE] يمكن لمستخدمي AMD المتابعة باستخدام ROCm على نظام Linux أو Vulkan على نظام Windows. بينما يستفيد مستخدمو Apple Silicon من الذاكرة الموحدة (Unified memory)، مما يجعل تشغيل النماذج الكبيرة أسهل على شرائح سلسلة M.
bashcurl -fsSL https://ollama.com/install.sh | sh
في نظام Linux، يكفي هذا الأمر الواحد لإتمام التثبيت. أما مستخدمو Windows، فيمكنهم تحميل برنامج التثبيت من ollama.com. يقوم برنامج التثبيت أو السكربت بفحص بطاقة الرسوميات لديك، ويقوم بإعداد الواجهة الخلفية (Backend) المناسبة تلقائياً.
بعد التثبيت، تأكد من الأساسيات:
bashollama --version nvidia-smi
يعرض الأمر nvidia-smi الاستخدام الحالي لذاكرة GPU وإصدار التعريف الخاص بك. إذا لم يعمل تسريع GPU لاحقاً، فهذه هي أسرع طريقة لمعرفة ما إذا كانت المشكلة في التعريفات أم في إعدادات Ollama.
bashollama pull llama3.1:8b-instruct-q4_K_M
تفاصيل العلامة (Tag) مهمة جداً. يشير 8b إلى نسخة 8 مليارات معلمة (Parameter) من نموذج Llama 3.1. وتعني كلمة instruct أن النموذج مُحسّن لاتباع التعليمات (وليس فقط الإكمال التلقائي). أما q4_K_M فتعني تكميم 4-bit باستخدام طريقة K-quant بجودة متوسطة، وهي غالباً ما تقدم أفضل توازن بين السرعة والذاكرة والجودة للتشغيل المحلي.
إذا كنت تبحث عن خيارات بناءً على سعة VRAM:
bash# 8 جيجابايت VRAM - للنماذج الصغيرة ollama pull gemma3:4b-it-q4_K_M # 12-16 جيجابايت VRAM - الفئة المثالية ollama pull llama3.1:8b-instruct-q4_K_M ollama pull qwen3:14b-q4_K_M # 24 جيجابايت VRAM - للنماذج الكبيرة ollama pull llama3.1:70b-instruct-q4_K_M ollama pull gemma3:27b-it-q4_K_M
يُعد نموذج Gemma 3 من Google خياراً قوياً للمهام متعددة الوسائط (Multimodal)، بينما يتميز Qwen3 بأداء استثنائي في المهام التي تتطلب تفكيراً منطقياً معقداً. يعتمد الخيار المناسب على طبيعة عملك اليومي، لكن أيّاً من هذه النماذج يُعد ممتازاً للمساعدة العامة في البرمجة والكتابة.
bashollama run llama3.1:8b-instruct-q4_K_M
أثناء تشغيل النموذج، افتح نافذة أوامر (Terminal) أخرى:
bashollama ps
textNAME ID SIZE PROCESSOR UNTIL llama3.1:8b-instruct-q4_K_M a]2c6b7d8e9f 5.4 GB 100% GPU 4 minutes from now
يخبرك عمود PROCESSOR بمكان حدوث عملية الاستدلال. أي نسبة أقل من 100% GPU تعني عادةً أن الأوزان تتسرب إلى ذاكرة النظام (RAM). وإذا رأيت شيئاً مثل 50% GPU / 50% CPU، فهذا يعني أن النموذج لا يتسع بالكامل داخل VRAM، وبالتالي سينخفض الأداء.
تحقق مرة أخرى باستخدام nvidia-smi:
bashwatch -n 1 nvidia-smi
يجب أن يقفز استهلاك ذاكرة GPU عندما ترسل المطالبات (Prompts). وإذا ظل الاستهلاك ثابتاً بينما يخبرك Ollama أن النموذج قيد التشغيل، فمن المحتمل أن التعرف على GPU لا يعمل كما ينبغي.
bashollama run llama3.1:8b-instruct-q4_K_M --num-ctx 4096
يؤثر طول السياق على VRAM من خلال ذاكرة التخزين المؤقت (KV cache). وفي معظم الحالات، تؤدي مضاعفة السياق إلى مضاعفة استهلاك ذاكرة KV cache تقريباً. يُعد الإعداد الافتراضي البالغ 2048 رمزاً مناسباً للمحادثات العادية، لكن أنظمة RAG أو التعامل مع المستندات الطويلة غالباً ما يتطلب 8192 رمزاً أو أكثر.
Warning
[!WARNING] إذا قمت بزيادة طول السياق بشكل مبالغ فيه، فقد تواجه أخطاء نفاد الذاكرة في منتصف المحادثة. ابدأ بـ 4096 ولا تقم بزيادته إلا إذا كنت بحاجة فعلية لذلك. سيفشل سياق بحجم 32K على بطاقة GPU بسعة 12 جيجابايت حتى مع النماذج الصغيرة.
لجعل هذه الإعدادات دائمة، استخدم ملف Modelfile:
textFROM llama3.1:8b-instruct-q4_K_M PARAMETER num_ctx 8192 PARAMETER temperature 0.7
bashollama create my-custom-llama -f Modelfile ollama run my-custom-llama
يحافظ هذا الأسلوب على طول السياق، ودرجة الحرارة (Temperature)، ومطالبات النظام (System prompts) في ملف إعدادات واحد قابل لإعادة الاستخدام. وبذلك، لن تضطر إلى إعادة كتابة الأوامر في كل مرة، أو التساؤل عن الإعدادات التي استخدمتها في جلسة معينة.
يغطي Ollama معظم احتياجات العمل، لكن أداة llama.cpp تمنحك تحكماً أدق في التكميم، والمعالجة المجمعة (Batching)، وإعدادات بطاقات GPU المتعددة.
bashgit clone https://github.com/ggml-org/llama.cpp cd llama.cpp make GGML_CUDA=1
الأمر GGML_CUDA=1 هو المسؤول عن تفعيل دعم بطاقات NVIDIA GPU. وبدونه، ستتم عملية الاستدلال عبر المعالج المركزي (CPU) حتى لو كانت بطاقة الرسوميات لديك غير مستخدمة.
قم بتنزيل نموذج بصيغة GGUF من منصة Hugging Face:
bash./llama-cli -m models/llama-3.1-8b-instruct-q4_K_M.gguf \ -p "Explain quicksort in Python" \ -n 512 \ --n-gpu-layers 99 \ --ctx-size 4096
يخبر الأمر --n-gpu-layers 99 أداة llama.cpp بنقل أكبر عدد ممكن من الطبقات إلى GPU. وإذا نفدت مساحة VRAM، فستقوم الأداة بنقل الطبقات المتبقية إلى CPU تلقائياً. أما إذا أردت تقسيماً متعمداً (على سبيل المثال، ترك مساحة في VRAM لتطبيق آخر)، فيمكنك تحديد رقم معين مثل 32.
| الصيغة | البتات (Bits) | الجودة | السرعة | الذاكرة | الأفضل لـ |
|---|---|---|---|---|---|
| Q8_0 | 8-bit | ممتازة | أبطأ | أعلى | المهام التي تتطلب جودة عالية |
| Q6_K | 6-bit | جيدة جداً | متوسطة | متوسطة | الباحثين عن التوازن |
| Q4_K_M | 4-bit | جيدة | سريعة | منخفضة | معظم المستخدمين |
| Q4_K_S | 4-bit | مقبولة | الأسرع | الأقل | الأجهزة ذات VRAM المحدودة |
| Q2_K | 2-bit | منخفضة | سريعة جداً | ضئيلة | التجارب فقط |
تتعمق وثائق bitsandbytes في تفاصيل التكميم. وعملياً، تُعد صيغة Q4_K_M الخيار الافتراضي لبطاقات الرسوميات الاستهلاكية، لأن الجودة تظل قريبة من FP16 بينما ينخفض استهلاك الذاكرة بشكل كبير. وإذا كانت Q4_K_M لا تزال أكبر من سعة جهازك، جرب Q4_K_S. من الأفضل ترك Q2_K للتجارب السريعة فقط لأن فقدان الجودة يصبح واضحاً جداً.
Tip
[!TIP] إذا كنت محتاراً بين نموذج كبير بتكميم منخفض ونموذج صغير بتكميم عالٍ، فإن النموذج الأكبر يتفوق عادةً. فغالباً ما يتفوق نموذج 14B بصيغة Q4 على نموذج 7B بصيغة Q8 حتى لو كان استهلاك الذاكرة متقارباً.

bashollama ps
انظر إلى عمود PROCESSOR. إذا ظهرت كلمة CPU، فهذا يعني أن النموذج لا يتسع في VRAM. وأفضل الحلول المتاحة لك هي:
bashnvidia-smi
تحقق من استهلاك VRAM قبل تحميل النموذج. يمكن للمتصفحات التي تستخدم تسريع الأجهزة (Hardware acceleration)، وتطبيق Discord، ومشغلات الفيديو أن تستهلك جزءاً كبيراً من VRAM دون أن تلاحظ. أغلقها، أو قم بإيقاف تشغيل تسريع GPU من إعداداتها.
bash# التحقق من تثبيت CUDA nvcc --version # التحقق من توافق التعريفات nvidia-smi
تحتاج أداة Ollama إلى إصدار CUDA 11.8 أو أحدث، وتعريفات تدعم قدرة حوسبة 5.0 أو أعلى. إذا لم يتم العثور على أمر nvcc، فقم بتثبيت حزمة أدوات CUDA. وإذا أظهر nvidia-smi إصداراً قديماً للتعريف، فقم بتحديثه عبر موقع NVIDIA أو مدير الحزم لديك.
هذا أمر طبيعي. فالمطالبة الأولى تحتاج إلى تحميل الأوزان داخل VRAM، وهو ما قد يستغرق بضع ثوانٍ بناءً على حجم النموذج وسرعة القرص. بعد ذلك، تعيد المطالبات استخدام الأوزان المخزنة مؤقتاً. وتُحدث أقراص SSD فرقاً ملحوظاً هنا مقارنة بأقراص HDD.
للحصول على خط أساس (Baseline) للأداء:
bashollama run llama3.1:8b-instruct-q4_K_M --verbose
أرسل مطالبة وراقب الإحصائيات:
text>>> Write a Python function to calculate fibonacci numbers eval count: 256 tokens eval duration: 4.2s eval rate: 60.95 tokens/s
يمثل eval rate سرعة توليد النصوص لديك. قارن هذه القيمة بالجدول السابق. وإذا كانت سرعتك أقل بكثير مما يجب أن تحققه بطاقة GPU الخاصة بك، فارجع وتحقق من التعرف على GPU وتأكد من أن النموذج يتسع فعلياً داخل VRAM.
وإذا أردت إجراء اختبار أثقل:
bash## توليد 500 رمز لاختبار الضغط ./llama-cli -m model.gguf -p "Write a detailed essay about renewable energy" -n 500 --n-gpu-layers 99
وراقب درجات الحرارة أثناء التشغيل لفترات طويلة:
bashwatch -n 1 "nvidia-smi --query-gpu=temperature.gpu,utilization.gpu,memory.used --format=csv"
إذا تجاوزت درجة الحرارة 83 درجة مئوية لفترات طويلة، فمن المحتمل أنك تواجه قيوداً في التبريد. قد يؤدي ذلك إلى خنق الأداء (Throttling)، وهو أمر غير جيد لصحة أجهزتك على المدى الطويل.
المساعدة في البرمجة: Qwen3 14B أو Llama 3.1 8B. كلاهما قوي في كتابة الأكواد، واكتشاف الأخطاء، وتقديم الشروحات. ويتفوق Qwen3 عادةً في مهام التفكير المنطقي الأكثر صعوبة.
الكتابة والتحرير: يُعد Gemma 3 12B خياراً ممتازاً للكتابة الإبداعية والتعديلات التي تتطلب مراعاة نبرة النص.
أنظمة RAG والأسئلة والأجوبة للمستندات: Llama 3.1 8B مع سياق موسع (8192 أو أكثر). يدعم النموذج الأساسي سياقاً يصل إلى 128K، لذلك يمكن للنسخ المُكمَّمة التعامل مع مستندات ضخمة إذا كانت سعة VRAM تسمح بذلك.
المهام متعددة الوسائط: يتضمن Gemma 3 27B دعماً للرؤية لفهم الصور جنباً إلى جنب مع النصوص.
إذا أردت معرفة المزيد حول أسباب انتقال فِرَق العمل إلى التشغيل المحلي، فإن المقال حول حركة الذكاء الاصطناعي القائم على العمل دون اتصال أولاً يضيف خلفية مفيدة حول موازنات الخصوصية والتكلفة.

ابدا من هنا (خطوتك الأولى)
قم بتثبيت Ollama وشغل الأمر ollama pull llama3.1:8b-instruct-q4_K_M للحصول على نموذج LLM محلي يعمل في أقل من 5 دقائق.
مكاسب سريعة (تأثير فوري)
ollama ps أثناء المحادثة للتأكد من استخدام GPU بنسبة 100%.--num-ctx 4096 لتحسين ذاكرة المحادثة دون استنفاد VRAM.تعمق أكثر (لمن يريد المزيد)
--n-gpu-layers للعثور على أفضل تقسيم بين GPU و CPU لجهازك.يعتمد تشغيل النماذج اللغوية الكبيرة (LLMs) محلياً على بطاقات الرسوميات الاستهلاكية بشكل أساسي على ثلاثة أشياء: سعة VRAM، والتكميم، وطول السياق. يمكن لبطاقة GPU بسعة 8 جيجابايت تشغيل نماذج 7B بكل أريحية. وتستطيع بطاقة بسعة 24 جيجابايت التعامل مع نماذج من فئة 34B مع مساحة إضافية كافية. كما أن الأدوات أصبحت ناضجة بما يكفي لتنتقل من الصفر إلى إعداد يعمل بالكامل في غضون دقائق.
المكسب الأكبر ليس فقط توفير المال مقارنة باستخدام واجهات برمجة التطبيقات (APIs). فعملية الاستدلال المحلي تحافظ على خصوصية بياناتك، وتتجنب إرسالها إلى خوادم خارجية، وتعمل دون اتصال بالإنترنت، وتمنح فريقك تحكماً كاملاً في كيفية تشغيل النموذج. وسواء كنت تبني نماذج أولية، أو تتعامل مع بيانات حساسة، أو تتعلم كيف تتصرف هذه الأنظمة، فإن الإعدادات المحلية تزيل الكثير من التبعيات والتخمين.