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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
D-Scan — يحلل الحالات الداخلية لنماذج LLM وأكثر من 100 ميزة من ميزات الانتباه/الاحتمالات لتدريب مصنفات تكتشف هجمات تسميم المستندات في أنظمة RAG. | Kitploit
أدوات/GitHubGitHub/yingtaoren/d-scan
أدوات دفاعيةتعلم الآلةأمن الذكاء الاصطناعيكشف الشذوذ
GitHubyingtaoren/d-scan

D-Scan

يحلل الحالات الداخلية لنماذج LLM وأكثر من 100 ميزة من ميزات الانتباه/الاحتمالات لتدريب مصنفات تكتشف هجمات تسميم المستندات في أنظمة RAG.

عرض المستودع
1221منذ 20 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

عندما يعض السياق: كشف تسميم RAG عبر انهيار الانتباه على مستوى المستند

D-SCAN هو إطار تحليلي لكشف هجمات تسميم المستندات في أنظمة RAG (التوليد المعزز بالاسترجاع). يجمع الحالات الداخلية لنموذج اللغة الكبير (LLM) أثناء التوليد (احتمالات الرموز وأوزان الانتباه)، ويستخرج ميزات متعددة الأبعاد، ويدرّب المصنّفات للتمييز بين المستندات المسترجعة النظيفة والمسمومة.

1. التثبيت والمتطلبات

المتطلبات الأساسية

  • Python >= 3.9
  • GPU متوافق مع CUDA (يوصى بـ >= 24GB VRAM لاستدلال نموذج بـ 8B معامل)

تحضير النموذج

يستخدم هذا المشروع Llama-3.1-8B-Instruct افتراضيًا. نزّل النموذج إلى مسار محلي وحدّث متغير MODEL_ID في collect_inner_state.py:

MODEL_ID = "/your/path/to/Llama-3.1-8B-Instruct"

2. البدء السريع

يتكون سير العمل الكامل من ثلاث خطوات: جمع الحالات الداخلية ← حساب الميزات ← تدريب المصنّف. السؤال والمستندات المسترجعة ذات الصلة متوفرة في https://huggingface.co/datasets/An998/D-SCAN.

الخطوة 1: جمع الحالات الداخلية للنموذج

# Update configuration parameters in collect_inner_state.py, then run
python collect_inner_state.py

الخطوة 2: حساب مقاييس الميزات

# Analyze both attack and clean data, compute all features, and save results
python compute_feature.py \
    --attack_dir ./saved_reppl_weights_serial_query1_attack2_2wiki \
    --clean_dir ./saved_reppl_weights_serial_query1_pure1_5_2wiki \
    --output_dir ./analysis_results/2wiki_all \
    --max_attack_samples 3000 \
    --max_clean_samples 3000

الخطوة 3: تدريب المصنّف والتقييم

افتح fit_D-SCAN.ipynb ونفّذ الخلايا بالتسلسل من أجل:

  1. تحميل بيانات الميزات المُنشأة في الخطوة 2
  2. تدريب مصنّفات الانحدار اللوجستي / الغابة العشوائية (5-Fold CV)
  3. تقييم أداء النقل على مجموعة الاختبار

3. تفاصيل خط الأنابيب

3.1 جمع البيانات (collect_inner_state.py)

لكل مدخل سؤال-مستند، يقوم LLM بإجراء توليد متعدد العينات (افتراضيًا: 10 عينات، temperature=1.0) ويجمع الحالات الداخلية التالية:

الحقلالنوعالوصف
outer_ppl_probsList[Tensor]احتمال توليد الرمز لكل عينة
inner_ppl_matrixList[List[Tensor]]أوزان الانتباه على تسلسل الإدخال عند كل خطوة توليد (متوسط الطبقات)
doc_rangesDict[str, List[int]]نطاق موضع الرموز لكل مستند في تسلسل الإدخال
generated_sequencesList[List[int]]تسلسلات معرّفات الرموز المولّدة لكل عينة

معاملات التكوين الرئيسية

MODEL_ID = "/path/to/model"     # Model path
NUM_SAMPLES = 10                # Number of samples per question
MAX_NEW_TOKENS = 50             # Maximum generated tokens
TEMPERATURE = 1.0               # Sampling temperature
data_type = 'pure1_5'           # Data type: 'pure1_5' (clean) or 'attack2' (attack)
dataset_name = 'hotpotqa'       # Dataset: 'hotpotqa', '2wiki', 'musique'

تُحفظ المخرجات كملفات data_{batch_id}_reppl.pt وملفات إحصاءات results_stats_*.jsonl.


3.2 حساب الميزات (compute_feature.py)

يستخرج 10 فئات بميزات تتجاوز 100 بُعد من الحالات الداخلية المجمّعة. يستخدم المصنّف هذه الميزات لتحديد ما إذا كانت هناك مستندات مسمومة بين المستندات المسترجعة لاستعلام معين.

نظرة عامة على المقاييس

