تجريد ملفات الأمان النموذجية لـ Apple Intelligence: فك تشفير القواعد المرتبطة بتصفية المحتوى الضار
مشروع GitHub "apple_generative_model_safety_decrypted" يوفر ملفات ترشيح الأمان المفككة لـ Apple Intelligence، والتي تحتوي على عوامل التصفية المستخدمة في النماذج الذكائية. يتم استخدام هذه الملفات لتوجيه النماذج حول كيفية التعامل مع محتوى معين، مثل حجب المحتوى الضار أو ضمان الالتزام بمعايير الأمان. الهيكل الاستخدام المركب الوحيد المطلوب لتشغيل سكريبت الفك هو مكتبة Python cryptography. يمكن تركيبها باستخدام الأمر التالي: bash pip install cryptography الحصول على مفتاح التشفير للحصول على مفتاح التشفير الذي تم إنشاؤه بواسطة ModelCatalog.Obfuscation.readObfuscatedContents، يجب ربط برنامج LLDB بـ GenerativeExperiencesSafetyInferenceProvider. هذا البرنامج موجود في المسار /System/Library/ExtensionKit/Extensions/GenerativeExperiencesSafetyInferenceProvider.appex/Contents/MacOS/GenerativeExperiencesSafetyInferenceProvider. من المهم أن يكون هذا LLDB هو نفس الإصدار الموجود في Xcode وليس الإصدار الافتراضي في macOS أو LLVM. الطريقة الموصى بها للربط هي استخدام Xcode نفسه أو تشغيل LLDB من خلال سطر الأوامر مع تحديد الإصدار الخاص بـ Xcode. يمكن استخدام الخطوات التالية: فتح Xcode. اختيار "Product" > "Attach to Process" من القائمة العلوية. البحث عن GenerativeExperiencesSafetyInferenceProvider وربطه. فك تشفير التغييرات لفك تشفير التغييرات، قم بتشغيل الأمر التالي في جذر仓库: bash python decrypt_overrides.py إذا لم تكن المجلد decrypted_overrides موجودًا، سيتم إنشاؤه تلقائيًا وسيتم وضع التغييرات المفككة فيه. من المهم ملاحظة أن هذا الإجراء مطلوب فقط إذا تم تحديث التغييرات. هناك نسخة مفككة بالفعل من التغييرات متوفرة في المستودع حتى تاريخ 28 يونيو 2025. فهم التغييرات التغييرات هي ملفات JSON تحتوي على مرشحات الأمان للنماذج الذكائية المختلفة. لكل تغيير سياق نموذج محدد وقواعد تحدد كيفية تصرف النموذج في مواقف معينة، مثل حجب المحتوى الضار أو ضمان الامتثال للمعايير الأمنية. على سبيل المثال، إليك مقتطف من ملف metadata.json الموجود في dec_out_repo/decrypted_overrides/com.apple.gm.safety_deny.output.code_intelligence.base. لاحظ الجزء output في المواصفات، مما يشير إلى أنه تغيير أمان لـخرج النموذج وليس لإدخال المستخدم: json { "reject": [ "xylophone copious opportunity defined elephant 10out", "xylophone copious opportunity defined elephant out" ], "remove": [], "replace": {}, "regexReject": [ "(?i)\\bbitch\\b", "(?i)\\bdago\\b", "(?i)\\bdyke\\b", "(?i)\\bhebe\\b", ... ], "regexRemove": [], "regexReplace": {} } في هذا المثال: - الحقل reject يحتوي على عبارات دقيقة ستؤدي إلى خرق للحدود الأمنية. - الحقل remove يحتوي على عبارات سيتم إزالتها من الخرج. - الحقل replace يحتوي على عبارات سيتم استبدالها بعبارات أخرى. - الحقول regexReject، regexRemove، و regexReplace تحتوي على تعبيرات نمطية تستخدم لتطابق وتصفية المحتوى بنفس الطريقة. هذه المرشحات تلعب دورًا مهمًا في ضمان أن النماذج الذكائية تنتج محتوى آمن ومتوافق مع المعايير الأخلاقية والقانونية.