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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
llm-censorship-steering — كود خاص بـ 'توجيه سفينة الرقابة: كشف متجهات التمثيل للتحكم في "تفكير" LLM' | Kitploit
أدوات/GitHubGitHub/hannahxchen/llm-censorship-steering
تعلم الآلةالأوراق والأبحاثالتعلم والتعليمأمن الذكاء الاصطناعيالهجوم العدائي
GitHubhannahxchen/llm-censorship-steering

llm-censorship-steering

كود خاص بـ 'توجيه سفينة الرقابة: كشف متجهات التمثيل للتحكم في "تفكير" LLM'

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
1216منذ 8 أشهرلم تتم المراجعة بعد

توجيه الرقابة في LLM

يحتوي هذا المستودع على تنفيذ كود لورقة توجيه الرقابة: كشف متجهات التمثيل للتحكم في "تفكير" نماذج اللغة الكبيرة من إعداد هانا سيبراي وديفيد إيفانز.

نقدّم طريقة تعثر على "متجهات توجيه" من داخل نماذج اللغة الكبيرة لاكتشاف مستوى الرقابة في مخرجات النموذج والتحكم فيه. اطّلع على مقالة المدونة للحصول على نظرة عامة مختصرة عن عملنا.

جرّب العروض التوضيحية:

  • 🐳 توجيه قمع التفكير مع DeepSeek-R1-Distill-Qwen-7B
  • 🦙 توجيه الرفض—الامتثال مع Llama-3.1-8B-Instruct

ملاحظة: يتطلب كلا العرضين التوضيحيين حساب Huggingface. وهو مستضاف عبر ZeroGPU الخاص بـ Huggingface، وهو مجاني لجميع المستخدمين مع حصة استخدام يومية محدودة.

التثبيت

نزّل المستودع:

root@kitploit:~
git clone https://github.com/hannahxchen/llm-censorship-steering.git
cd llm-censorship-steering

أنشئ بيئة افتراضية بإصدار Python 3.11 أو أحدث وقم بتفعيلها:

root@kitploit:~
conda create -y -n censorship-steering python=3.11
conda activate censorship-steering

ثبّت التبعيات:

root@kitploit:~
pip install -r requirements.txt

الاستخدام

إيجاد متجه توجيه

لإيجاد متجه توجيه رقابي لنموذج تعليمات، شغّل:

root@kitploit:~
python -m llm_steering.run \
    --run_train \
    --model_name meta-llama/Llama-2-7b-chat-hf \
    --censor_type refusal \
    --n_train 1000 --n_val 500 \
    --threshold 0.1 \
    --filter_layer_pct 0.2

سيتم حفظ ملف إعداد في الدليل المحدد. بدلاً من ذلك، يمكنك استخدام python -m llm_steering.run --config_file CONFIG_FILE بتمرير ملف إعداد YAML، باتباع التنسيق المعرف في llm_steering/config.py.

بالنسبة لنماذج الاستدلال، نستخدم الإعداد التالي:

root@kitploit:~
python -m llm_steering.run \
    --run_train \
    --model_name deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
    --censor_type thought_suppress \
    --n_train -1 --n_val 1000 \
    --threshold 0.1 \
    --filter_layer_pct 0.05 \
    --save_dir SAVE_DIR

تطبيق متجه التوجيه

استخدم الأمر التالي لتطبيق متجه التوجيه:

root@kitploit:~
python -m llm_steering.run
    --run_steering \
    --config_file SAVE_DIR/config.yaml \
    --generation_batch_size 8 \
    --coeff -1 \
    --datasets jailbreakbench ccp_sensitive

يمكنك إما تعيين معامل واحد باستخدام --coeff أو تعيين نطاق من المعاملات باستخدام --min_coeff و--max_coeff و--increment. بشكل افتراضي، يطبّق القيم من -1 إلى 1 بزيادة مقدارها 0.2. سيتم حفظ جميع مخرجات النموذج في SAVE_DIR/evaluation/.

جميع وسائط llm_steering/run.py:

