الدروس المستفادة من مرحلة بيتا
بعد أكثر من 500 مليون تنزيل، وسنوات من الطلبات من مجتمع المصادر المفتوحة، وكونها منتجاً رائداً على Hugging Face، أطلقت Unsloth تطبيق سطح المكتب التجريبي، Unsloth Studio. Unsloth تجعل ضبط النماذج الذكية وتشغيلها أسرع وأسهل وأكثر اقتصادية، بما في ذلك محلياً على عتادك الخاص. يُركّز التطبيق الميزات في مكان واحد مع Unsloth Studio بحيث يمكن للمستخدمين الآن استخدام لوحة تحكم أو تثبيت يدوي.
تعتمد مشاريع المصادر المفتوحة على مصادر شيفرة أو منصات أخرى، وفي حالة Unsloth بوصفها من أوائل المتبنين للنمذجة المحلية، جمع منتجها حرية منصة Hugging Face مع قدرات الضبط الدقيق في حزم Unsloth المتنوعة.
بعد إطلاق Unsloth Studio لمنتجها، كانت تُحدّثه بوتيرة سريعة كمشروع مصادر مفتوحة مع التكيف مع بيئات الأمان سريعة التغير في الذكاء الاصطناعي. على سبيل المثال إصدار Compromised من LiteLLM الإصدارين 1.82.7 و1.82.8 ظهر على PyPI نتيجة ماسح Trivy مخترق، وسُحب دون تثبيت الإصدارات إلى خط أنابيب CircleCI الخاص بـ LiteLLM وكشف بيانات اعتماد النشر الخاصة به. عزلت PyPI كلا الإصدارين سريعاً خلال ساعة، لكن أدوات الأمان أصبحت جزءاً من مسار الهجوم وكانت قيد الاستخدام في اتجاه المصبّ. دفعت Unsloth سريعاً بتحديثات للمنتج للتكيف.
بعد شهر، حدث أمر آخر عرّف أمان سطح المكتب لدى Unsloth: سارق معلومات مختبئ داخل مستودع على Hugging Face. كانت Hugging Face، بوصفها منصة رائدة لتنزيل النماذج ومشاركتها، تستضيف دون علمها مستودعاً يحتوي سارق معلومات. انتحل المستودع إصدار Privacy Filter من OpenAI ونسخ بطاقة نموذجه شبه حرفياً. كان loader.py الخاص به يجلب ويشغّل سارق المعلومات على Windows. ثم وصل المستودع إلى المرتبة #1 في قائمة الترند وأظهر نحو 244,000 تنزيل، وهي أرقام تقول HiddenLayer إنها كانت منتفخة على الأرجح.
ساعدت هاتان الحادثتان في تشكيل خط الأساس لخارطة طريق Unsloth في مجال السلامة: التحرك بسرعة.
كيف شكّلت Unsloth أمان المنتج
منذ البداية، كان تطبيق سطح المكتب هذا في طليعة المصادر المفتوحة ويتكيف بسرعة مع البيئات المتغيرة. أنشأت Unsloth بروتوكولات لضمان أقصى سلامة لمستخدميها النهائيين. بعد إصدارات واسعة، ومع أسبوع الذكاء الاصطناعي مفتوح المصدر القادم، نشرت Unsloth نظرة أمنية لـ Unsloth Studio وUnsloth Desktop تسلط الضوء على مستوى عام على كيفية عمل أمانها.
بينما يعظّم تطبيق سطح المكتب السلامة في بيئات الضبط الدقيق، لا يزال لدى المستخدمين مجموعة كاملة من خيارات النماذج. يعمل أمان Unsloth بحيث عند انتقال سير العمل من التنزيل إلى التنفيذ يُفعّل عملية من أربع نقاط تحقق: اعتماد شيفرة مرتبط بالبصمة، وبوابة منفصلة لملفات الأوزان، وبيئات حماية لنظام التشغيل قابلة للفحص، وفحص إلزامي لمحتوى الحزم. أُنشئت هذه البروتوكولات للحماية من خلال تعزيز الضوابط القائمة لا استبدالها، فيمكن للمستخدمين الإبقاء على الفحوصات الاستشارية والإصدارات المثبتة وحدود الشبكة وبيانات الاعتماد المحدودة النطاق مع الاستفادة من الفحوصات. إذا فُككت، فإن كل مهمة تخدم غرضاً مختلفاً في طبقات الأمان.

