Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
D-Scan — LLM आंतरिक अवस्थाओं और 100+ अटेंशन/प्रोबेबिलिटी फीचर्स का विश्लेषण करके RAG प्रणालियों में दस्तावेज़ विषाक्तता हमलों का पता लगाने वाले क्लासिफायर को प्रशिक्षित करता है। | Kitploit
उपकरण/GitHubGitHub/yingtaoren/d-scan
रक्षात्मक उपकरणमशीन लर्निंगAI सुरक्षाविसंगति का पता लगाना
GitHubyingtaoren/d-scan

D-Scan

LLM आंतरिक अवस्थाओं और 100+ अटेंशन/प्रोबेबिलिटी फीचर्स का विश्लेषण करके RAG प्रणालियों में दस्तावेज़ विषाक्तता हमलों का पता लगाने वाले क्लासिफायर को प्रशिक्षित करता है।

रिपॉजिटरी देखें
124 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

जब संदर्भ काटता है: डॉक्यूमेंट-स्तरीय अटेंशन पतन के माध्यम से RAG विषाक्तता का पता लगाना

D-SCAN, RAG (रिट्रीवल-ऑगमेंटेड जनरेशन) प्रणालियों में डॉक्यूमेंट विषाक्तता हमलों का पता लगाने के लिए एक विश्लेषण ढांचा है। यह जनरेशन के दौरान LLM की आंतरिक अवस्थाओं (टोकन प्रायिकताएँ और अटेंशन भार) को एकत्र करता है, बहु-आयामी विशेषताएँ निकालता है, और स्वच्छ और विषाक्त पुनर्प्राप्त दस्तावेज़ों के बीच अंतर करने के लिए वर्गीकारकों को प्रशिक्षित करता है।

1. स्थापना और आवश्यकताएँ

पूर्वापेक्षाएँ

  • Python >= 3.9
  • CUDA-संगत GPU (8B-पैरामीटर मॉडल अनुमान के लिए >= 24GB VRAM अनुशंसित)

मॉडल तैयारी

यह प्रोजेक्ट डिफ़ॉल्ट रूप से Llama-3.1-8B-Instruct का उपयोग करता है। मॉडल को स्थानीय पथ पर डाउनलोड करें और collect_inner_state.py में MODEL_ID वेरिएबल को अपडेट करें:

root@kitploit:~
MODEL_ID = "/your/path/to/Llama-3.1-8B-Instruct"

2. त्वरित आरंभ

पूर्ण कार्यप्रवाह में तीन चरण शामिल हैं: आंतरिक अवस्थाएँ एकत्र करें → विशेषताएँ परिकलित करें → वर्गीकारक प्रशिक्षित करें। प्रश्न और संबंधित पुनर्प्राप्त दस्तावेज़ https://huggingface.co/datasets/An998/D-SCAN में उपलब्ध हैं।

चरण 1: मॉडल आंतरिक अवस्थाएँ एकत्र करें

root@kitploit:~
# Update configuration parameters in collect_inner_state.py, then run
python collect_inner_state.py

चरण 2: विशेषता मेट्रिक्स परिकलित करें

root@kitploit:~
# 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-फोल्ड CV)
  3. परीक्षण सेट पर स्थानांतरण प्रदर्शन का मूल्यांकन करें

3. पाइपलाइन विवरण

3.1 डेटा संग्रह (collect_inner_state.py)

प्रत्येक प्रश्न-दस्तावेज़ इनपुट के लिए, LLM बहु-नमूना जनरेशन (डिफ़ॉल्ट: 10 नमूने, temperature=1.0) करता है और निम्नलिखित आंतरिक अवस्थाएँ एकत्र करता है:

मुख्य कॉन्फ़िगरेशन पैरामीटर

root@kitploit:~
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)

एकत्रित आंतरिक अवस्थाओं से 100+ आयामी विशेषताओं वाली 10 श्रेणियाँ निकालता है। वर्गीकारक इन विशेषताओं का उपयोग यह निर्धारित करने के लिए करता है कि किसी दिए गए क्वेरी के लिए पुनर्प्राप्त दस्तावेज़ों के बीच विषाक्त दस्तावेज़ मौजूद हैं या नहीं।

मेट्रिक अवलोकन

विस्तृत मेट्रिक विवरण

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: दस्तावेज़ों में अटेंशन घनत्व का std, परिसर, अधिकतम और न्यूनतम
  • 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: जनरेशन चरणों में प्रति-टोकन अटेंशन std के आँकड़े
  • tla_ent_mean/std/max/median/p90/p99/high_ratio/cv: जनरेशन चरणों में प्रति-टोकन अटेंशन एन्ट्रॉपी के आँकड़े