(للتدريب والتحقق)

  • model_name: استخدم اسم مستودع النموذج على Huggingface.
  • censor_type: استخدم "refusal" لنماذج التعليمات و"thought_suppress" لنماذج الاستدلال.
  • method: طريقة حساب المتجهات المرشحة. الخيارات المتاحة: WMD (weighted mean difference)، MD (difference-in-means). الطريقة الافتراضية هي WMD.
  • n_train، n_valid: عدد أمثلة التدريب والتحقق. إذا كانت القيمة -1، يتم استخدام جميع الأمثلة.
  • threshold: درجة العتبة لتسمية الأمثلة الخاضعة للرقابة/غير الخاضعة للرقابة.
  • filter_layer_pct: تجاهل آخر N بالمئة من الطبقات.
  • save_dir: مسار الدليل لحفظ النتائج.

(لتطبيق متجهات التوجيه)

  • run_steering: تطبيق متجه التوجيه الذي تم إيجاده.
  • compute_projection: حساب الإسقاطات العددية.
  • datasets: مجموعة/مجموعات البيانات التي سيتم تطبيق التوجيه عليها. (انظر مجموعات البيانات المتاحة أدناه)
  • layer_ids: معرف/معرفات الطبقة للتدخل. الافتراضي يستخدم فقط الطبقة العليا المحددة أثناء التحقق من المتجه.
  • coeff: تشغيل قيمة معامل واحدة.
  • min_coeff: الحد الأدنى للمعامل.
  • max_coeff: الحد الأقصى للمعامل.
  • increment: مقدار زيادة المعامل.
  • max_new_tokens: الحد الأقصى لعدد الرموز المولّدة.
  • num_return_sequences: عدد التسلسلات المولّدة لكل مدخل.
  • top_p: قيمة top p لأخذ العينات.
  • temperature: درجة الحرارة لأخذ العينات.

(وسائط مشتركة)

  • config_file: المسار إلى ملف إعداد YAML.
  • use_cache: إعادة استخدام النتائج المخزنة مؤقتًا. مفيد إذا كنت بحاجة إلى استئناف العملية دون إعادة تشغيلها بالكامل. سيعيد البرنامج النصي استخدام/تخطي القطع المحفوظة (مثل بيانات التدريب/التحقق المعالجة مسبقًا، والمخرجات المولّدة بمعامل معين).
  • batch_size: حجم الدفعة لاستخراج التنشيطات.
  • generation_batch_size: حجم الدفعة لتشغيل التوليد.
  • seed: البذرة العشوائية.

مجموعات البيانات المتاحة:

  • jailbreakbench: الجزء الضار من JailbreakBench.
  • sorrybench: المجموعة الكاملة من المطالبات من SorryBench.
  • alpaca_test_sampled: 300 مطالبة منتقاة من Alpaca-Cleaned.
  • xstest_safe، xstest_unsafe: المجموعة الكاملة من المطالبات من XSTest.
  • ccp_sensitive: مطالبات CCP Sensitive التي تغطي 68 موضوعًا حساسًا مختلفًا. يحتوي كل موضوع على 20 مطالبة.
  • ccp_sensitive_sampled: مجموعة أصغر من CCP Sensitive، تحتوي على 5 مطالبات لكل موضوع.
  • deccp_censored: الجزء الخاضع للرقابة من deccp.

التقييم

لتقييم المخرجات المولّدة باستخدام WildGuard، شغّل:

root@kitploit:~
python -m llm_steering.run_eval \
    --config_file CONFIG_FILE_PATH \
    --batch_size BATCH_SIZE \
    --run_wildguard

سيقوم البرنامج النصي بمعالجة جميع ملفات مخرجات النموذج المحفوظة تحت SAVE_DIR/evaluation/. أضف --use_cache لتخطي الملفات التي تمت معالجتها بالفعل.

يوفر WildGuard ثلاثة أنواع من الكشف وينتج مخرجات بالتنسيق التالي:

root@kitploit:~
Harmful request: yes
Response refusal: yes
Harmful response: no

نستخرج احتمال رمز "yes" أو "no" لكل نوع من أنواع الكشف. ستتم إضافة النتائج إلى نفس ملف المخرجات المولّدة.

الاقتباس

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

root@kitploit:~
@inproceedings{cyberey2025steering,
    title={Steering the CensorShip: Uncovering Representation Vectors for {LLM} ''Thought'' Control},
    author={Hannah Cyberey and David Evans},
    booktitle={Second Conference on Language Modeling},
    year={2025}
}
تنزيل الأداة