Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
RAGSieve — Самореферентный локальный контраст для обнаружения отравления знаний в генерации с дополнением на основе извлечения | Kitploit
Инструменты/GitHubGitHub/xrazymee/ragsieve
Оборонительные ИнструментыМашинное ОбучениеСтатьи и ИсследованияБезопасность ИИОбнаружение АномалийСостязательная Атака
GitHubxrazymee/ragsieve

RAGSieve

Самореферентный локальный контраст для обнаружения отравления знаний в генерации с дополнением на основе извлечения

Репозиторий
14 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

RAGSieve

Эталонная реализация для «RAGSieve: самореференсный локальный контраст для обнаружения отравления знаний в поисково-дополненной генерации».

RAGSieve обнаруживает документы с отравлением знаний в двух контрольных точках системы поисково-дополненной генерации (RAG). RAGSieve-Query (RSQ) — это онлайн-фильтр: он оценивает пять документов, отобранных для генерации, относительно позиций 6--20 для текущего запроса. RAGSieve-Graph (RSG) — это офлайн-сканер: он оценивает каждый документ корпуса относительно его собственного семантико-лексического окружения. Пакет содержит реализации, использованные в препринте, точный поиск по полному корпусу, фильтрацию и повторное заполнение Top-5, оценку на уровне документов и компактный запускаемый пример.

Схема развёртывания RAGSieve

Содержимое репозитория

root@kitploit:~
data/datasets/       NQ, HotpotQA, and MS MARCO text knowledge bases
data/demo/           four target queries and 20 example poison documents
docs/                schemas, prompts, and RAGSieve method diagrams
src/ragsieve/         RSQ, RSG, retrieval, filtering, and metrics
tests/               unit tests for the detector rules and data path
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

Три опубликованные базы знаний содержат 128,044 документов NQ, 9,961 документов HotpotQA и 8,239 пассажей MS MARCO. Они включают исходный текст, 1,000 сэмплированных запросов, qrels, целевые ответы и фиксированное подмножество атак на 100 запросов. Плотные векторы генерируются локально и никогда не являются частью репозитория.

Демо содержит по две реализации PR-W и CEM-C из NQ, по пять отравленных документов на каждый запрос. Эти атаки дают короткий и наглядный путь через оба детектора, не поставляя полную коллекцию атак или реализации генерации атак.

Установка

Рекомендуются Python 3.11 или 3.12, uv и GPU с поддержкой CUDA.

root@kitploit:~
bash install.sh

При первом использовании детектор загружает модели Hugging Face, указанные в статье.

Для сквозного QA скопируйте общую конфигурацию, совместимую с OpenAI, и заполните три значения:

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

Тот же endpoint и модель генерируют ответы и выполняют семантическую оценку ASR.

Быстрая оценка

root@kitploit:~
bash run_demo.sh

Эта команда строит локальный индекс BGE-M3 для снимка RSG из 520 документов, запускает RSQ на подготовленных контекстах поиска по полному корпусу, фильтрует и повторно заполняет Top-5 для генерации и оценивает оба детектора. Результаты записываются в outputs/demo/:

  • rsq-metrics.json: AUROC RSQ и обнаружение отравления при удалении 5% чистых документов;
  • rsg-metrics.json: метрики RSG на снимке корпуса без запросов;
  • filtered-top5.jsonl: пять документов, сохранённых для генерации после RSQ.

На опубликованных примерах RSQ достигает 100% AUROC и 100% обнаружения отравления при удалении 5% чистых документов как для PR-W, так и для CEM-C. RSG достигает 100% AUROC и 100% обнаружения отравления при том же бюджете удаления чистых документов; его фиксированное правило удаляет 85% отравленных документов и 0% чистых. Эти значения являются проверкой работоспособности на подобранном демо, а не агрегированным результатом статьи.

Поля ground-truth читаются только командами оценки. Они не передаются в RSQ или RSG.

Построение полных локальных индексов

root@kitploit:~
bash data_preparation.sh

По умолчанию строятся 3 набора данных x 3 поисковика, оценённые в статье: BGE-M3, E5-large-v2 и all-MiniLM-L6-v2. Результат помещается в игнорируемый каталог data/indices/. Подмножество можно выбрать без редактирования скрипта:

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

Каждый индекс строится по полному опубликованному корпусу с настройками пулинга, префикса, усечения и косинусной нормализации из статьи.

RSQ: онлайн-фильтрация во время запроса

Подготовьте чистый поиск и поиск со встроенными атаками:

root@kitploit:~
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 выполняет точный поиск по полному корпусу один раз для каждого запроса, отдельно оценивает внедрённые документы и объединяет статические близости в топ-20. Запустите RSQ, вычислите метрики на уровне документов и повторно заполните контекст генерации:

root@kitploit:~
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 объединяет четыре источника свидетельств: концентрацию ответных якорей, целостность системы письма, локальную неожиданность языковой модели и переход согласования с запросом. Все настройки по умолчанию в CLI соответствуют настройкам статьи.

RSG: офлайн-проверка корпуса

RSG потребляет текст документов и векторы, уже поддерживаемые индексом RAG:

root@kitploit:~
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 строит точный граф верхних 16 косинусных соседей, сохраняет семантически близких и лексически далёких соседей, измеряет рост плотности каждого документа над собственным базовым уровнем окружения и объединяет эмпирический хвост корпуса с целостностью системы письма.

Совместное развёртывание

Совместное развёртывание сначала сканирует корпус с помощью RSG, исключает идентификаторы карантинных документов из поиска, а затем применяет RSQ к полученному топ-20:

root@kitploit:~
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 \
  --exclude-predictions outputs/demo/rsg-predictions.jsonl \
  --output outputs/demo/joint-contexts.jsonl \
  --device cuda:0

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

Соответствие статье

Релиз воспроизводит результаты RAGSieve и абляции; опубликованные базовые результаты получены из реализаций, указанных в статье.

Рисунки 1 и 2 являются пояснительными схемами системы, а не сгенерированными графиками данных. Их SVG-исходники включены как docs/ragsieve-overview.svg и docs/ragsieve-method.svg. Подробные схемы и ожидаемый протокол оценки приведены в docs/ARTIFACT.md.

Тесты

root@kitploit:~
uv run pytest
uv run ruff check .

Модульные тесты не загружают веса моделей.

Лицензия

Реализация RAGSieve распространяется под лицензией MIT. Опубликованные наборы данных и веса моделей сохраняют свои исходные лицензии.

Скачать инструмент
Результат из статьиПуть к артефакту
Таблица 1, обнаружение документов RSQdetect, затем evaluate по девяти подготовленным системам.
Таблицы 2--3 и рисунок 4, онлайн-QAfilter-contexts с последующим qa на сохранённом Top-5.
Таблица 4 и рисунок 5A, абляция RSQПокомпонентные поля, записываемые detect.
Таблица 5, обнаружение документов RSGdetect-graph, затем evaluate-graph для каждого снимка корпуса.
Таблицы 6--7 и рисунок 5B, QA и абляция RSGПокомпонентные поля RSG и его список карантинных документов.
Рисунок 6, объём инъекцийПовторите подготовку контекстов с 1, 3, 5 или 10 документами на запрос.
Таблица 8 и рисунок 7, совместное развёртываниеИсключение через RSG с последующим обнаружением RSQ и повторным заполнением Top-5.
Рисунок A1 в приложении и таблица A2Групповая оценка по выводимым полям dataset и encoder.