Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
IF-Guide — [NeurIPS '25] الكود الخاص بالورقة البحثية "IF-Guide: قمع بيانات التدريب الضارة الموجه بواسطة دالة التأثير للحد من سمية نماذج اللغة الكبيرة" | Kitploit
أدوات/GitHubGitHub/ztcoalson/if-guide
أدوات دفاعيةالتحليل الثابتتحليل الكودالأوراق والأبحاثالتعلم والتعليمأمن الذكاء الاصطناعي
GitHubztcoalson/if-guide

IF-Guide

[NeurIPS '25] الكود الخاص بالورقة البحثية "IF-Guide: قمع بيانات التدريب الضارة الموجه بواسطة دالة التأثير للحد من سمية نماذج اللغة الكبيرة"

عرض المستودع
13224منذ 11 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

IF-Guide: إزالة السمية من نماذج اللغة الكبيرة باستخدام دوال التأثير [NeurIPS 2025]

يحتوي هذا المستودع على الكود الخاص بـ IF-Guide، وهي تقنية إزالة السمية من نماذج اللغة الكبيرة (LLMs) المقدمة في ورقتنا البحثية:

  • IF-Guide: إزالة السمية من نماذج اللغة الكبيرة باستخدام دوال التأثير
  • Zachary Coalson, Juhan Bae, Nicholas Carlini, Sanghyun Hong

 


TL;DR

يمكنك استخدام طريقتنا لإزالة السمية من نماذج اللغة الكبيرة عن طريق تحديد أمثلة التدريب الضارة ثم قمعها أثناء التدريب المسبق أو الضبط الدقيق!

 

الملخص

ندرس كيف تساهم بيانات التدريب في ظهور السلوكيات السامة في نماذج اللغة الكبيرة. تتبنى معظم الأعمال السابقة التي تهدف إلى تقليل سمية النماذج نهجًا ردّيًا، مثل الضبط الدقيق للنماذج المدربة مسبقًا (والتي قد تكون سامة) لمواءمتها مع القيم البشرية. في المقابل، نقترح نهجًا استباقيًا يُعرف بـ IF-Guide، والذي يستفيد من دوال التأثير لتحديد التوكنات الضارة داخل أي بيانات تدريب وقمع تأثيرها أثناء التدريب. لتحقيق هذه الغاية، نُظهر أولاً أن دوال التأثير القياسية غير فعالة في اكتشاف سجلات التدريب الضارة. ثم نقدم تكيفًا جديدًا يقيس الإسنادات على مستوى التوكن من بيانات التدريب إلى سمية النموذج، إلى جانب تقنيات لاختيار مستندات التدريب السامة وهدف تعلم يمكن دمجه في كل من التدريب المسبق والضبط الدقيق. علاوة على ذلك، لا يعتمد IF-Guide على بيانات التفضيلات البشرية، والتي تتطلبها طرق المواءمة الحالية عادةً. في التقييم، نُظهر أن IF-Guide يقلل بشكل كبير من السمية الصريحة والضمنية - بنسبة تصل إلى 10 أضعاف مقارنة بالنماذج غير المقيدة، وما يصل إلى 3 أضعاف مقارنة بطرق المواءمة الأساسية، مثل DPO و RAD - في كل من سيناريوهات التدريب المسبق والضبط الدقيق. IF-Guide فعال من الناحية الحسابية: فليس من الضروري استخدام نموذج بمليار معلمة لحساب درجات التأثير؛ بل يمكن لنموذج بمليون معلمة - مع عدد معلمات أقل بمقدار 7.5 أضعاف - أن يعمل بفعالية كوسيط لتحديد البيانات الضارة.

 


التثبيت

أنشئ بيئة conda (يمكنك استخدام أي بيئة تحتوي على python>=3.10) وقم بتثبيت الحزم اللازمة:

conda create -n IF-Guide python=3.10
conda activate IF-Guide
pip install -r requirements.txt

ملاحظة: نستخدم الحزمة Kronfluence لحساب درجات التأثير باستخدام EK-FAC. لقد أنشأنا تنفيذًا مخصصًا يدعم تقنية التأثير التفاضلي المقدمة في ورقتنا (الصفحة 4، المعادلة 6). يعود الفضل في جميع المكونات الأخرى للحزمة إلى منشئيها الأصليين. شكرًا لكم!

بعد ذلك، انتقل إلى دليل العمل:

cd src

 


تدريب/ضبط النماذج

لتدريب نموذج، قم بتشغيل:

./scripts/train.sh

يستدعي هذا train.py، والذي يقبل الوسائط الرئيسية التالية:

الوسيطالوصف
--model_nameاسم النموذج المراد تدريبه. يجب تسجيله في utils/registry.yaml مع محول التوكنات المقابل (انظر النماذج الموجودة للحصول على أمثلة)
--save_idوسم وصفي يُستخدم لتسمية دليل الإخراج.
--toxic_token_mask_pathمسار إلى قناع التوكنات (يتم توليده بواسطة IF-Guide). استخدم None للتدريب القياسي.
--toxic_lambdaقوة مصطلح الجزاء المستخدم في هدف التدريب الخاص بنا.

ملاحظة: يمكن ترك جميع الوسائط الأخرى بقيمها الافتراضية لإعادة إنتاج إعدادنا التجريبي. ينطبق هذا على الأقسام التالية.

لضبط نموذج موجود بدقة، قم بتشغيل:

./scripts/finetune.sh

يُشغّل هذا finetune.py، والذي يستخدم الوسائط الإضافية التالية:

الوسيطالوصف
--checkpoint_dirمسار إلى نموذج محفوظ. إذا كنت تستخدم نموذجًا مدربًا مسبقًا، فاضبطه على None.
--max_stepsالحد الأقصى لخطوات الضبط الدقيق.

 


تشغيل IF-Guide

يتكون IF-Guide من أربع خطوات: (1) حساب تقريب معكوس الهيسيان باستخدام EK-FAC، (2) حساب درجات التأثير التفاضلي على مستوى التوكن عبر بيانات الاستعلام السامة وغير السامة (الصفحة 4، المعادلة 8)، (3) اختيار التوكنات السامة المؤثرة لقمعها أثناء التدريب (الصفحة 23، الخوارزمية 1)، و(4) قمع التوكنات السامة باستخدام هدف التدريب القائم على الجزاء (الصفحة 5، المعادلة 9).

 

1. ملاءمة عوامل تقريب معكوس الهيسيان

قم بتشغيل:

./scripts/fit_factors.sh

يستدعي هذا fit_factors.py ويأخذ الوسائط الأساسية التالية:

الوسيطالوصف
--model_nameاسم النموذج الذي سيتم ملاءمة العوامل عليه.
--checkpoint_dirمسار إلى النموذج المحفوظ. إذا كنت تستخدم نموذجًا مدربًا مسبقًا، فاضبطه على None.
--train_indices_pathمسار إلى مؤشرات التدريب المستخدمة لتدريب النموذج (ليس ضروريًا إذا كنت تستخدم مجموعة البيانات الكاملة). يجب أن تطابق المؤشرات تمامًا وبنفس الترتيب. نوفر مؤشرات مجموعتنا الفرعية من OpenWebText ذات المليار توكن، وقد جعلنا مسارها هو الافتراضي.
--output_dirمسار لحفظ بيانات تقريب الهيسيان.

 

2. حساب الدرجات على مستوى التوكن

قم بتشغيل:

./scripts/compute_scores.sh

يُشغّل هذا compute_scores.py بالوسائط الرئيسية التالية (بالإضافة إلى معظم الوسائط المستخدمة لحساب العوامل):

الوسيطالوصف
--model_nameاسم النموذج الذي سيتم حساب الدرجات له.
--checkpoint_dirمسار إلى النموذج المحفوظ. إذا كنت تستخدم نموذجًا مدربًا مسبقًا، فاضبطه على None.
--save_idوسم يُلحق بنهاية دليل الحفظ للتسمية المخصصة.
--save_dirالدليل لحفظ الدرجات فيه (داخل دليل العوامل الأصلي).
--factors_pathمسار إلى الدليل الذي يحتوي على عوامل الهيسيان (العكسية) المملوءة في الخطوة السابقة.
--query_datasetمجموعة بيانات الاستعلام لبناء تدرج الاستعلام. حاليًا، الخيار الوحيد هو RTP.
--toxic_query_indices_pathمسار إلى المؤشرات من مجموعة بيانات الاستعلام المتعلقة بالأمثلة السامة. نوفر مجموعتنا الفرعية السامة من RTP في ../data/RTP/query_indices/toxic_indices.npy.
--nontoxic_query_indices_pathمسار إلى المؤشرات الخاصة بالاستعلامات غير السامة. نوفر مجموعتنا الفرعية غير السامة من RTP في ../data/RTP/query_indices/nontoxic_indices.npy.

 

3. اختيار التوكنات السامة المؤثرة

قم بتشغيل:

./scripts/build_toxic_token_mask.sh

يُشغّل هذا build_toxic_token_mask.py. ويأخذ الوسائط الأساسية التالية:

الوسيطالوصف
--model_nameاسم النموذج الذي سيتم بناء القناع له.
--scores_pathمسار إلى الدرجات المحسوبة في الخطوة السابقة.
--windowطول نافذة السياق.
--toxicity_thresholdالعتبة لتحديد التوكنات السامة (كنسبة مئوية، على سبيل المثال 0.99).
--max_tokensالحد الأقصى لعدد التوكنات السامة التي سيتم اختيارها.
--query_datasetمجموعة بيانات الاستعلام لبناء تدرج الاستعلام. حاليًا، الخيار الوحيد هو RTP.
--inspection_idxنقوم تلقائيًا بطباعة التوكنات المكبوتة لمثال تدريب واحد باللون الأحمر. تحدد هذه الوسيطة المثال الذي سيتم طباعته بناءً على ترتيبه (على سبيل المثال، 0 هو مثال التدريب الأعلى ترتيبًا).

 

4. قمع التوكنات السامة أثناء التدريب/الضبط الدقيق

بعد حساب قناع التوكنات السامة لنموذج معين، يمكنك تحديد الوسيطتين --toxic_token_mask_path و --toxic_lambda في ./scripts/train.sh (و ./scripts/finetune.sh) لتدريب/ضبط النماذج بدقة باستخدام IF-Guide.

 


التقييم

نوفر كودًا لتقييم السمية الصريحة (عبر Detoxify)، والسمية الضمنية (عبر ToxiGen-RoBERTa)، والطلاقة (تُقاس على LAMBADA و OpenWebText).

 

تقييم السمية الصريحة

قم بتشغيل:

./scripts/run_toxicity_eval.sh
تنزيل الأداة