1. الاعتماد يتبع الشيفرة، لا الاسم
تخيّل أنك اعتمدت شيفرة Python المخصصة لنموذج، ثم عدت بعد أن تغيّر المستودع. هل يجب أن يبقى الاعتماد القديم سارياً؟ تقول Unsloth Studio لا. يبيّن المستودع أنها تضع بصمة للشيفرة المفحوصة وإعادة فحص تلك البصمة، إضافة إلى إصدار الماسح، عند كل تحميل. يمكن لاعتماد محفوظ إسكات نافذة حوار متكررة، ويستمر مع فحص جديد. الشيفرة المتغيرة تتطلب موافقة جديدة. لتحميلات المهايئ مع النموذج الأساسي، يقيّم Studio كلا المستودعين، بما في ذلك الرمزي ومعالج الإدخال والتكوين المتداخل. وبشكل أساسي، إذا تغيّر شيء ما، فستعرف Unsloth Studio بذلك.
أي تغيير أو تحديث يغيّر البصمة السابقة. تتطلب النتائج ذات الخطورة العالية والمتوسطة اعتماداً يطابق البصمة الحالية. إذا كان لا بد من فحص شيفرة بعيدة لكن تعذّر جلبها، يُحظر التحميل. لا تحصل الجهة الناشرة الموثوقة على إعفاء شامل؛ إذ لا يزال يمكن إيقاف مستودع من الطرف الأول. يبحث الماسح عن سلوكيات محددة: فتح قشرة عكسية، أو الوصول إلى نقاط نهاية البيانات الوصفية للسحابة، أو سرقة بيانات الاعتماد. يستدعي Studio هذه البوابة من عاملات الاستدلال والتدريب والتصدير لديه. الفحص ليس بيئة حماية. بمجرد الاعتماد، تعمل شيفرة النموذج البعيدة دون قيود بوصفها مستخدم Studio. تشير المصادر إلى أن الأنماط الثابتة يمكن تجاوزها.
البوابة تُطلق التنبيهات مسبقًا على النماذج الشهيرة. يطلب deepseek-ai/deepseek-ocr الموافقة ويعرض نتيجة exec/eval. كما يطلب moonshotai/Kimi-VL-A3B-Instruct الموافقة، وقد وُسم بسبب التخفّي المتقدم. تعرض نافذة الموافقة النتائج قبل أن تقرر. ولا يزال الكود المخصص يحتاج إذنك حتى عندما لا يجد الماسح شيئًا مقلقًا. أزال Unsloth استدعاءات eval والأقسام الإشكالية الأخرى في مستودعي unsloth/DeepSeek-OCR وunsloth/DeepSeek-OCR-2 المعدّلَين. ويمكن للمستخدم اختيار نموذجه والقرار بالموافقة أو الرفض داخل التطبيق.
2. عندما يتحول تحذير ملف الأوزان إلى قرار تحميل
تُنشئ الأوزان المتسلسلة غير الآمنة، بما في ذلك ملفات pickle الخبيثة، مشكلة أخرى. يفحص Studio هذه الملفات بشكل منفصل عن موافقة الكود البعيد. فالكود Python المخصص ليس سوى طريق واحد للتنفيذ، وقد صُمّم Unsloth Studio ليتيح نقاط وصول متعددة.
منذ أن يفحص Hugging Face المستودعات بحثًا عن البرمجيات الخبيثة ويعرض تحذيرات على صفحة النموذج، يقرأ Studio تلك النتائج و يحظر الملفات الموسومة في المسار الذي كان المُحمِّل المحدد سيزيل تسلسلها. ويشمل ذلك الأجزاء المتداخلة المشار إليها بواسطة فهارس الأوزان. يقرأ نتيجة الفحص دون فك تسلسل (unpickling) الملف الموسوم. البوابة ليست فاشلة-عند-الإغلاق. وفقًا للمستودع، يمكن أن يستمر التحميل عندما تكون بيانات الفحص الوصفية غير متاحة أو معلّقة. مجلدات النماذج المحلية العادية غير مشمولة. الحد الأدنى PyTorch 2.6+ في Unsloth يعني أن أوزان .bin تُحمَّل مع weights_only=True وسلوكها قابل للاختبار. مستودع الاختبار mcpotato/42-eicar-street محظور من التحميل لأن التحذير يسرد الملفات غير الآمنة ويؤكد أنها لم تُنزَّل أبدًا. وبما أن أقل من 1% من نماذج Hugging Face بها مشكلات أمنية محتملة، فإن إنشاء Unsloth عمليات لتعزيزات أمنية إضافية يبرز مدى متانة منتج Unsloth Studio كشاهد على المصدر المفتوح.
3. نظرة داخل التبعية
بعد الدروس المستفادة من حادثة LiteLLM، من الواضح أن فحوصات الإرشادات الأمنية (advisory) لا تكفي، لأن الحزمة قد تحمل اسمًا مألوفًا وتُصدر نسخة خبيثة قبل وجود أي إرشاد أمني. إن ماسحات محتوى الحزم في Unsloth تفحص الأرشيف نفسه بحثًا عن الوصول إلى بيانات الاعتماد، والحمولات المشفّرة المخفية، وملفات بدء التشغيل القابلة للتنفيذ، وسلوك التنزيل-والتنفيذ وقت التثبيت. إن فحص Python يغطي التبعيات المصرَّح بها والتبعيات الانتقالية. وفاحص npm يفحص ملفات tarball المنزَّلة دون تشغيل نصوص دورة حياة تثبيتها. الحمولة المتغيرة تعيد فتح النتيجة بدلًا من وراثة إعفاء دائم، لذا فإن فحوصات الإرشادات الأمنية في Unsloth تُبلّغ فقط ولا تحظر؛ أما نتائج المحتوى فهي الطبقة المفروضة، لذا يضيف Unsloth قواعد صلة على رأس هذا. لا يُسمح إلا للحزم المدرجة في القائمة البيضاء بتشغيل النصوص، و ترفض عمليات تثبيت npm الحزم المنشورة قبل أقل من 7 أيام. ويفشل CI إذا حاولت حزمة غير مراجَعة تشغيل أحدها. تستخدم عمليات التثبيت ملفات القفل وnpm ci، ويقوم المثبِّت بترقية المستخدمين إلى npm 11 أو أحدث. قبل أي npm ci أو cargo fetch، يفحص lockfile_supply_chain_audit.py علامات حقن بأسلوب Shai-Hulud. تتحقق أدوات Linter من المحمّلات غير الآمنة والتنفيذ الديناميكي، مع خطوط أساس لتتبع النتائج. تحمل تحديثات Dependabot فترة تهدئة من 3 إلى 7 أيام. تعمل pip-audit وnpm audit مع فحوصات التوقيع وcargo audit وOSV-Scanner وSemgrep وTruffleHog إلى جانب فحوصات المحتوى. وتقول تعليقات سير عمل التدقيق نفسه إنه يتجنّب Trivy عمدًا، بسبب اختراق سابق في عام 2026.
4. على صندوق الحماية أن يثبت نفسه
أصبح التحقق من صندوق الحماية أمرًا واقعيًا للغاية في عصر الذكاء الاصطناعي والنمذجة، لذا فإن وجود ملف ثنائي (binary) مثبَّت لصندوق الحماية نقطة بداية وليس ضمانًا. يشغّل Unsloth Studio الأدوات داخل صناديق حماية على مستوى نظام التشغيل: bubblewrap على لينكس، وSeatbelt على ماك أو إس، وMXC على ويندوز. على لينكس، يتحقق من أن ملف bubblewrap الثنائي ومجلداته الأصلية مملوكان للنظام وليست قابلة للكتابة من قبل المجموعة أو الجميع. ثم، وفقًا للمستودع، يفحص الحدود. هل يمكن للكود داخل صندوق الحماية قراءة ملف مراقبة (sentinel) على المضيف؟ اتباع رابط رمزي لمساحة العمل إليه؟ الكتابة خارج مساحة العمل؟ كما يؤكد الفحص أن عمليات مساحة العمل والعمليات الفرعية المشروعة لا تزال تعمل.
لا يزال أمام المستخدمين خيارات، إذ يمكنهم اختيار وضع موافقة: ask أو auto أو full. في وضع auto، تُعلَّم عمليات استيراد الشبكة ونظام الملفات للحصول على الموافقة، وتحتاج مسارات الملفات إلى موافقة. وتُحظر أوامر shell الخطرة منعًا تامًا. وتعرض طلبات الأدوات أزرار Allow و Always allow و Deny. ترفض السياسة الصارمة تنفيذ الأدوات عندما تكون عزل نظام التشغيل غير متاح أو عند اكتمال فحص مساحة العمل المطلوب بشكل غير كامل. وقد ترجع السياسة المتساهلة إلى وسائل الحماية البرمجية، ويشير سجل التنفيذ إلى ذلك. ويُدرج كل سجل الواجهة الخلفية وحالة العزل والقيود ونتيجة التنظيف. وتُعرض عناصر HTML وMCP في إطارات معزولة بسياسة أمان محتوى (Content Security Policy) خاصة بها.
تسمح بيئة sandbox في Linux بالوصول إلى الشبكة، ولها وصول للكتابة في ذاكرة التخزين المؤقت للنماذج وتتشارك نواة النظام المضيف. اربطها بقيود على الشبكة وبيانات اعتماد محدودة النطاق بدقة، حيث تعمل هذه العملية كفحص بوابة نهائي.
الوصول البعيد وتطبيق سطح المكتب
يتيح وجود عدة مستخدمين على التطبيق أيضًا حسابات مُدارة: لا يرى كل مستخدم سوى مجلداته الخاصة، ولا يرى أبدًا رمز Hugging Face الخاص بالمالك. تحتاج الحسابات المُدارة إلى إذن المالك لاستخدام النماذج، ويُمنع عليها تشغيل كود المستودع. أعلنت Unsloth مؤخرًا عن التعاون مع Jev و المستخدمين الذين يديرون نموذج القرار الخاص بهم.
تستخدم سير عمل التدقيق الأمني من Unsloth أذونات مستودعات للقراءة فقط وبيانات اعتماد checkout غير محفوظة. وكل GitHub Action مثبت بتجزئة commit كاملة، وتحظر قوائم السماح للشبكة الصادرة أي تدفق غير متوقع. ويغطي CodeQL لغات Python و JavaScript/TypeScript و Rust و GitHub Actions. وتقول Unsloth إنها تشغّل Codex Security و مراجعات Codex متكررة أثناء التطوير لاكتشاف المشكلات الأمنية والأخطاء.
الوصول إلى المكتبة والتغييرات
خضعت المكتبة الأساسية لـ Unsloth أيضًا لتدوير مستهدف من خلال معالجة مخصصة لأنواع البيانات باستخدام جدول بحث ثابت بدلًا من تقييم التعبيرات. وتُنظَّف حقول الإعداد القابلة للتنفيذ الموروثة، وتحمي اختبارات الانحدار هذا الإصلاح. وترفض اختبارات الوسيطة في Studio الطلبات المقسمة (chunked) ذات الحجم الزائد، ملتقطةً حالات كان فحص Content-Length وحده سيفتقدها، بينما تحصل إصدارات سطح المكتب على فحوصات خاصة بها.
تُتحقق الملفات التنفيذية الجاهزة لـ llama.cpp مقابل بصمات SHA-256، وتُدقَّق تواقيع Windows بشكل منفصل. وكل إصدار من Unsloth Desktop يُفحص باستخدام VirusTotal. 1 مثال منشور أظهر 0 نتائج إيجابية لدى 70 بائعًا وقت الفحص. وتنبّه Unsloth إلى أن كل نتيجة تنطبق فقط على الملفات أو الـ commit الذي تم فحصه في ذلك الوقت.
ما الذي يتغير مقارنة بالنهج الأبسط
| الميزات | حل Unsloth |
|---|---|
| الثقة بمستودع نموذج بناءً على اسمه | ربط الموافقة ببصمة الكود، بما في ذلك أهداف المحوّل (adapter) والنموذج الأساسي مجتمعة |
| اعتبار موافقة الكود البعيد الفحص الوحيد لتحميل النموذج | إضافة بوابة منفصلة للملفات المتسلسلة المُعلَّمة في مسار التحميل المحدد |
| اكتشاف ملف ثنائي خاص ببيئة الاختبار المعزولة (sandbox) والافتراض بأن الجهاز معزول | فحص حالة العزل على الجهاز المضيف وتسجيل مستوى الحماية الفعلي |
| الاعتماد على إعلانات الثغرات الأمنية وحدها | فرض فحوصات محتوى الحزم مع خطوط أساس خاصة بكل نتيجة وعمر إصدار لا يتجاوز 7 أيام على npm |
| تشغيل الذكاء الاصطناعي المحلي كمستخدم موثوق ضمني واحد بحسب 1 | حسابات متعددة المستخدمين محمية بكلمة مرور وذات معدل طلب محدود مع مفاتيح مشفرة |

