المقارنة المعيارية الخاصة لنماذج التعلم الآلي
حالة المشروع
تحذير : هذا نموذج أولي أكاديمي لإثبات المفهوم ولم يتلق مراجعة دقيقة للكود. هذا التطبيق غير جاهز للاستخدام في الإنتاج.
نقاط
وصف المشروع
يهدف هذا المشروع إلى إنشاء منصة تمكن المستخدمين من إجراء قياس خاص لنماذج التعلم الآلي. تسهل المنصة تقييم النماذج بناءً على مستويات الثقة المختلفة بين مالكي النماذج وأصحاب مجموعات البيانات.
يوفر هذا المستودع الكود المصاحب للورق https://arxiv.org/abs/2403.00393
الهدنة: المقارنة المرجعية الخاصة لمنع التلوث وتحسين التقييم المقارن للماجستير في القانون
تانماي راجور، نيشانث شاندران، سونايانا سيتارام، ديفيا غوبتا، راهول شارما، كاشيش ميتال، مانوهار سواميناثان
تثبيت
للبناء الكامل ودعم EzPC LLM
- قم بتعديل ملف setup.sh وفقًا لتكوين النظام الخاص بك لبرامج تشغيل Nvidia وإصدار CUDA (الافتراضي هو 11.8 وبنية GPU هي 90 Hopper)
(In setup.sh)
line 42: export CUDA_VERSION=11.8
line 43: export GPU_ARCH=90
- قم بتشغيل ملف setup.sh
./setup.sh
Enter the Server IP address:
- سيقوم ملف setup.sh بتثبيت التبعيات المطلوبة وإعداد البيئة لتشغيل النظام الأساسي. يحتوي ملف .env على مفتاح Django السري الذي يمكن تغييره وفقًا لمتطلبات المستخدم. بالنسبة لأي وحدة تخزين ذات صلة بالمفتاح، يجب على المستخدم استخدام ملف .env فقط.
المنصة فقط
- ملاحظة: تحتاج إلى تعيين متغير البيئة ENCRYPTION_KEY لخادم TTP/TEE لتشغيل مفتاح (32 بايت/256 بت) وملف .env يدويًا حتى يتم تشغيل النظام الأساسي وعنوان IP الخاص بالنظام الأساسي ليتم تشغيله عليه.
pip install -r requirements.txt
cd eval_website/eval_website
python manage.py makemigrations
python manage.py migrate
python manage.py runserver 0.0.0.0:8000
الاستخدام
لاستخدام المشروع بعد زيارة التثبيت.
http://127.0.0.1:8000 (على المضيف المحلي) أو http://:8000 (على IP العام)
نموذج بيانات اعتماد المستخدم
- مالك النموذج
- اسم المستخدم: ModelOwner
- كلمة المرور: مرحبا صديق
- مالك مجموعة البيانات
- اسم المستخدم: DatasetOwner
- كلمة المرور: مرحبا صديق
يتم تعيين منافذ معينة مسبقًا على النحو التالي:
- 8000: للموقع الرئيسي
- 8001: للاتصال الآمن لـ EzPC LLM مع خادم جهة خارجية موثوق به
- 7000: لبيئة التنفيذ الموثوقة للتواصل مع الموقع
- 7001: لخادم الطرف الثالث الموثوق به لتلقي ملفات النموذج
- 7002: لخادم الطرف الثالث الموثوق به لتلقي ملفات مجموعة البيانات
- 9000: لتواصل مالك مجموعة البيانات مع الموقع الإلكتروني لاستلام الملفات الرئيسية الخاصة بـ EzPC
- 9001: لتواصل مالك النموذج مع الموقع الإلكتروني لاستلام الملفات الرئيسية الخاصة بـ EzPC
خادم الطرف الثالث الموثوق به (TTP).
- خادم TTP هو خادم منفصل يُستخدم لإجراء الحساب الآمن للنموذج. يلزم تشغيل خادم TTP لإجراء الحساب الآمن. يمكن بدء تشغيل خادم TTP عن طريق تشغيل الأمر التالي.
cd utils/TTP_TEE_files
python ttp_server.py
- الافتراضات :
- يتم تعيين التفاصيل المتعلقة بخادم TTP في قاعدة بيانات الواجهة الخلفية للنظام الأساسي.
- يتطلب خادم TTP تلقي ملفات النماذج ومجموعة البيانات للتقييم من الأطراف المعنية على المنفذ 7001 و7002 على التوالي.
- سيقوم خادم TTP بإجراء الحساب الآمن وإرجاع النتائج إلى النظام الأساسي.
- يتطلب خادم TTP أيضًا وجود ملفات server.crt وserver.key في نفس الدليل مثل ملف ttp_server.py. تُستخدم هذه الملفات للاتصال الآمن بين خادم TTP والنظام الأساسي باستخدام المرجع المصدق (CA) الذي تم إنشاؤه بواسطة النظام الأساسي بعد التشغيل لأول مرة ويجب إنشاؤها باستخدام الأمر التالي.
openssl req -newkey rsa:2048 -nodes -keyout " ./server.key " -out server.csr -subj /CN=127.0.0.1
openssl x509 -req -in server.csr -CA path/ca.crt(generated by eval_website root) -CAkey /path/ca.key(generated by eval_website root) -CAcreateserial -out ./server.crt -days xxx
- يلزم تعيين ENCRYPTION_KEY لمتغير البيئة حتى يتمكن خادم TTP/TEE من تشغيل المفتاح (32 بايت/256 بت).
export ENCRYPTION_KEY="32 bytes key"
#generate a 32 bytes key using the following command
python -c 'import os, binascii; print(binascii.hexlify(os.urandom(32)).decode("utf-8"))'
بيئة التنفيذ الموثوقة (TEE)
- بيئة التنفيذ الموثوقة هي خادم منفصل يُستخدم لإجراء الحساب الآمن للنموذج (استنادًا إلى برامج TTP النصية). يلزم تشغيل بيئة التنفيذ الموثوقة حتى يتم تنفيذ الحساب الآمن. يمكن العثور على تعليمات تفصيلية لإعداد بيئة التنفيذ الموثوقة في TTP/TEE.
إز بي سي إل إل إم
تقييم القطع الأثرية
يمكن العثور على تقييم القطع الأثرية للورقة لإنشاء الجدول في تقييم القطع الأثرية.
المساهمة
إذا كنت ترغب في المساهمة في هذا المشروع، يرجى اتباع الإرشادات الموضحة في ملف المساهمة.md.
رخصة
هذا المشروع مرخص بموجب ترخيص [MIT]. يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.