Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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: قمع بيانات التدريب الضارة الموجه بواسطة دالة التأثير للحد من سمية نماذج اللغة الكبيرة"

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

الأكثر شعبية

عرض الكل →

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

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

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

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

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) وقم بتثبيت الحزم اللازمة:

root@kitploit:~
conda create -n IF-Guide python=3.10
conda activate IF-Guide
pip install -r requirements.txt

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

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

root@kitploit:~
cd src

 


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

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

root@kitploit:~
./scripts/train.sh

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

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

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

root@kitploit:~
./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. ملاءمة عوامل تقريب معكوس الهيسيان

قم بتشغيل:

root@kitploit:~
./scripts/fit_factors.sh

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

 

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

قم بتشغيل:

root@kitploit:~
./scripts/compute_scores.sh

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

 

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

قم بتشغيل:

root@kitploit:~
./scripts/build_toxic_token_mask.sh

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

 

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

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

 


التقييم

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

 

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

قم بتشغيل:

root@kitploit:~
./scripts/run_toxicity_eval.sh

يُشغّل هذا run_toxicity_eval.py، الذي يحتوي على الوسائط الرئيسية التالية:

 

تقييم السمية الضمنية

قم بتشغيل:

root@kitploit:~
./scripts/run_implicit_toxicity_eval.sh

يتطلب الوسائط التالية:

الوسيطالوصف
--outputs_file_pathمسار إلى ملف مخرجات من عملية تقييم السمية الصريحة. نعيد تقييم المخرجات الموجودة لتوفير الوقت. يجب أن يكون ملف output.json تم إنشاؤه أثناء التقييم الصريح.
--datasetمجموعة البيانات التي جاءت منها المخرجات. تحدد كيفية تنسيق المخرجات النهائية.

 

تقييم الطلاقة

قم بتشغيل:

root@kitploit:~
./scripts/run_fluency_eval.sh

يحتوي على الوسائط الأساسية التالية:

 

الاختبار باستخدام RAD

نجد أن طريقتنا قابلة للدمج مع دفاع وقت فك التشفير Reward Augmented Decoding (RAD) [EMNLP 2023]. لتشغيل IF-Guide مع RAD (أو اختبار RAD بشكل مستقل)، قم أولاً بتنزيل نموذج المكافأة (المقدم من مؤلفي العمل الأصلي) وضعه في الدليل المتوقع:

root@kitploit:~
cd utils/rad/reward_modeling
gdown https://storage.googleapis.com/rad_release/saved_models.zip
unzip saved_models.zip && rm saved_models.zip && rm -rf saved_models/gpt2_sentiment

يعود الفضل في تنفيذ RAD الذي نستخدمه بالكامل إلى مؤلفي العمل الأصلي. شكرًا لكم!

 


الاستشهاد بعملنا

يرجى الاستشهاد بعملنا إذا وجدت هذا الكود المصدري مفيدًا.

root@kitploit:~
@inproceedings{coalson2025ifguide,
  title={{IF}-Guide: Influence Function-Guided Detoxification of {LLM}s},
  author={Coalson, Zachary and Bae, Juhan and Carlini, Nicholas and Hong, Sanghyun},
  booktitle={The Thirty-ninth Annual Conference on Neural Information Processing Systems},
  year={2025},
  url={https://openreview.net/forum?id=V82wLePv0o}
}

 


 

يرجى التواصل مع Zachary Coalson ([email protected]) لأي أسئلة أو توصيات.

تنزيل الأداة
الوسيطالوصف
--model_nameاسم النموذج المراد تدريبه. يجب تسجيله في utils/registry.yaml مع محول التوكنات المقابل (انظر النماذج الموجودة للحصول على أمثلة)
--save_idوسم وصفي يُستخدم لتسمية دليل الإخراج.
--toxic_token_mask_pathمسار إلى قناع التوكنات (يتم توليده بواسطة IF-Guide). استخدم None للتدريب القياسي.
--toxic_lambdaقوة مصطلح الجزاء المستخدم في هدف التدريب الخاص بنا.
الوسيطالوصف
--model_nameاسم النموذج الذي سيتم ملاءمة العوامل عليه.
--checkpoint_dirمسار إلى النموذج المحفوظ. إذا كنت تستخدم نموذجًا مدربًا مسبقًا، فاضبطه على None.
--train_indices_pathمسار إلى مؤشرات التدريب المستخدمة لتدريب النموذج (ليس ضروريًا إذا كنت تستخدم مجموعة البيانات الكاملة). يجب أن تطابق المؤشرات تمامًا وبنفس الترتيب. نوفر مؤشرات مجموعتنا الفرعية من OpenWebText ذات المليار توكن، وقد جعلنا مسارها هو الافتراضي.
--output_dirمسار لحفظ بيانات تقريب الهيسيان.
الوسيطالوصف
--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.
الوسيطالوصف
--model_nameاسم النموذج الذي سيتم بناء القناع له.
--scores_pathمسار إلى الدرجات المحسوبة في الخطوة السابقة.
--windowطول نافذة السياق.
--toxicity_thresholdالعتبة لتحديد التوكنات السامة (كنسبة مئوية، على سبيل المثال 0.99).
--max_tokensالحد الأقصى لعدد التوكنات السامة التي سيتم اختيارها.
--query_datasetمجموعة بيانات الاستعلام لبناء تدرج الاستعلام. حاليًا، الخيار الوحيد هو RTP.
--inspection_idxنقوم تلقائيًا بطباعة التوكنات المكبوتة لمثال تدريب واحد باللون الأحمر. تحدد هذه الوسيطة المثال الذي سيتم طباعته بناءً على ترتيبه (على سبيل المثال، 0 هو مثال التدريب الأعلى ترتيبًا).
الوسيطالوصف
--model_nameاسم النموذج المراد تقييمه.
--checkpoint_dirمسار إلى النموذج المحفوظ. إذا كنت تستخدم نموذجًا مدربًا مسبقًا، فاضبطه على None.
--datasetمجموعة البيانات المراد التقييم عليها. إما RTP أو AttaQ أو BOLD.
--save_dirالدليل لحفظ النتائج فيه.
--decoding_defenseدفاع وقت فك التشفير الذي سيتم تطبيقه. none أو rad. لا ينطبق على تقييمنا على OpenWebText.
--save_outputsما إذا كان سيتم حفظ مخرجات النموذج أم لا.
الوسيطالوصف
--model_nameاسم النموذج المراد تقييمه.
--checkpoint_dirمسار إلى النموذج المحفوظ. إذا كنت تستخدم نموذجًا مدربًا مسبقًا، فاضبطه على None.
--datasetمجموعة البيانات المراد التقييم عليها. إما RTP أو AttaQ أو BOLD.
--save_dirالدليل لحفظ النتائج فيه.
--decoding_defenseدفاع وقت فك التشفير الذي سيتم تطبيقه. none أو rad. لا ينطبق على تقييمنا على OpenWebText.