نزّلت ملف .gguf وتتساءل كيف تشغّله فعلًا؟ أسرع طريق: ollama run hf.co/<repo>:Q4_K_M — يسحب Ollama ملف GGUF من Hugging Face مباشرة ويقدّمه. صيغة GGUF هي صيغة النموذج أحادية الملف التي قدمتها llama.cpp واليوم تتكلمها كل أدوات الـ LLM المحلية، فالملف نفسه يعمل في Ollama وllama.cpp وLM Studio وJan و(مع تنبيهات) vLLM. يغطي هذا الدليل كل مشغّل بأوامر جاهزة للنسخ، وطريقة اختيار درجة الضغط المناسبة لسعة VRAM لديك، وأخطاء التحميل التي ستقابلك فعلًا.
ما هو ملف GGUF؟
GGUF (GGML Universal File) صيغة حاويات للنماذج اللغوية المضغوطة. ملف واحد يضم الأوزان والمقطّع (tokenizer) وبيانات النموذج الوصفية — لا شيء آخر للتنزيل، ولا شوربة إعدادات. الأوزان بداخله مضغوطة: من أعداد عشرية بـ 16 بت إلى أعداد صحيحة بـ 4 بت (أو أقل)، ولهذا يناسِب نموذج 9B الذي يحتاج ~18 جيجابايت بالدقة الكاملة ملفًا بحجم ~5.5 جيجابايت بصيغة Q4 ويعمل على بطاقة ألعاب أو حتى معالج.
أمران مهمان في اسم ملف GGUF:
- النموذج الأساسي —
gemma-3-4b-it-GGUFهو Gemma 3 بحجم 4B بعد ضبط دقيق وتصدير إلى GGUF. - وسم الضغط —
Q4_K_MوQ8_0وIQ4_XSوأخواتها تحدد مدى قسوة ضغط الأوزان. المزيد عن الاختيار أدناه.
هل يشغّل Ollama نماذج GGUF؟
نعم — GGUF هي الصيغة الأصلية لـ Ollama، ومنذ 2024 يسحبها من Hugging Face مباشرة دون أن تلمس ملفًا:
# اسحب ضغط GGUF من Hugging Face مباشرة وتحدث معه
ollama run hf.co/bartowski/gemma-2-9b-it-GGUF:Q4_K_M
# وسم الضغط بعد النقطتين يختار الملف داخل المستودع
ollama run hf.co/ggml-org/gemma-3-4b-it-GGUF:Q8_0 نزّلت ملف .gguf بنفسك مسبقًا؟ وجّه Modelfile إليه:
# Modelfile — سطر واحد يكفي
FROM ./gemma-2-9b-it-Q4_K_M.gguf ollama create gemma9b -f Modelfile
ollama run gemma9b يقرر Ollama التحويل إلى GPU تلقائيًا ويكشف API متوافقًا مع OpenAI على المنفذ 11434، فأي أداة تفهم هذا الـ API تستخدم النموذج. الثمن هو التحكم: لا تختار أنت عدد الطبقات التي تذهب إلى الـ GPU.
كيف تشغّل ملف GGUF في llama.cpp؟
llama.cpp هو مصدر GGUF — الصيغة وُجدت من أجله — فالدعم فيه أعمق وأحدث. يعطيك الثنائي llama-server واجهة دردشة ونقطة نهاية متوافقة مع OpenAI معًا:
# نزّل من Hugging Face مباشرة (يختار GGUF ملائمًا لجهازك)
llama-server -hf ggml-org/gemma-3-4b-it-GGUF --port 8080
# أو شغّل ملفًا لديك أصلًا، بتحويل كامل إلى GPU
llama-server -m ./gemma-2-9b-it-Q4_K_M.gguf -ngl 99 --port 8080 تدفع -ngl 99 تسعًا وتسعين طبقة إلى الـ GPU؛ اضبطها دون ما تسمح به سعتك فتبقى البقية على المعالج. هذا المقبض للتحويل الجزئي هو القوة الخارقة لـ llama.cpp — نموذج 9B يعمل جيدًا على بطاقة 6 جيجابايت بتحويل 20 طبقة من 48، فقط أبطأ. وللاستعلام المرة الواحدة بدل خادم، استبدل llama-server بـ llama-cli بالخيار -m نفسه.
وLM Studio هو المحرك نفسه خلف واجهة سطح مكتب: أفلِت ملف .gguf في مجلد النماذج (أو ابحث في Hugging Face من داخل التطبيق) واضغط تحميل. وللاختيار بين الأدوات ذاتها، تغطي مقارنة Ollama مع LM Studio أيهما تضع تحت نماذجك.
أي درجة ضغط GGUF تنزّل؟
الجواب الافتراضي: Q4_K_M. إنه البقعة الحلوة لدى المجتمع — ضمن نسبة أو اثنتين من جودة الدقة الكاملة بحجم يكاد يكون الربع. السلم، من الأكبر إلى الأصغر:
- Q8_0 — شبه بلا فقد؛ استخدمه إذا كانت VRAM تبتلع 8.5 بت لكل وزن دون أن تغتلط.
- Q6_K / Q5_K_M — درجة أصغر حجمًا، ولا تزال ممتازة لنماذج 30B فأكثر.
- Q4_K_M — الافتراضي. للنماذج 7–14B هنا تبلغ جودة لكل جيجابايت قمتها.
- IQ4_XS / Q3_K_M — لسحق نموذج كبير في بطاقة صغيرة؛ يصبح فقد الجودة ملحوظًا.
- Q2_K وما دونه — الملاذ الأخير؛ يبدأ النموذج في التدهور إلى هراء في منتصف الجملة.
قاعدة الإقامة: حجم الملف بالجيجابايت زائد ~1–2 جيجابايت من حِمل السياق يجب أن يتسع في VRAM لديك. ملف 4.7 جيجابايت بصيغة Q4_K_M لنموذج 9B مريح على بطاقة 8 جيجابايت. وفضّل نموذجًا أصغر بضغط أعلى على نموذج أكبر بضغط مروّع — نموذج 4B بضغط Q8 يغلب عادة نموذج 9B بضغط Q2.
GGUF مقابل Safetensors: أي صيغة تحتاج؟
Safetensors صيغة الأرشيف غير المضغوط — أوزان بدقة كاملة للتدريب والضبط الدقيق وأدوات مثل transformers وComfyUI. وGGUF هي الصيغة المضغوطة القابلة للتشغيل للاستدلال على عتادك أنت. لا يمكنك ضبط GGUF بدقة، ولا تشغيل ملف safetensors في Ollama أو llama.cpp قبل تحويله (وهذا عمل سكربت convert_hf_to_gguf.py في llama.cpp). القاعدة: تدريب أو مسارات صور → safetensors؛ دردشة محلية وتقديم خدمة → GGUF. وإذا بدأ بحثك بعبارة “gguf مقابل safetensors” فهذا الانقسام هو كامل الجواب.
أي مشغّل GGUF تستخدم؟
| المشغّل | الأفضل لـ | التثبيت | التحويل إلى GPU | API متوافق مع OpenAI |
|---|---|---|---|---|
| Ollama | خدمة اضبطها وانمَ عنها | سطر curl واحد | تلقائي | نعم (:11434/v1) |
| llama.cpp | أقصى تحكم وأحدث الميزات | بناء أو مدير حزم | مقبض -ngl يدوي | نعم (llama-server) |
| LM Studio | واجهة سطح مكتب وتصفح نماذج | تنزيل التطبيق | تلقائي | نعم (خادم محلي) |
| vLLM | تقديم مجمّع لمستخدمين متعددين | pip install vllm | تلقائي | نعم (أصلي) |
اختر Ollama إذا أردته يعمل عند الإقلاع وبعيدًا عن العين — إنه ما أستخدمه على homelab الخاص بي لتقديم النماذج لكل شيء على الشبكة. اختر llama.cpp إذا احتجت ميزة في يوم صدورها (المعماريات الجديدة تصل هناك أولًا) أو أردت تحكمًا في الذاكرة على مستوى الطبقة. اختر LM Studio لواجهة رسومية. واختر vLLM فقط عندما يجب أن يقدّم نموذج واحد مستخدمين متزامنين كثيرين — دعمه لـ GGUF يعمل لكنه في المقعد الثاني خلف صيغه الأصلية.
لماذا لا يُحمَّل نموذج GGUF الخاص بي؟
الأخطاء الأربعة التي تغطي معظم الحالات:
unknown model architecture— يستخدم ملف GGUF معمارية أحدث من بيئة التشغيل لديك (نماذج MoE والرؤية الجديدة تهبط باستمرار). حدّث Ollama أو أعد بناء llama.cpp؛ لا إصلاح آخر موجود.- نفاد الذاكرة عند التحميل — الضغط أكبر من VRAM لديك مضافًا إليه السياق. انزل درجة (
Q4_K_M→Q3_K_M)، أو خفّض-ngl، أو صغّر السياق بـ-c 4096. - تنزيل مقطوع / تالف — يفشل تحميل GGUF بخطأ رقم سحري أو بيانات وصفية. أعد التنزيل وقارن بصمة SHA256 الظاهرة في صفحة Hugging Face.
- يرفض
ollama run ./model.gguf— متوقع: يأخذrunفي Ollama أسماء نماذج لا مسارات ملفات. استخدم طريق Modelfile الموضح أعلاه.
زاوية أخيرة تستحق المعرفة: نقطة نهاية GGUF محلية تتعانى جيدًا مع أدوات البرمجة بالوكلاء — وجّه إليها عميلًا متوافقًا مع OpenAI وستكلف الإكمالات الكهرباء وحدها. وقد اختبر أفضل LLMs محلية للبرمجة أي النماذج تستحق المقعد حين تعمل السباكة في هذا الدليل.
— mrsaynothing
— mrsaynothing
ملاحظات ميدانية في الذكاء الاصطناعي وLinux والاستضافة الذاتية.
ناقش هذا المقال على dev.to dev.to ↗
احصل على الشرح التطبيقي التالي بالبريد
رسالة واحدة لكل مقال. أصلح المشكلة وامضِ.
ما هذا؟مزامنة fork مع upstream في Git: 3 طرق آمنة
أعجبتك هذه الكتابات؟ بناء مثل هذا هو عملي. وظّفني