#الفئةاسم الفئةعدد الميزاتالفكرة الأساسية
1إحصاءات احتمال التوليدPerplexityMetrics8قد تزيد المستندات المسمومة من عدم يقين النموذج أثناء التوليد، وهو ما ينعكس في تغيرات توزيع الاحتمالات
2إنتروبيا الانتباهAttentionEntropyMetrics4إنتروبيا عالية = انتباه مشتت = احتمال وجود معلومات متعارضة؛ إنتروبيا منخفضة = انتباه مركّز
3تركيز الانتباهAttentionConcentrationMetrics8يقيس ما إذا كان الانتباه مركّزًا على عدد قليل من الرموز عبر نسبة Top-K ومعامل جيني
4كثافة انتباه المستندDocumentAttentionDensityMetrics6مجموع الانتباه مقسومًا على طول المستند، مما يزيل تحيّز الطول في تخصيص الانتباه
5اتساق العينات المتعددةSampleConsistencyMetrics4تحت التسميم، قد تكون أنماط الانتباه عبر العينات غير متسقة (تشابه جيبي، تباعد JS)
6ديناميكيات الانتباهAttentionDynamicsMetrics4تكرار تبديل المستند المهيمن ومقدار تغير الإنتروبيا أثناء التوليد
7تذبذب الانتباه على مستوى الرمزTokenLevelAttentionMetrics16استقرار الانتباه عند كل موضع رمز إدخال عبر خطوات التوليد (الانحراف المعياري، الإنتروبيا)
8إحصاءات عميقة لاحتمال الإجابةAnswerProbabilityMetrics18كمّيات الاحتمال، نسب الرموز عالية/منخفضة الاحتمال، اللوغاريتم الاحتمالي، الحيرة، إلخ.
9ديناميكيات الاحتمالProbabilityDynamicsMetrics14ميل الاتجاه، الارتباط الذاتي، التقلب، نسبة القفزات في تسلسل التوليد
10اتساق الاحتمال عبر العيناتCrossSampleProbabilityConsistencyMetrics13التشابه الجيبي، ارتباط بيرسون، MSE، مؤشر التباعد عبر العينات

أوصاف المقاييس التفصيلية

1. PerplexityMetrics (إحصاءات احتمال التوليد)

تُحسب من outer_ppl_probs (احتمال كل رمز مولّد):

  • ppl_mean_prob: متوسط الاحتمال عبر جميع الرموز المولّدة
  • ppl_std_prob: الانحراف المعياري للاحتمال
  • ppl_min_prob: الحد الأدنى للاحتمال (عدم يقين أقصى)
  • ppl_low_prob_ratio: نسبة الرموز منخفضة الاحتمال (<0.1)
  • ppl_cross_sample_var: تباين متوسطات الاحتمالات عبر العينات
  • ppl_coef_variation: معامل الاختلاف (CV = std/mean)
  • ppl_skewness: التواء توزيع الاحتمال
  • ppl_kurtosis: تفرطح توزيع الاحتمال

2. AttentionEntropyMetrics (إنتروبيا الانتباه)

تُحسب من inner_ppl_matrix (أوزان الانتباه عند كل خطوة):

  • attn_entropy_mean/std/max: المتوسط والانحراف المعياري والحد الأقصى لإنتروبيا توزيع الانتباه
  • attn_entropy_cv: معامل الاختلاف لإنتروبيا الانتباه

3. AttentionConcentrationMetrics (تركيز الانتباه)

  • attn_top5/10/20_ratio_mean/std: حصة الانتباه التي تستحوذ عليها رموز Top-K%
  • attn_gini_mean/std: معامل جيني لتوزيع الانتباه (مقياس عدم المساواة)

4. DocumentAttentionDensityMetrics (كثافة انتباه المستند)

  • doc_attn_dens_std/range/max/min: الانحراف المعياري والمدى والحد الأقصى والحد الأدنى لكثافة الانتباه عبر المستندات
  • doc_attn_dens_entropy: إنتروبيا توزيع كثافة انتباه المستند
  • doc_attn_dens_temporal_var_mean: متوسط التباين الزمني لكثافة انتباه المستند

5. SampleConsistencyMetrics (اتساق العينات المتعددة)

  • sample_attn_consistency/std: التشابه الجيبي عبر العينات للانتباه على مستوى الرمز
  • sample_doc_consistency: التشابه الجيبي عبر العينات للانتباه على مستوى المستند
  • sample_doc_js_divergence: تباعد JS عبر العينات للانتباه على مستوى المستند

6. AttentionDynamicsMetrics (ديناميكيات الانتباه)

  • attn_doc_switch_mean/max: عدد تبديلات المستند المهيمن
  • attn_entropy_change_mean/std: تغير إنتروبيا الانتباه خطوة بخطوة

7. TokenLevelAttentionMetrics (تذبذب الانتباه على مستوى الرمز)

  • tla_std_mean/std/max/median/p90/p99/high_ratio/cv: إحصاءات الانحراف المعياري لانتباه كل رمز عبر خطوات التوليد
  • tla_ent_mean/std/max/median/p90/p99/high_ratio/cv: إحصاءات إنتروبيا انتباه كل رمز عبر خطوات التوليد

8. AnswerProbabilityMetrics (إحصاءات عميقة لاحتمال الإجابة)

تنزيل الأداة