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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
PersistBD — أكواد بحثية لتدريب المحوّلات (adapters) التي تجعل أبواب LLM agent الخلفية تصمد أمام الضبط الدقيق غير الضار، مع تقييم معدل التفعيل، وتقييم SWE-bench، وبانيات مجموعات البيانات. | Kitploit
أدوات/GitHubGitHub/uiuc-kang-lab/persistbd
تحليل البرمجيات الخبيثةتعلم الآلةالأوراق والأبحاثالتعلم والتعليمأمن الذكاء الاصطناعيالهجوم العدائي
GitHubuiuc-kang-lab/persistbd

PersistBD

أكواد بحثية لتدريب المحوّلات (adapters) التي تجعل أبواب LLM agent الخلفية تصمد أمام الضبط الدقيق غير الضار، مع تقييم معدل التفعيل، وتقييم SWE-bench، وبانيات مجموعات البيانات.

عرض المستودع
14منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

PersistBD

كود "Understanding and Enhancing Backdoor Persistency in LLM Agent Post-Training" (Findings of EMNLP 2026).

📄 الورقة البحثية · 🌐 صفحة المشروع · 📦 مجموعة البيانات (مقيّدة الوصول)

عادةً ما يَستهلك الضبط الدقيق الحميد الذي يُجريه المطوّر في المراحل اللاحقة باباً خلفياً مزروعاً في نموذج قبل إصداره. يقوم PersistBD بتحسين نموذج يحتوي بالفعل على باب خلفي باستخدام محوّل صغير (adapter) بحيث ينجو الباب الخلفي من ذلك التدريب. على Qwen2.5-Coder-7B، ينخفض معدل تفعيل الباب الخلفي الأساسي (ASR) من 100% إلى 20% خلال 3,000 خطوة من الضبط الدقيق الحميد (SFT)؛ بينما يبقى الباب الخلفي نفسه بعد تحسينه بـ PersistBD عند 74% (76% بعد مرحلة التعلّم المعزّز اللاحقة)، مع معدل حلّ حميد يطابق معدل الباب الخلفي الأساسي على SWE-bench Lite (7.7% مقابل 6.7% بعد SFT؛ 9.0% مقابل 9.0% بعد RL).

تحكم خاصيتان ما إذا كان الباب الخلفي سينجو من الضبط الدقيق الحميد: قوة ارتباط المُحفّز→الهدف الأولية، وتوافق التدرّج مع التحديثات الحميدة القادمة. يزيد المحوّل المشترك في PersistBD من كليهما؛ ويُظهر استئصال (ablation) الورقة أن كل حدّ ضروري.

ما هو موجود / غير موجود في هذا المستودع

اقرأ docs/RELEASE.md لمزيد من التفاصيل.

كود الطريقة (تدريب المحوّل + الدمج)src/persistbd/
مقاييس معدل التفعيل، تقييم معدل الحلّ، مجسّات الكشفeval/، src/persistbd/eval_gradient_loss.py
بواني مجموعات البيانات + مساعدات بناء الباب الخلفيdata_processing/
خادم تقييم SWE-bench (patch → reward)swe_eval_server/
أوزان النموذج ذي الباب الخلفيغير مُصدَّرة
مجموعة بيانات الباب الخلفي المبنية (المُحفّز + الأزواج الخبيثة)مقيّدة: uiuc-kang-lab/PersistBD

البنية

src/persistbd/     محوّلات PersistBD get_delta_{s,c,j}.py، get_combined_model.py (الدمج)،
                   و eval_gradient_loss.py (القوة S / التوافق C)
eval/              مقاييس معدل التفعيل، eval_swe.py (SWE-bench RR)، score_backdoor_logprobs.py
data_processing/   بواني التقسيم + الباب الخلفي (make_*_v4.py، verify_splits_v4.py)، مساعدات
                   المُحفّز والأزواج الخبيثة، و patch_ckpt_config.py
data/              مجموعة البيانات نفسها (مُتجاهَلة من git عدا manifest.json)
configs/           إعدادات torchtune لمرحلة الضبط الدقيق الحميد لدى المطوّر
swe_eval_server/   خادم تقييم SWE-bench بـ FastAPI المستخدم لمكافآت RR و RL
examples/slurm/    المهام كما شغّلناها، كقوالب مرجعية

التثبيت

