Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
RAGSieve — Selbstreferenzierter lokaler Kontrast zur Erkennung von Wissensvergiftung in der retrievalgestützten Generierung | Kitploit
Tools/GitHubGitHub/xrazymee/ragsieve
DefensivwerkzeugeMaschinelles LernenPapers & ForschungKI-SicherheitAnomalieerkennungAdversarial-Angriff
GitHubxrazymee/ragsieve

RAGSieve

Selbstreferenzierter lokaler Kontrast zur Erkennung von Wissensvergiftung in der retrievalgestützten Generierung

Repository anzeigen
37vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

RAGSieve

Code für RAGSieve: Detecting Knowledge-Poisoned Documents in RAG Without a Trusted Reference.

RAGSieve erkennt Knowledge-Poisoning-Dokumente an zwei Punkten in einem Retrieval-Augmented-Generation-(RAG-)System. RSQ ist ein Online-Filter: Er bewertet die fünf für die Generierung ausgewählten Dokumente gegen die Ränge 6--20 für die aktuelle Anfrage. RSG ist ein Offline-Scanner: Er bewertet jedes Korpusdokument gegen seine eigene semantisch-lexikalische Nachbarschaft. Das Paket enthält die im Paper verwendeten RSQ- und RSG-Implementierungen, exaktes Full-Corpus-Retrieval, Top-5-Filterung und -Nachfüllung, Dokumenten-basierte Evaluierung sowie ein kompaktes lauffähiges Beispiel.

Repository-Inhalt

data/datasets/       NQ, HotpotQA, and MS MARCO text knowledge bases
data/demo/           four target queries and 20 example poison documents
src/ragsieve/     RSQ, RSG, retrieval, filtering, and metrics
install.sh           environment installation
data_preparation.sh  local construction of the nine dense indices
run_demo.sh          end-to-end RSQ and RSG functionality check

Die drei veröffentlichten Wissensbasen enthalten 128.044 NQ-Dokumente, 9.961 HotpotQA-Dokumente und 8.239 MS-MARCO-Passagen. Sie umfassen Rohtext, 1.000 abgetastete Anfragen, qrels, Zielantworten und das feste 100-Anfragen-Angriffssubset. Dichte Vektoren werden lokal erzeugt und sind niemals Teil des Repositorys.

Das Demo enthält zwei PR-W- und zwei CEM-C-Realisierungen aus NQ, mit fünf Poison-Dokumenten pro Anfrage. Diese Angriffe bieten einen kurzen, nachvollziehbaren Pfad durch beide Detektoren, ohne die vollständige Angriffssammlung oder Angriffsgenerierungs-Implementierungen mitzuliefern.

Installation

Python 3.11 oder 3.12, uv und eine CUDA-fähige GPU werden empfohlen.

bash install.sh

Der Detektor lädt die im Paper genannten Hugging-Face-Modelle bei der ersten Verwendung herunter.

Für End-to-End-QA kopieren Sie die gemeinsame OpenAI-kompatible Konfiguration und füllen Sie die drei Werte aus:

cp .env.example .env
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=your-model-name
OPENAI_API_KEY=your-api-key

Derselbe Endpunkt und dasselbe Modell generieren Antworten und führen die semantische ASR-Bewertung durch.

Schnelle Evaluierung

bash run_demo.sh

Dieser Befehl erstellt einen lokalen BGE-M3-Index für den 520-Dokumente-RSG-Snapshot, führt RSQ auf den vorbereiteten Full-Corpus-Retrieval-Kontexten aus, filtert und füllt die Generierungs-Top-5 nach und evaluiert beide Detektoren. Die Ergebnisse werden in outputs/demo/ geschrieben:

  • rsq-metrics.json: RSQ-AUROC und Poison-Erkennung bei 5% Clean-Removal;
  • rsg-metrics.json: RSG-Metriken auf dem anfragefreien Korpus-Snapshot;
  • filtered-top5.jsonl: die fünf für die Generierung nach RSQ beibehaltenen Dokumente.
  • rsg-*-top5.jsonl und joint-*-top5.jsonl: beibehaltene Kontexte für jeden Demo-Angriff nach RSG allein und nach gemeinsamer Filterung. QA ist ein separater, optionaler Befehl.

Mit den veröffentlichten Beispielen erreicht RSQ 100% AUROC und 100% Poison-Erkennung bei 5% Clean-Removal für sowohl PR-W als auch CEM-C. RSG erreicht 100% AUROC und 100% Poison-Erkennung beim selben Clean-Removal-Budget; seine feste Regel entfernt 85% der Poison-Dokumente und 0% der sauberen Dokumente. Diese Werte sind eine Funktionsprüfung auf dem kuratierten Demo, nicht das aggregierte Ergebnis des Papers.

Ground-Truth-Felder werden nur von den Evaluierungsbefehlen gelesen. Sie werden nicht an RSQ oder RSG übergeben.

Erstellen der vollständigen lokalen Indizes

bash data_preparation.sh