وبعيداً عن الأمان: تحسين تجربة وحدة المعالجة العصبية NPU
تدعو الملاحظات التي شاركها مؤسسا Unsloth إلى توفير مقاييس أداء أغنى لوحدات NPU، بما في ذلك الرموز في الثانية (tokens per second). كما يطلب التطبيق إمكانية ضبط إعدادات تحميل النموذج قبل التشغيل، كما هو مسموح بالفعل في نماذج GPU. وهذه تحسينات مطلوبة وليست إصدارات مؤكدة، بهدف تحسين الرؤية والتحكم عند تشغيل النماذج محلياً.
بعد مراجعة نظرة Unsloth العامة ومراجعة ثابتة لشيفرة المصدر للمستودع، ما غطّيناه هو الإصدار commit 285d157a. وتستند جهوزية الإصدار إلى المعلومات المقدّمة لهذه المقالة. أما أوضاع الموافقة، وبيئات العزل على macOS وWindows، وتشفير بيانات الاعتماد، وقواعد عمر إصدار npm، وفحوصات سطح المكتب، فمصدرها النظرة العامة. أما الموافقة المرتبطة ببصمة الجهاز، واكتشاف العزل، وسجلات التنفيذ، وعتبات تسجيل الدخول، فمصدرها المستودع. تنتمي عدة حمايات إلى Unsloth Studio وDesktop؛ بينما يقع فحص التبعيات وقيود التدقيق في سير عمل التطوير. ولا تحمي هذه التدابير تلقائياً دفتر ملاحظات يستورد المكتبة المستقلة.
أبرز النقاط
- يربط Unsloth Studio الموافقة على الشيفرة التي تُنفَّذ عن بُعد ببصمة للشيفرة المفحوصة؛ والشيفرة المتغيّرة تحتاج موافقة جديدة.
- أحكام البرمجيات الخبيثة من Hugging Face تحجب ملفات الأوزان المُشار إليها في مسار التحميل، بمعزل عن trust_remote_code.
- يمكن تشغيل الأدوات داخل بيئات عزل لنظام التشغيل (bubblewrap وSeatbelt وMXC)؛ وعلى Linux يُظهر المستودع أن Studio تفحص حالة العزل أولاً.
- تفحص محتوى الحزم تفشل عمليات CI عند اكتشاف ثغرات جديدة عالية الخطورة أو الحرجة؛ كما يرفض npm الحزم الأصغر من 7 أيام.
- استوديو Studio محمي بكلمة مرور ومتعدد المستخدمين افتراضيًا، مع عمليات تسجيل دخول مقيّدة ومفاتيح API مشفّرة.
المصادر
- https://unsloth.ai/blog/security
- https://github.com/unslothai/unsloth/tree/285d157a412fb30c11d223f85df84357d946a00a
- الرابط: https://www.hiddenlayer.com/insight/malware-found-in-trending-hugging-face-repository-open-oss-privacy-filter
- https://www.theregister.com/2026/03/24/trivy_compromise_litellm/
- https://docs.litellm.ai/blog/security-townhall-updates
- الرابط: https://jfrog.com/press-room/jfrog-report-warns-ai-governance-fails-as-software-supply-chain-attacks-hit-record-highs/
- https://huggingface.co/docs/hub/security-malware
ملاحظة:شكرًا لفريق Unsloth على القيادة الفكرية / الموارد الخاصة بهذه المقالة. هذه المقالة مدعومة من Unsloth.
ظهر المقال ماذا يحدث عندما يتغيّر مستودع نماذج موثوق؟ Unsloth Studio يعيد الفحص قبل التشغيل أول مرة على MarkTechPost.