8. AnswerProbabilityMetrics (उत्तर प्रायिकता गहन सांख्यिकी)

  • aprob_p10/p25/p50/p75/p90/iqr: प्रायिकता क्वांटाइल
  • aprob_high_ratio_05/08: उच्च-प्रायिकता टोकनों का अनुपात
  • aprob_low_ratio_01/001: निम्न-प्रायिकता टोकनों का अनुपात
  • aprob_log_mean/std/min: लॉग-प्रायिकता आँकड़े
  • aprob_ppl_mean/std/max: अनुक्रम-स्तरीय पर्प्लेक्सिटी
  • aprob_geometric_mean: प्रायिकताओं का ज्यामितीय माध्य
  • aprob_distribution_entropy: प्रायिकता हिस्टोग्राम की सूचना एन्ट्रॉपी

9. ProbabilityDynamicsMetrics (प्रायिकता गतिकी)

  • pdyn_diff_mean/abs_diff_mean/abs_diff_std/abs_diff_max: प्रायिकता अंतर आँकड़े
  • pdyn_max_drop/max_jump: अधिकतम एकल-चरण गिरावट/उछाल
  • pdyn_volatility_mean/std: अस्थिरता
  • pdyn_trend_slope_mean/std: रैखिक प्रवृत्ति ढलान
  • pdyn_autocorr_mean/std: स्वसहसंबंध गुणांक
  • pdyn_spike_ratio_01/03: स्पाइक (उत्परिवर्तन बिंदु) अनुपात

10. CrossSampleProbabilityConsistencyMetrics (क्रॉस-नमूना प्रायिकता संगति)

  • cspc_mean_prob_std/cv/range: नमूनों में औसत प्रायिकताओं की संगति
  • cspc_ppl_std/cv/range: नमूनों में पर्प्लेक्सिटी की संगति
  • cspc_min_prob_std/range: न्यूनतम प्रायिकताओं की संगति
  • cspc_seq_cosine_mean/std: प्रायिकता अनुक्रमों की क्रॉस-नमूना कोसाइन समानता
  • cspc_seq_pearson_mean: प्रायिकता अनुक्रमों का क्रॉस-नमूना पियर्सन सहसंबंध
  • cspc_seq_mse_mean: प्रायिकता अनुक्रमों का क्रॉस-नमूना MSE
  • cspc_divergence_index: अंतर-नमूना विचलन सूचकांक

compute_feature.py कमांड-लाइन तर्क

root@kitploit:~
python compute_feature.py \
    --attack_dir <attack_data_directory> \
    --clean_dir <clean_data_directory> \
    --output_dir <output_directory> \
    --max_attack_samples 3000 \
    --max_clean_samples 3000 \
    --min_correct_count 0 \
    --min_attack_target_count 0 \
    --num_use_samples 10 \
    --model_path /path/to/model    # Optional: load tokenizer for accuracy calculation

आउटपुट फ़ाइलें

FilenameDescription
single_metric_analysis.jsonप्रत्येक मेट्रिक के लिए AUC, p-मान, कोहेन का d, आदि

3.3 वर्गीकारक प्रशिक्षण (fit_D-SCAN.ipynb)

नोटबुक कार्यप्रवाह:

  1. डेटा लोड करें: compute_feature.py से full_analysis_results.json आउटपुट पढ़ें
  2. विशेषता चयन: सभी विशेषताओं का उपयोग करें या श्रेणी के अनुसार फ़िल्टर करें (जैसे, केवल-अटेंशन विशेषताएँ)
  3. वर्गीकारक प्रशिक्षित करें:
    • लॉजिस्टिक रिग्रेशन (L2 नियमीकरण): रैखिक वर्गीकारक, कम विशेषताओं के लिए उपयुक्त
    • रैंडम फ़ॉरेस्ट (100 पेड़, max_depth=5): गैर-रैखिक वर्गीकारक, विशेषता अंतःक्रियाओं को पकड़ता है
  4. 5-फोल्ड क्रॉस-सत्यापन: AUC, सटीकता, प्रेसिजन, रिकॉल, F1 की रिपोर्ट करता है
  5. विशेषता महत्व विश्लेषण: शीर्ष-10 महत्वपूर्ण विशेषताएँ आउटपुट करता है
  6. परीक्षण सेट मूल्यांकन: एक स्वतंत्र परीक्षण सेट पर स्थानांतरण प्रदर्शन का मूल्यांकन करने के लिए प्रशिक्षण स्केलर और वर्गीकारक का उपयोग करता है
  7. विज़ुअलाइज़ेशन: ROC वक्र, विशेषता महत्व बार चार्ट, प्रशिक्षण बनाम परीक्षण तुलना

वर्गीकारकों के लिए विशेषता चयन

नोटबुक में use_features वेरिएबल वर्गीकारकों द्वारा उपयोग किए जाने वाले विशेषता उपसमुच्चय पर लचीला नियंत्रण प्रदान करता है:

root@kitploit:~
# Use all features
use_features = [f for f in feature_names if f not in exclude_cols]

# Use only attention-related features
use_features = [f for f in use_features if 'attn' in f]

# Combine by metric category (example)
use_features = [f for f in feature_names if f.startswith(('ppl_', 'doc_', 'sample_'))]

प्रति-श्रेणी वर्गीकारक प्रदर्शन भी compute_feature.py निष्पादन के दौरान मुद्रित किया जाता है:

टूल डाउनलोड करें
FieldTypeDescription
outer_ppl_probsList[Tensor]प्रत्येक नमूने के लिए टोकन जनरेशन प्रायिकता
inner_ppl_matrixList[List[Tensor]]प्रत्येक जनरेशन चरण पर इनपुट अनुक्रम पर अटेंशन भार (लेयर-औसत)
doc_rangesDict[str, List[int]]इनपुट अनुक्रम में प्रत्येक दस्तावेज़ के लिए टोकन स्थिति सीमा
generated_sequencesList[List[int]]प्रत्येक नमूने के लिए उत्पन्न टोकन ID अनुक्रम
#CategoryClass Name# FeaturesCore Idea
1जनरेशन प्रायिकता आँकड़ेPerplexityMetrics8विषाक्त दस्तावेज़ जनरेशन के दौरान मॉडल की अनिश्चितता बढ़ा सकते हैं, जो प्रायिकता वितरण परिवर्तनों में परिलक्षित होती है
2अटेंशन एन्ट्रॉपीAttentionEntropyMetrics4उच्च एन्ट्रॉपी = वितरित अटेंशन = संभावित विरोधाभासी जानकारी; निम्न एन्ट्रॉपी = केंद्रित अटेंशन
3अटेंशन सांद्रताAttentionConcentrationMetrics8Top-K अनुपात और जिनी गुणांक के माध्यम से मापता है कि क्या अटेंशन कुछ टोकनों पर केंद्रित है
4दस्तावेज़ अटेंशन घनत्वDocumentAttentionDensityMetrics6अटेंशन योग को दस्तावेज़ लंबाई से विभाजित करना, अटेंशन आवंटन में लंबाई पूर्वाग्रह को समाप्त करना
5बहु-नमूना संगतिSampleConsistencyMetrics4विषाक्तता के तहत, नमूनों में अटेंशन पैटर्न असंगत हो सकते हैं (कोसाइन समानता, JS विचलन)
6अटेंशन गतिकीAttentionDynamicsMetrics4जनरेशन के दौरान प्रमुख-दस्तावेज़ स्विच की आवृत्ति और एन्ट्रॉपी परिवर्तन की परिमाण
7टोकन-स्तरीय अटेंशन उतार-चढ़ावTokenLevelAttentionMetrics16जनरेशन चरणों में प्रत्येक इनपुट टोकन स्थिति पर अटेंशन की स्थिरता (std, एन्ट्रॉपी)
8उत्तर प्रायिकता गहन आँकड़ेAnswerProbabilityMetrics18प्रायिकता क्वांटाइल, उच्च/निम्न प्रायिकता टोकन अनुपात, लॉग प्रायिकता, पर्प्लेक्सिटी, आदि
9प्रायिकता गतिकीProbabilityDynamicsMetrics14जनरेशन अनुक्रम में प्रवृत्ति ढलान, स्वसहसंबंध, अस्थिरता, स्पाइक अनुपात
10क्रॉस-नमूना प्रायिकता संगतिCrossSampleProbabilityConsistencyMetrics13नमूनों में कोसाइन समानता, पियर्सन सहसंबंध, MSE, विचलन सूचकांक
ArgumentDefaultDescription
--attack_dir-हमला डेटा निर्देशिका (data_*_reppl.pt फ़ाइलें युक्त)
--clean_dir-स्वच्छ डेटा निर्देशिका
--output_dir-आउटपुट निर्देशिका
--max_attack_samples3000हमला नमूनों की अधिकतम संख्या
--max_clean_samples3000स्वच्छ नमूनों की अधिकतम संख्या
--min_correct_count0स्वच्छ डेटा में न्यूनतम सही उत्तर गणना (फ़िल्टरिंग के लिए)
--min_attack_target_count0हमला डेटा में न्यूनतम लक्ष्य उत्तर हिट गणना
--num_use_samplesNoneमेट्रिक परिकलन के लिए प्रति प्रश्न नमूनों की संख्या (डिफ़ॉल्ट: सभी)
--model_pathNoneमॉडल पथ (उत्पन्न अनुक्रमों को डिकोड करने के लिए टोकनाइज़र लोड करने हेतु)
full_analysis_results.jsonपूर्ण विशेषता मैट्रिक्स + लेबल
document_detailed_metrics.jsonप्रति-दस्तावेज़ विस्तृत मेट्रिक्स (JSON सारांश)
document_detailed_metrics_full.pklपूर्ण दस्तावेज़-स्तरीय मेट्रिक्स (चरण-स्तरीय अटेंशन सहित)
Feature GroupPrefix / Keyword
perplexityppl_*
attention_entropy*entropy* (doc और aprob को छोड़कर)
attention_concentration*top*, *gini*
document_attentiondoc_*
sample_consistency*sample*, *consistency*
attention_dynamics*switch*, *change*
token_level_attentiontla_*
answer_probabilityaprob_*
probability_dynamicspdyn_*
cross_sample_prob_consistencycspc_*