كيف تحوّل نموذجًا إلى صيغة GGUF باستخدام llama.cpp؟
إجابة سريعة
شغّل نص التحويل البرمجي الخاص بـ llama.cpp على دليل نموذج بصيغة Hugging Face، محددًا نوع إخراج مثل f16 (دقة كاملة) أو صيغة مكممة مثل q4_k_m. يقرأ النص البرمجي أوزان النموذج وإعداداته، ويكتبها في ملف .gguf واحد، ويمكن تحميل هذا الملف مباشرة بواسطة llama.cpp أو Ollama أو LM Studio.
- ▸يجب أن يكون النموذج المصدر بصيغة Hugging Face (safetensors أو نقطة تفتيش PyTorch) قبل التحويل
- ▸اختر نوع الإخراج: f16/f32 للدقة الكاملة، أو نوعًا مكممًا للتحويل والتصغير في خطوة واحدة
- ▸التكميم بشكل منفصل بعد التحويل إلى f16 يمنح تحكمًا أكبر من التكميم أثناء التحويل
تحديث: ١٥ يوليو ٢٠٢٦
Technique & Concept Explainersمتوسط
النقاط الرئيسية
- ✓يقرأ التحويل إلى GGUF أوزان وبيانات وصفية نموذج بصيغة Hugging Face ويكتبها في ملف .gguf واحد قابل للنقل
- ✓حوّل أولًا إلى f16/f32 إذا كنت تخطط لتجربة عدة مستويات تكميم — فالتكميم من تحويل مُكمَّم بالفعل يفقد جودة أكبر من التكميم من الدقة الكاملة
- ✓يحدد نوع الإخراج الذي تختاره وقت التحويل حجم الملف وجودة الاستدلال معًا — لا توجد وجبة مجانية بينهما
- ✓تعود معظم أخطاء التحويل إلى دليل نموذج مصدر غير متوافق أو غير مكتمل، وليس إلى نص التحويل البرمجي نفسه
عملية التحويل
يتكون التحويل من ثلاث خطوات عملية: تحضير النموذج المصدر، تشغيل نص التحويل البرمجي بنوع إخراج محدد، ثم — إن حوّلت إلى الدقة الكاملة — التكميم لاحقًا.
- ▸**1. تحضير النموذج المصدر:** يتوقع نص التحويل البرمجي دليلًا بصيغة Hugging Face يحتوي على ملفات أوزان النموذج (تُفضَّل صيغة safetensors على نقاط تفتيش PyTorch القديمة بامتداد `.bin`) بالإضافة إلى ملفات الإعداد والمُجزِّئ اللغوي (tokenizer). الدليل المُنزَّل جزئيًا أو المُجمَّع يدويًا والذي تنقصه ملفات المُجزِّئ اللغوي هو السبب الأكثر شيوعًا لفشل التحويل.
- ▸**2. تشغيل نص التحويل البرمجي بنوع إخراج محدد:** الأمر `python convert_hf_to_gguf.py
--outtype f16` ينتج ملف GGUF بدقة كاملة. تمرير `--outtype` مُكمَّم (مثل `q8_0`) يُكمِّم أثناء التحويل في خطوة واحدة، لكنه يمنح تحكمًا أقل من التحويل إلى f16 أولًا ثم التكميم بشكل منفصل لاحقًا باستخدام أداة تكميم مخصصة. - ▸**3. التكميم بشكل منفصل لتحكم أكبر (اختياري لكنه موصى به):** بدءًا من ملف GGUF بصيغة f16، شغّل أداة التكميم الخاصة بـ llama.cpp لإنتاج عدة نسخ مكممة (مثل q4_k_m وq5_k_m) من المصدر ذي الدقة الكاملة نفسه، مما يتيح لك مقارنة المفاضلات بين الجودة والحجم دون إعادة تشغيل التحويل في كل مرة.
أخطاء التحويل الشائعة
تقع معظم أخطاء التحويل ضمن عدد قليل من الفئات، وتعود دائمًا تقريبًا إلى النموذج المصدر وليس إلى النص البرمجي نفسه.
- ▸**بنية غير معروفة:** يحتفظ نص التحويل البرمجي بقائمة داخلية لبنى النماذج المدعومة. قد لا تكون البنية الجديدة جدًا أو غير الشائعة مدعومة بعد — تحقق من قائمة البنى الحالية للأداة قبل افتراض أن ملفات النموذج تالفة.
- ▸**ملفات المُجزِّئ اللغوي مفقودة:** يحتاج التحويل إلى إعدادات المُجزِّئ اللغوي إلى جانب الأوزان. دليل نموذج يحتوي على ملفات الأوزان فقط دون ملفات المُجزِّئ اللغوي سيفشل في منتصف التحويل.
- ▸**عدم تطابق توقعات صيغة الملف:** تحتاج نقاط تفتيش PyTorch القديمة بامتداد `.bin` أحيانًا إلى خطوة تحويل إضافية إلى safetensors، حسب إصدار الأداة — يُفضَّل تنزيل النماذج التي تُقدَّم بالفعل بصيغة safetensors لتجنب ذلك تمامًا.
- ▸**مساحة قرص أو ذاكرة وصول عشوائي غير كافية أثناء التحويل:** يحمّل التحويل النموذج بدقة كاملة في الذاكرة قبل كتابته، لذا فهو يحتاج تقريبًا إلى نفس مقدار الذاكرة الذي يعادل حجم النموذج بدقة كاملة، بالإضافة إلى مساحة القرص اللازمة للملفات المصدر وملف GGUF الناتج في وقت واحد.
الأسئلة الشائعة
هل يجب أن أُكمِّم أثناء التحويل أم أحوّل إلى الدقة الكاملة أولًا؟▾
حوّل إلى الدقة الكاملة (f16) أولًا إذا كنت تخطط لمقارنة عدة مستويات تكميم — فالتكميم بشكل منفصل لاحقًا من المصدر f16 نفسه يعطي نتائج أدق من التكميم مباشرة من نموذج مصدر أثناء التحويل، ويتيح لك إنتاج عدة نسخ مكممة دون تكرار خطوة التحويل.
لماذا يفشل ملف GGUF المُحوَّل في التحميل على Ollama أو LM Studio رغم نجاح التحويل؟▾
نجاح التحويل لا يضمن أن أداة التحميل تدعم تلك البنية أو إصدار GGUF المحدد. تحقق من أن إصدار أداة التحميل لديك محدَّث — فصيغة GGUF ودعم البنى يتطوران معًا، وقد لا يتعرف إصدار أقدم من الأداة على ملف أنتجه نص تحويل برمجي أحدث.
كم مساحة قرص يحتاجها التحويل؟▾
خصص مساحة تعادل الحجم الكامل للنموذج المصدر بالإضافة إلى حجم ملف GGUF الناتج في الوقت نفسه — بالنسبة للتحويل بدقة كاملة، يضاعف ذلك تقريبًا المساحة التي يشغلها النموذج أثناء العملية. ملفات الإخراج المكممة أصغر حجمًا، لكنك تحتاج إلى بقاء الملفات المصدر موجودة حتى انتهاء التحويل.
هل يمكنني تحويل نموذج خضع بالفعل لضبط دقيق (fine-tuning)؟▾
نعم — تعمل عملية التحويل بنفس الطريقة على نموذج خضع لضبط دقيق كما تعمل على نموذج أساسي، طالما أن الأوزان المضبوطة محفوظة بصيغة قياسية متوافقة مع Hugging Face. إذا استخدم الضبط الدقيق أوزان محول (adapter) مثل LoRA بدلًا من الأوزان الكاملة، فادمج المحول مع النموذج الأساسي أولًا، ثم حوّل النتيجة المدمجة.