Standardmäßig werden die 3 Datensätze x 3 Retriever erstellt, die im Paper evaluiert werden: BGE-M3, E5-large-v2 und all-MiniLM-L6-v2. Die Ausgabe wird im ignorierten Verzeichnis data/indices/ abgelegt. Ein Subset kann ohne Bearbeitung des Skripts ausgewählt werden:

DATASETS="nq" ENCODERS="bge-m3" DEVICE="cuda:0" bash data_preparation.sh

Jeder Index wird aus dem vollständigen veröffentlichten Korpus mit den Pooling-, Präfix-, Trunkierungs- und Cosinus-Normalisierungseinstellungen des Papers erzeugt.

RSQ: Online-Filterung zur Anfragezeit

Bereiten Sie ein sauberes Retrieval und ein Retrieval mit den mitgelieferten Angriffen vor:

uv run ragsieve prepare-contexts \
  --dataset-dir data/datasets/nq \
  --index-dir data/indices/nq/bge-m3 \
  --subset data/demo/subset.json \
  --attacks data/demo/attacks.jsonl \
  --output outputs/demo/contexts.jsonl \
  --device cuda:0

prepare-contexts führt eine exakte Suche über den vollständigen Korpus einmal pro Anfrage durch, bewertet die injizierten Dokumente separat und speichert die Top 100 in ihrer ursprünglichen Reihenfolge. RSQ bewertet Kandidaten 1--5 gegen die Ränge 6--20; die verbleibenden Ränge stehen für die Nachfüllung zur Verfügung. Führen Sie RSQ aus, berechnen Sie Dokumenten-basierte Metriken und füllen Sie den Generierungskontext nach:

uv run ragsieve detect \
  --input outputs/demo/contexts.jsonl \
  --output outputs/demo/rsq-predictions.jsonl \
  --device cuda:0

uv run ragsieve evaluate \
  --predictions outputs/demo/rsq-predictions.jsonl \
  --output outputs/demo/rsq-metrics.json

uv run ragsieve filter-contexts \
  --contexts outputs/demo/contexts.jsonl \
  --predictions outputs/demo/rsq-predictions.jsonl \
  --output outputs/demo/filtered-top5.jsonl

uv run ragsieve qa \
  --input outputs/demo/filtered-top5.jsonl \
  --output outputs/demo/qa-records.jsonl \
  --summary outputs/demo/qa-summary.json \
  --env-file .env

RSQ kombiniert vier Evidenzquellen: Answer-Anchor-Konzentration, Schriftsystem-Integrität, lokale Sprachmodell-Surprisal und einen Query-Alignment-Übergang. Alle Einstellungen in den CLI-Standardwerten sind die Paper-Einstellungen.

RSG: Offline-Korpus-Inspektion

RSG konsumiert Dokumenttext und die bereits vom RAG-Index verwalteten Vektoren:

uv run ragsieve detect-graph \
  --documents data/demo/corpus.jsonl \
  --embeddings data/indices/demo/bge-m3/embeddings.npy \
  --output outputs/demo/rsg-predictions.jsonl \
  --device cuda:0

uv run ragsieve evaluate-graph \
  --predictions outputs/demo/rsg-predictions.jsonl \
  --labels data/demo/labels.jsonl \
  --output outputs/demo/rsg-metrics.json

RSG erstellt den exakten Cosinus-Top-16-Graphen, behält semantisch-nahe und lexikalisch-ferne Nachbarn bei, misst den Dichteanstieg jedes Dokuments über seinen eigenen Nachbarschafts-Floor und kombiniert den empirischen Korpus-Tail mit der Schriftsystem-Integrität.

Gemeinsamer Einsatz

Der gemeinsame Einsatz ist seriell: RSG schließt zuerst Dokumente aus, dann bewertet RSQ die neuen Top-5 gegen die überlebenden Ränge 6--20. Markierte Kandidaten werden entfernt und der Kontext wird einmal aus dem überlebenden Ranking nachgefüllt; Ersatzdokumente werden nicht neu bewertet. Nach bash run_demo.sh ist das PR-W-Beispiel:

uv run ragsieve quarantine-contexts \
  --contexts data/demo/contexts.jsonl \
  --graph-predictions outputs/demo/rsg-predictions.jsonl \
  --condition pr_w \
  --output outputs/demo/serial-pr_w-contexts.jsonl
uv run ragsieve detect \
  --input outputs/demo/serial-pr_w-contexts.jsonl \
  --output outputs/demo/serial-pr_w-rsq.jsonl --device cuda:0
uv run ragsieve filter-contexts \
  --contexts outputs/demo/serial-pr_w-contexts.jsonl \
  --predictions outputs/demo/serial-pr_w-rsq.jsonl \
  --output outputs/demo/joint-pr_w-top5.jsonl

uv run ragsieve qa \
  --input outputs/demo/joint-pr_w-top5.jsonl \
  --output outputs/demo/joint-pr_w-qa.jsonl \
  --summary outputs/demo/joint-pr_w-qa-summary.json \
  --env-file .env
Tool herunterladen