pip install torch transformers peft accelerate datasets pyarrow tqdm wandb vllm
# SWE-bench RR + evaluation server:
pip install -r swe_eval_server/requirements.txt

البيانات

data/ مُتجاهَلة من git عدا manifest.json. نزّل مجموعة البيانات من huggingface.co/datasets/uiuc-kang-lab/PersistBD (مقيّدة — اطلب الوصول)، أو أعد بناءها (التقسيم مثبّت بالبذرة 42 في data/manifest.json) باستخدام البواني، مع التشغيل من جذر المستودع:

python data_processing/make_splits_v4.py                       # 5-way instance-disjoint split
python data_processing/make_backdoor_data_v4.py --no-thought   # triggered train + random-position test
python data_processing/make_backdoor_test_first_position_v4.py # paired first-position test
python data_processing/verify_splits_v4.py                     # check the split invariants

تحتوي المساعدات في data_processing/ على سلسلة المُحفّز والأمر الخبيث؛ راجع docs/RELEASE.md لمعرفة سبب تقييد مجموعة البيانات المبنية.

خط الأنابيب (شغّل من جذر المستودع)

# 1. PersistBD — train the joint adapter Δj on a backdoored checkpoint.
#    Defaults reproduce the 7B arm; see the paper's table for the 3B/30B values.
torchrun --nproc_per_node=1 src/persistbd/get_delta_j.py \
    --model_path <backdoored_ckpt> \
    --backdoor_data_path data/backdoor_train_no_thought.jsonl \
    --benign_data_path   data/attacker_train.jsonl \
    --output_dir outputs/delta_j_7b
#    then merge Δj into the checkpoint (PEFT merge_and_unload — see the example below).

# 2. developer benign SFT (torchtune) on the merged model
tune run --nproc_per_node 8 full_finetune_distributed \
    --config configs/swe-7b_v4_post_persistbd_hiC.yaml \
    backdoor_dir=<merged_model> output_dir=outputs/post

# 3. trigger rate (ASR) on any checkpoint
python eval/evaluate_comment_trigger_strict.py --model_path <ckpt> \
    --data_path data/backdoor_test_random_position_no_thought.json

# 4. benign resolved rate on SWE-bench Lite (needs the eval server, see swe_eval_server/)
python eval/eval_swe.py --model_path <ckpt> --server http://localhost:8000

يشغّل examples/slurm/delta_j_7b_v4.sbatch (تدريب + دمج Δj) و examples/slurm/post_7b_v4_persistbd_hiC.sbatch (الضبط الدقيق الحميد) الخطوتين 1–2 من البداية إلى النهاية ويتسلسلان عبر outputs/delta_j_7b_merged.

توجد مسح القوة/التوافق التشخيصي (Δs، Δc وشبكتهما α·Δs + β·Δc) في get_delta_s.py، وget_delta_c.py، وget_combined_model.py.

التسمية: الكود ↔ الورقة

الكودالورقة
مجموعات اختبار random_position، first_positionالموضع العشوائي (الأساسي)، الموضع الأول
--lambda_bd، --lambda_c، --lambda_clλ_bd، λ_c، λ_cl^j
Δs، Δc، Δj (α·Δs + β·Δc)محوّلات القوة / التوافق / المشتركة
S، C في eval_gradient_loss.pyالقوة S، توافق التدرّج C

ملاحظات

  • يتكامل وضع الطابور في swe_eval_server/ مع مدرّب RL خارجي (verl، غير مُضمَّن)؛ نقطة النهاية POST /evaluate ذات الطلقة الواحدة تحتاج فقط إلى Docker + SWE-bench. يربط الخادم 0.0.0.0 دون مصادقة ويشغّل أوامر shell المولّدة من النموذج داخل Docker — شغّله على شبكة موثوقة فقط.
  • configs/، وexamples/slurm/، ومسارات outputs/… فيها هي قوالب؛ عدّل المسارات وتوجيهات العنقود لبيئتك.

الاستشهاد

@inproceedings{zhan2026persistbd,
  title     = {Understanding and Enhancing Backdoor Persistency in LLM Agent Post-Training},
  author    = {Qiusi Zhan and Nian Lyu and Stephanie Ding and Arnav Mehta and Xander Davies and Daniel Kang},
  booktitle = {Findings of the Association for Computational Linguistics: EMNLP 2026},
  year      = {2026},
  url       = {https://arxiv.org/abs/2610.07510}
}
تنزيل الأداة