العثور على 7 نماذج «ميتة» من أصل 305 في مكتبة Ollama: لا تكتب أي كود

عند تنزيل نموذج لتشغيله محليًا، تحصل على نسخة مضغوطة (كمّية) من النموذج الأصلي، ولا أحد يتحقق من أنها تعمل أصلًا. أجرى مؤلفو الدراسة اختبارات برمجية على جميع النسخ المؤهلة في مكتبة Ollama الرسمية، وعددها 305. سبع نسخ (2,3%) حلّت 6 مسائل على الأكثر من أصل 164 مسألة في HumanEval+، وهي مجموعة مسائل بلغة Python باختبارات معزَّزة. والنسخ السبع كلها نماذج بحجم يصل إلى 4 مليارات معامل خضعت لضغط شديد. أعاد الباحثون بناء خمسة من هذه الملفات انطلاقًا من الأوزان الأصلية، فتطابقت البايتات كلها: الملفات غير تالفة. المشكلة أن الضغط جرى دون معايرة. وعندما أضافوا مصفوفة الأهمية (imatrix) إلى Qwen2.5-Coder-3B، ارتفعت النتيجة من صفر إلى ما بين 76 و113 مسألة من أصل 164. • يستغرق الاختبار السريع نحو 30 ثانية من التوليد لكل ملف. • من بين 66 نسخة «ناجحة» فُحصت عيّنةً، لم تظهر أي نسخة معطوبة. • ما زال 26 وسمًا من أصل 305 بلا نوع محدَّد للمُجزِّئ (tokenizer).

معالج بواسطة الذكاء الاصطناعي من Hugging Face Daily Papers؛ بتحرير Hamidun News
العثور على 7 نماذج «ميتة» من أصل 305 في مكتبة Ollama: لا تكتب أي كود
المصدر: Hugging Face Daily Papers. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليHugging Face Daily Papers ↗
رئيس التحرير
حقيقة رئيسية #1يستغرق الاختبار السريع نحو 30 ثانية من التوليد لكل ملف.
حقيقة رئيسية #2من بين 66 نسخة «ناجحة» فُحصت عيّنةً، لم تظهر أي نسخة معطوبة.
حقيقة رئيسية #3ما زال 26 وسمًا من أصل 305 بلا نوع محدَّد للمُجزِّئ (tokenizer).

عندما يشغّل المطوّر نموذجًا لغويًا على حاسوبه، فإنه ينزّل في الغالب ملفًا مضغوطًا من كتالوج عام. يسمّى هذا الضغط الكمّية (quantization): تُخزَّن أوزان النموذج في 2–8 بت بدلًا من 16 بتًا، حتى يتسع الملف في الذاكرة. تصدر هذه الملفات عن مشغّلي الكتالوجات أو عن متطوعين، ولا توجد في صفحات الكتالوجات ولا في البيانات الوصفية أي إشارة إلى أن الملف اختُبر عمليًا. قرر الباحثون التحقق من ذلك على نطاق كتالوج كامل: أخذوا جميع النسخ (الوسوم) المؤهلة في مكتبة Ollama الرسمية، وعددها 305، وشغّلوا على كل منها مسائل برمجة. تبيّن أن سبع نسخ، أي 2,3%، لا تعمل: فقد حلّت 6 مسائل على الأكثر من أصل 164.

كيف بحثوا عن الملفات الميتة

شملت العيّنة 15 سلسلة من النماذج: ثمانٍ مخصصة للكود وسبع عامة الأغراض. وبلغ المجموع 35 نسخة من النماذج؛ منها 291 نسخة مكمَّمة، و14 محفوظة بدقة 16 بت المعتادة. وأُضيف إليها 22 ملفًا شائعًا من ملفات المجتمع على Hugging Face، من 12 مستودعًا.

جرى الفحص على مرحلتين:

• المرشّح السريع. 15 مسألة من HumanEval+، اختيرت من بين 39 مسألة حلّتها جميع تهيئات Qwen2.5-Coder السليمة المعروفة، وعددها 23. النسخة التي حلّت أقل من 9 مسائل من 15 أصبحت موضع شبهة. ويستغرق التوليد نحو 30 ثانية لكل ملف. • التشغيل الكامل. حصلت النسخ المشتبه بها على جميع مسائل HumanEval+ البالغ عددها 164. واعتُبرت النسخة غير عاملة إذا حلّت أقل من 10% وكانت متأخرة كثيرًا عن نسختها هي نفسها بدقة عالية.

