
रिट्रीवल-ऑगमेंटेड जनरेशन सिस्टम में गलत सूचना और ज्ञान विषाक्तता (नॉलेज पॉइज़निंग) का पता लगाने के लिए एक मूल्यांकन एजेंट।
रिट्रीवल-ऑगमेंटेड जनरेशन सिस्टम में गलत सूचना और नॉलेज पॉइज़निंग का पता लगाने के लिए एक मूल्यांकन एजेंट।
यह प्रोजेक्ट एक एकीकृत मूल्यांकन एजेंट के साथ विश्वसनीय RAG फ्रेमवर्क लागू करता है, जो तीन पूरक विश्लेषण घटकों का उपयोग करके RAG प्रतिक्रियाओं की विश्वसनीयता का आकलन करता है:
सिस्टम प्रत्येक RAG प्रतिक्रिया के लिए एक ट्रस्ट स्कोर (0-1) उत्पन्न करता है, जिससे नॉलेज पॉइज़निंग हमलों और हैलुसिनेटेड सामग्री का स्वचालित पता लगाना संभव होता है।
यह रिपॉजिटरी उसी शीर्षक वाले ICSEA 2026 सम्मेलन पेपर का शोध आर्टिफैक्ट है। LaTeX स्रोतों के लिए [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/) देखें, और नीचे पेपर अनुभाग देखें।
User Query
|
v
+-------------------+
| RETRIEVER | Embedding (MiniLM-L6-v2 or Snowflake Arctic Embed2) + FAISS
+--------+----------+
|
v
+-------------------+
| GENERATOR | Llama 3.3 70B / Qwen 3.5 35B / Mistral 7B Instruct via FARMI API
+--------+----------+
|
v
+--------------------------------------------+
| EVALUATION AGENT |
| |
| NLI Verifier Poison Detector |
| (factuality) (5 detection methods) |
| | | |
| v v |
| Trust Index Calculator |
| T = 0.4*F + 0.35*C + 0.25*(1-P) |
+--------------------------------------------+
|
v
Answer + Trust Score + Evaluation Report
src/
retriever/ # Document retrieval (embeddings, FAISS, chunking)
generator/ # LLM response generation (FARMI client, prompts)
evaluation_agent/ # Core evaluation (NLI, poison detection, trust index)
experiments/ # Experiment framework (poisoned datasets, runner)
pipeline/ # End-to-end RAG pipeline orchestrator
tests/ # Unit tests (78 tests, pytest)
configs/config.yaml # All configuration parameters
figures/ # Auto-generated charts (7 figures, 300 DPI)
run_experiment.py # Experiment CLI (main entry point)
generate_charts.py # Visualization generator
requirements.txt # Python dependencies
# Create and activate virtual environment
python -m venv venv
.\venv\Scripts\Activate.ps1 # Windows PowerShell
# source venv/bin/activate # Linux/Mac
# Install dependencies
pip install -r requirements.txt
# Configure FARMI API access (required for LLM generation)
# Copy the template and fill in your own credentials:
# cp .env.example .env # then edit .env and set FARMI_API_KEY
# The .env file is .gitignored - never commit it or hardcode keys in source.
python run_experiment.py --all
यह सभी प्रयोग चलाता है और स्वचालित रूप से चार्ट जनरेट करता है:
python run_experiment.py --quick # Quick test (10 samples)
python run_experiment.py --samples 30 # Custom sample count
python run_experiment.py --per-strategy # Per-strategy breakdown only
python run_experiment.py --fever # Include FEVER dataset
python run_experiment.py --ablation # Ablation study only
python run_experiment.py --grid # 2x2 factorial grid (all LLM x embedding combos)
python run_experiment.py --grid --samples 50 # Full grid run (100 samples per config)
इंटरैक्टिव प्रॉम्प्ट आपको चयन करने देता है:
आप LLM_MODEL एनवायरनमेंट वेरिएबल के माध्यम से जनरेटर को गैर-इंटरैक्टिव रूप से भी पिन कर सकते हैं
(configs/config.yaml और run_experiment.py के MODEL_DESCRIPTIONS से मेल खाते हुए):
$env:LLM_MODEL = "mistral-7b-instruct" # or "qwen3.5:35b", "llama3.3:70b"
python run_experiment.py --all
प्रोजेक्ट रूट से सुरक्षित-कोडिंग सहायक प्रयोग (40 OWASP/CWE नियम) को पुनः उत्पन्न करें।
यह मौजूदा ExperimentRunner + PoisonedDatasetGenerator का पुनः उपयोग करता है और परिणाम
data/experiments/seccode_*.json में लिखता है:
$env:LLM_MODEL = "llama3.3:70b"; $env:HF_HUB_OFFLINE = "1"; $env:TRANSFORMERS_OFFLINE = "1"
python Conference_ICSEA2026/run_seccode_usecase.py
# Set $env:SECCODE_N = "4" first for a quick smoke run over a few rules.
python generate_charts.py
pytest # All tests (includes slow model-loading tests)
pytest -m "not slow" # Fast tests only (~0.4s)
pytest --cov=src # With coverage report
हमेशा भरोसा करने वाली नेव बेसलाइन: 85% (TruthfulQA), 85% (FEVER)। FEVER बेसलाइन से कम प्रदर्शन करता है — ट्रस्ट इंडेक्स को छोटे तथ्यात्मक दावों के लिए डोमेन-विशिष्ट कैलिब्रेशन की आवश्यकता होती है।
95% कॉन्फिडेंस इंटरवल (अनुपात के लिए विल्सन, F1 के लिए पर्सेंटाइल बूटस्ट्रैप B=20,000) के साथ, प्राथमिक TruthfulQA मिश्रित परिणाम है: सटीकता 91% (CI 83.8–95.2), रिकॉल 40% (CI 19.8–64.3), F1 57.1% (CI 25.0–80.0), Δ=0.225। इंटरवल चौड़े हैं क्योंकि प्रत्येक रन में केवल 15 पॉइज़न्ड सैंपल होते हैं, इसलिए हम प्रिसिजन को बढ़ा-चढ़ाकर न बताने के लिए उन्हें रिपोर्ट करते हैं।
प्रमुख निष्कर्ष:
एजेंट का एक सॉफ्टवेयर-इंजीनियरिंग अनुप्रयोग: एक सुरक्षित-कोडिंग सहायक जो OWASP Top 10 और CWE से लिए गए 40 नियमों के क्यूरेटेड ज्ञान आधार से रिट्रीव करता है (जैसे SQL इंजेक्शन के लिए पैरामीटराइज़्ड क्वेरी, अनुकूली पासवर्ड हैशिंग, TLS कॉन्फ़िगरेशन)। एक डेवलपर क्वेरी मार्गदर्शन प्राप्त करती है जिसे मूल्यांकन एजेंट LLM द्वारा अनुशंसा जारी करने से पहले जाँचता है। हम 30% नियमों को पाँच रणनीतियों के साथ सुरक्षा पेलोड के रूप में पॉइज़न करते हैं (जैसे नकली CORRECTION: निर्देश, स्वैप किया गया CWE पहचानकर्ता)।
रणनीति के अनुसार पहचान (Llama 3.3 70B + all-MiniLM-L6-v2, K=5):
τ=0.5 ऑपरेटिंग बिंदु से परे, ट्रस्ट इंडेक्स में तीनों LLM में मजबूत थ्रेशोल्ड-स्वतंत्र सिग्नल है (पूल्ड मिक्स्ड-स्ट्रैटेजी रन):
Trust = alpha * Factuality + beta * Consistency + gamma * (1 - PoisonProbability)
Default weights: alpha=0.4, beta=0.35, gamma=0.25
जब पॉइज़न प्रोबेबिलिटी 0.7 से अधिक होती है तो एक नॉन-लीनियर डैम्पनर लागू होता है:
delta = 1 - 0.4 * (P - 0.70) / 0.30 — P=1.0 पर, ट्रस्ट 40% कम हो जाता है।
[Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/) में हैं।संकलित PDF जानबूझकर इस रिलीज़ में शामिल नहीं है; इसे LaTeX स्रोतों से बनाएँ।
ICSEA 2026 सम्मेलन पेपर के लेखक — टाम्पेरे विश्वविद्यालय (TUNI)।
Balkrishna Giri, MSc शोधकर्ता, सूचना प्रौद्योगिकी और संचार विज्ञान संकाय, टाम्पेरे विश्वविद्यालय
ईमेल: [email protected], [email protected]
Md Toufique Hasan, डॉक्टोरल शोधकर्ता, GPT लैब, सूचना प्रौद्योगिकी और संचार विज्ञान संकाय, टाम्पेरे विश्वविद्यालय
ईमेल: [email protected]
सह-लेखक — सूचना प्रौद्योगिकी और संचार विज्ञान संकाय, टाम्पेरे विश्वविद्यालय:
GPT लैब, टाम्पेरे विश्वविद्यालय में विकसित।
| डेटासेट | सटीकता | प्रिसिजन | रिकॉल | F1 स्कोर | बेसलाइन की तुलना में |
|---|
| TruthfulQA (मिश्रित) | 91% | 100% | 40% | 57.1% | +7% |
| FEVER (पूर्ण रन) | 73% | 20% | 26.7% | 22.9% | −12% |
| रणनीति | सटीकता | प्रिसिजन | रिकॉल | F1 | सेपरेशन |
|---|
| इंजेक्शन | 99% | 93.8% | 100% | 96.8% | 0.498 |
| विरोधाभास | 92% | 88.9% | 53.3% | 66.7% | 0.311 |
| सूक्ष्म | 88% | 100% | 20.0% | 33.3% | 0.149 |
| एंटिटी स्वैप | 85% | — | 0% | 0% | 0.053 |
| LLM | एम्बेडिंग | सटीकता | प्रिसिजन | रिकॉल | F1 | क्लीन ट्रस्ट | सेपरेशन |
|---|
| Llama 3.3 70B | all-MiniLM-L6-v2 | 91% | 100% | 40% | 57.1% | 0.830 | 0.240 |
| Llama 3.3 70B | snowflake-arctic-embed2 | 91% | 100% | 40% | 57.1% | 0.799 | 0.188 |
| Qwen 3.5 35B | all-MiniLM-L6-v2 | 71% | 25.0% | 46.7% | 32.6% | 0.633 | 0.161 |
| Qwen 3.5 35B | snowflake-arctic-embed2 | 71% | 28.1% | 60.0% | 38.3% | 0.653 | 0.199 |
| रणनीति | सटीकता | प्रिसिजन | रिकॉल | F1 | Δ |
|---|
| निर्देश इंजेक्शन | 97.5% | 85.7% | 100.0% | 92.3% | 0.542 |
| विरोधाभास | 85.0% | — | 0.0% | 0.0% | 0.156 |
| सूक्ष्म हेरफेर | 85.0% | — | 0.0% | 0.0% | 0.066 |
| एंटिटी स्वैप | 72.5% | 29.2% | 58.3% | 38.9% | 0.291 |
| मिश्रित | 86.2% | 100.0% | 8.3% | 15.4% | 0.163 |
| LLM | सटीकता (τ=0.5) | ROC-AUC | इष्टतम τ* |
|---|
| Llama 3.3 70B | 91% | 0.81 | 0.71 |
| Mistral 7B Instruct | 87% | 0.79 | 0.58 |
| Qwen 3.5 35B | 69–71% | 0.73 | 0.43 |
| ट्रस्ट स्तर |
|---|
| स्कोर रेंज |
|---|
| अर्थ |
|---|
| HIGH | > 0.8 | विश्वसनीय |
| MEDIUM | 0.5 - 0.8 | महत्वपूर्ण हो तो सत्यापित करें |
| LOW | 0.3 - 0.5 | संभवतः समस्याएँ हैं |
| VERY_LOW | < 0.3 | भरोसा न करें |