جرت جميع عمليات التشغيل على بطاقة RTX 4090 باستخدام فك الترميز الجشع وبذرة ثابتة (seed 42)، ولذلك أعطى التشغيل المتكرر على جهاز ثانٍ الإجابات نفسها، وعددها 225، بايتًا ببايت. وكُشف في أثناء ذلك عن خطأ في الاحتساب نفسه: بسبب انتهاء المهلة الزمنية (timeout) كانت المسألة HumanEval/15 تُحتسب فاشلة تقريبًا في كل مكان. وبعد إعادة فحص النسخ المشتبه بها بقيت 39 نسخة بدلًا من 50، أما المشتبه بهم السبعة الرئيسيون فلم يتغيروا.

والنسخ السبع كلها إصدارات مضغوطة بشدة من نماذج بحجم يصل إلى 4 مليارات معامل. خمس منها تتبع Qwen وphi3.5، ووسمان آخران يتبعان llama3.2 بحجم مليار معامل. لم يعيدوا بناء هذين الوسمين بسبب ترخيص الأوزان الأصلية، ولذلك بقي السبب غير معروف. كما لم يعمل ملفان من ملفات المجتمع، وفُحصا على حدة بقوالب دردشة مختلفة.

الملفات سليمة، والعلة في الوصفة

أعاد الباحثون بناء خمسة من الملفات المشتبه بها انطلاقًا من الأوزان الأصلية، وفق الوصفة المذكورة في البيانات الوصفية، أي دون معايرة. ثم قارنوا التنسورات: النوع والشكل والبايتات. وكانت النتيجة غير متوقعة: تطابقت الملفات الخمسة من الكتالوج مع النسخ المعاد بناؤها تطابقًا تامًا. لا يوجد أي تلف ناتج عن التحويل. هذه كمّيات دقيقة للأوزان الأصلية، لكنها لا تعمل.

بعد ذلك فحصوا أثر المعايرة. المقصود مصفوفة الأهمية (imatrix): إحصاءات للتنشيطات (activations) تُجمع على عيّنة نصية. تُرشد هذه المصفوفة أداة الكمّية إلى المواضع التي يكون فيها خطأ التقريب أخطر، فتختار مقاييس الكتل بدقة أكبر. بُنيت المصفوفة إما على 100 مقطع من WikiText-2 بطول 512 رمزًا لكل منها، وإما على 1,5 ميغابايت من كود Python من مستودع llama.cpp.

وجاءت النتيجة كما يلي:

• في Qwen2.5-Coder-3B، ارتفعت النتيجة في ثلاثة من أصل أربعة مستويات ضغط معطوبة من صفر إلى ما بين 76 و113 مسألة من أصل 164، أي 46–69%. أما النسخة رباعية البت من النموذج نفسه فتحل نحو 80%. • أعطت الوصفة نفسها دون معايرة نموذجًا عاملًا في Qwen2.5-Coder-1.5B. وهذا يعني أن العطل لا يمكن التنبؤ به من الوصفة وحدها. • من بين 66 نسخة اجتازت المرشّح وفُحصت عيّنةً، لا توجد نسخ غير عاملة.

اعتمدت النسخة الأولى من الدراسة في اختيار المرجع على مؤلف التحويل لا على الوصفة، ووصفت الملفات بأنها معيبة. وقد صحّح إعادة البناء بالوصفة نفسها هذا الاستنتاج.

ماذا على مشغّلي الكتالوجات والمستخدمين أن يفعلوا

سبق أن ظهرت مشكلات في ملفات الكتالوجات. ففي عام 2024 اكتشف مشرفو llama.cpp أن بعض التحويلات تستخدم معالجة نصية مسبقة خاطئة قبل التجزئة إلى رموز، وشكا مستخدمون من أعطال. وبعد عامين، ما زال 26 وسمًا من أصل 305 وسمًا رسميًا بلا نوع محدَّد للمُجزِّئ (tokenizer).

يوصي المؤلفون بما يلي:

• تمرير النسخ منخفضة البت قبل النشر عبر اختبار قصير لتنفيذ الكود. ولهذا نشروا أداة quantcheck وبيانات التدقيق. • إذا أخفقت النسخة في الاختبار، فيجب معايرتها أو عدم إصدارها. • ألا يعدّ المستخدمون الوسم في الكتالوج نسخة مختبَرة، خصوصًا عند 2–3 بت للوزن الواحد وفي النماذج التي يصل حجمها إلى 4 مليارات معامل.

وللدراسة حدودها أيضًا. فالفحص يشمل نماذج الكود فقط ومكتبة رسمية واحدة، إضافة إلى عيّنة صغيرة من Hugging Face. ووسما llama3.2-1B غير العاملين بقيا دون تفسير. كما يعتمد المرشّح على مسائل اختيرت بناءً على نسخ Qwen السليمة، وفي نماذج deepseek-coder-1.3B تحصل ستة وسوم على 1–6 من أصل 15 حتى بدقة عالية، وإن كانت هذه قصة أخرى. لكن الخلاصة الرئيسية واضحة: التطابق التام مع الوصفة لا يعني بعدُ أن الملف يعمل، وقد التقط اختبار رخيص مدته 30 ثانية ما بقي في الكتالوج أشهرًا.

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول كيف بحثوا عن الملفات الميتة؟

شملت العيّنة 15 سلسلة من النماذج: ثمانٍ مخصصة للكود وسبع عامة الأغراض. وبلغ المجموع 35 نسخة من النماذج؛ منها 291 نسخة مكمَّمة، و14 محفوظة بدقة 16 بت المعتادة. وأُضيف إليها 22 ملفًا شائعًا من ملفات المجتمع على Hugging Face، من 12 مستودعًا. جرى الفحص على مرحلتين: المرشّح السريع. 15 مسألة من HumanEval+، اختيرت من بين 39 مسألة حلّتها جميع تهيئات Qwen2.5-Coder السليمة المعروفة، وعددها 23. النسخة التي حلّت أقل من 9 مسائل من 15 أصبحت موضع شبهة. ويستغرق التوليد نحو 30 ثانية لكل ملف. التشغيل الكامل. حصلت النسخ المشتبه بها على جميع مسائل HumanEval+ البالغ عددها 164. واعتُبرت النسخة غ

ما أبرز التفاصيل حول الملفات سليمة، والعلة في الوصفة؟

أعاد الباحثون بناء خمسة من الملفات المشتبه بها انطلاقًا من الأوزان الأصلية، وفق الوصفة المذكورة في البيانات الوصفية، أي دون معايرة. ثم قارنوا التنسورات: النوع والشكل والبايتات. وكانت النتيجة غير متوقعة: تطابقت الملفات الخمسة من الكتالوج مع النسخ المعاد بناؤها تطابقًا تامًا. لا يوجد أي تلف ناتج عن التحويل. هذه كمّيات دقيقة للأوزان الأصلية، لكنها لا تعمل. بعد ذلك فحصوا أثر المعايرة. المقصود مصفوفة الأهمية (imatrix): إحصاءات للتنشيطات (activations) تُجمع على عيّنة نصية. تُرشد هذه المصفوفة أداة الكمّية إلى المواضع التي يكون فيها خطأ التقريب أخطر، فتختار مقاييس الكتل بدقة أكبر.

ما أبرز التفاصيل حول ماذا على مشغّلي الكتالوجات والمستخدمين أن يفعلوا؟

سبق أن ظهرت مشكلات في ملفات الكتالوجات. ففي عام 2024 اكتشف مشرفو llama.cpp أن بعض التحويلات تستخدم معالجة نصية مسبقة خاطئة قبل التجزئة إلى رموز، وشكا مستخدمون من أعطال. وبعد عامين، ما زال 26 وسمًا من أصل 305 وسمًا رسميًا بلا نوع محدَّد للمُجزِّئ (tokenizer). يوصي المؤلفون بما يلي: تمرير النسخ منخفضة البت قبل النشر عبر اختبار قصير لتنفيذ الكود. ولهذا نشروا أداة quantcheck وبيانات التدقيق. إذا أخفقت النسخة في الاختبار، فيجب معايرتها أو عدم إصدارها. ألا يعدّ المستخدمون الوسم في الكتالوج نسخة مختبَرة، خصوصًا عند 2–3 بت للوزن الواحد وفي النماذج التي يصل حجمها إلى 4 مليارات معامل

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
ما رأيك؟
جارٍ تحميل التعليقات…