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

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

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

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

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

Категории

Все категории
Loading categories
TrustworthyRAG — Оценочный агент для обнаружения дезинформации и отравления знаний в системах генерации с дополненной выборкой. | Kitploit
Инструменты/GitHubGitHub/gpt-laboratory/trustworthyrag
Анализ КодаМашинное ОбучениеСтатьи и ИсследованияБезопасность ИИОбнаружение Аномалий
GitHubgpt-laboratory/trustworthyrag

TrustworthyRAG

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

Репозиторий
1 месяц назадЕщё не проверено

Популярное

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

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

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

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

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

Trustworthy RAG

Агент оценки для обнаружения дезинформации и отравления знаний в системах генерации с дополненной выборкой (RAG).

Обзор

В этом проекте реализован фреймворк Trustworthy RAG со встроенным агентом оценки (Evaluation Agent), который оценивает надёжность ответов RAG с помощью трёх взаимодополняющих компонентов анализа:

  • NLI Verifier — проверка фактической согласованности на основе вывода на естественном языке (BART-MNLI)
  • Poison Detector — обнаружение состязательного контента по множеству сигналов (лингвистические, структурные, семантические сигналы, внутри-/междокументный NLI)
  • Trust Index Calculator — взвешенная композитная оценка, объединяющая фактологичность, согласованность и устойчивость к отравлению

Система формирует оценку доверия (Trust Score) (0-1) для каждого ответа RAG, что позволяет автоматически обнаруживать атаки отравления знаний и галлюцинированный контент.

Этот репозиторий является исследовательским артефактом конференционной статьи ICSEA 2026 с тем же названием. Исходные файлы LaTeX см. в [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/), а также в разделе Статья ниже.

Архитектура

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

Структура проекта

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

Установка

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

Использование

Запуск полного набора экспериментов

root@kitploit:~
python run_experiment.py --all

Эта команда запускает все эксперименты и автоматически генерирует графики:

  • Основной эксперимент TruthfulQA (100 образцов, смешанное отравление)
  • Эксперименты по стратегиям (по 100 образцов: инъекция, противоречие, подмена сущностей, тонкая манипуляция)
  • Эксперимент на наборе данных FEVER (100 образцов)
  • Абляционное исследование (5 конфигураций весов, по 60 образцов)

Другие варианты экспериментов

root@kitploit:~
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: Llama 3.3 70B (основная), Qwen 3.5 35B или Mistral 7B Instruct (для сравнения)
  • Эмбеддинги: all-MiniLM-L6-v2 (локально) или snowflake-arctic-embed2 (API)
  • K: глубина поиска — K=3 (быстрее) или K=5 (стандартная, по умолчанию)

Также можно зафиксировать генератор в неинтерактивном режиме через переменную окружения LLM_MODEL (соответствует configs/config.yaml и MODEL_DESCRIPTIONS из run_experiment.py):

root@kitploit:~
$env:LLM_MODEL = "mistral-7b-instruct"   # or "qwen3.5:35b", "llama3.3:70b"
python run_experiment.py --all

Пример применения: безопасная разработка (SDLC)

Воспроизведите эксперимент с ассистентом безопасного кодинга (40 правил OWASP/CWE) из корня проекта. Он переиспользует существующие ExperimentRunner + PoisonedDatasetGenerator и записывает результаты в data/experiments/seccode_*.json:

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

Повторная генерация только графиков

root@kitploit:~
python generate_charts.py

Запуск тестов

root@kitploit:~
pytest                    # All tests (includes slow model-loading tests)
pytest -m "not slow"      # Fast tests only (~0.4s)
pytest --cov=src          # With coverage report

Ключевые результаты

Основные результаты (Llama 3.3 70B + all-MiniLM-L6-v2, TruthfulQA, K=5, 100 образцов)

Наивная базовая линия «всегда доверять»: 85% (TruthfulQA), 85% (FEVER). FEVER показывает результат ниже базовой линии — индекс доверия требует калибровки под конкретный домен для коротких фактических утверждений.

С 95% доверительными интервалами (Уилсон для долей; перцентильный бутстрэп, B=20,000, для F1) основной результат TruthfulQA со смешанным отравлением таков: точность 91% (ДИ 83.8–95.2), полнота 40% (ДИ 19.8–64.3), F1 57.1% (ДИ 25.0–80.0), Δ=0.225. Интервалы широкие, поскольку в каждом прогоне всего 15 отравленных образцов; мы приводим их, чтобы не завышать точность оценок.

Обнаружение по стратегиям (TruthfulQA, по 100 образцов)

Факторная сетка 2×2 (K=3, TruthfulQA, 100 образцов)

Ключевые выводы:

  • Инвариантность к эмбеддингам для Llama: обе модели эмбеддингов дают идентичные результаты обнаружения — индекс доверия определяется LLM, а не поиском
  • Проблема стиля генерации Qwen: многословные/уклончивые ответы снижают NLI-энтейлмент для чистых образцов → точность 71%, на 14 процентных пунктов ниже наивной базовой линии 85%
  • Нулевой результат чувствительности к K: для Llama 3.3 70B K=5 даёт ту же эффективность обнаружения, что и K=3 — разделение оценок доверия меняется всего на 0.015; обнаружение упирается в сложность стратегии атаки, а не в глубину поиска

Пример применения: безопасная разработка (SDLC) (OWASP/CWE)

Программно-инженерное применение агента: ассистент безопасного кодинга, который выполняет поиск по курируемой базе знаний из 40 правил, взятых из OWASP Top 10 и CWE (например, параметризованные запросы против SQL-инъекций, адаптивное хеширование паролей, настройка TLS). По запросу разработчика извлекаются рекомендации, которые агент оценки проверяет до того, как LLM сформирует свой ответ. Мы отравляем 30% правил пятью стратегиями в качестве security-пейлоадов (например, поддельная директива CORRECTION: или подменённый идентификатор CWE).

Обнаружение по стратегиям (Llama 3.3 70B + all-MiniLM-L6-v2, K=5):

  • Инъекция блокируется почти идеально (F1 92.3%, Δ=0.54): агент надёжно перехватывает явные попытки внедрить небезопасные рекомендации (например, отключение валидации ввода), прежде чем они дойдут до разработчика.
  • Полнота для подмены сущностей вырастает до 58% (против 0% на открытом домене TruthfulQA): изменение структурированного идентификатора CWE порождает междокументные несоответствия, которые способны уловить NLI-сигналы.
  • Противоречие и тонкая манипуляция по-прежнему ускользают (полнота 0%): тихо ослабленная рекомендация не оставляет видимых артефактов и проходит проверку — опасный, малозаметный случай в процессе обеспечения безопасности.

Сравнение трёх LLM и независимость от порога

Помимо рабочей точки τ=0.5, индекс доверия демонстрирует сильный, не зависящий от порога сигнал для трёх LLM (объединённые прогоны со смешанными стратегиями):

  • Стиль генерации важнее размера модели: Mistral 7B превосходит Qwen 3.5 35B, несмотря на то что она примерно в 5× меньше, — уклончивые и многословные ответы Qwen снижают NLI-энтейлмент.
  • τ — гиперпараметр, специфичный для LLM: трём моделям требуются три разных оптимальных порога (0.71 / 0.58 / 0.43). Калибровка τ только по оценкам чистых образцов восстанавливает точность Qwen с 65.5% до 74.5% за счёт сокращения ложных срабатываний.
  • Все три модели находятся значительно выше случайного уровня (ROC-AUC > 0.70), поэтому низкая точность Qwen при τ=0.5 — это артефакт порогового решения, а не отсутствие сигнала.

Стабильность и накладные расходы

  • Разброс от прогона к прогону невелик: за 5 независимых повторов смешанная конфигурация даёт точность 90.6 ± 0.5% и F1 56.1 ± 1.3%; инъекция инвариантна на уровне 99.0 ± 0.0%. Вердикты определяются извлечёнными свидетельствами, а не формулировкой отдельной генерации.
  • Накладные расходы: оценка добавляет ≈14.7 с/образец (примерно в 17 раз к базовому RAG); основную долю вносят до 20 CPU-проходов NLI при K=5. Это подходит для пакетного/асинхронного использования (например, в качестве шлюза code-review/CI); ожидается, что инференс на GPU сократит это время до менее 2 с.

Технологический стек

  • LLM: Llama 3.3 70B (основная), Qwen 3.5 35B и Mistral 7B Instruct (для сравнения) — кластер FARMI, Университет Тампере
  • NLI-модель: facebook/bart-large-mnli
  • Эмбеддинги: all-MiniLM-L6-v2 (384-мерн.), snowflake-arctic-embed2 (1024-мерн.)
  • Векторное хранилище: FAISS (CPU)
  • Наборы данных: TruthfulQA, FEVER (HuggingFace) и база знаний по безопасному кодингу из 40 курируемых правил OWASP Top 10 / CWE
  • Фреймворк: Python 3.10+, PyTorch, Transformers, LangChain

Формула индекса доверия

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

Вклад

  • Автономный агент оценки (Evaluation Agent), работающий как защитное промежуточное ПО внутри цикла инференса RAG
  • Детектор отравления по пяти сигналам с агрегацией, взвешенной по релевантности (лингвистические, структурные, внутри-/междокументный NLI, семантический выброс)
  • Композитный индекс доверия (Trust Index) с нелинейным демпфером для контекстов с высокой степенью заражения
  • Описание иерархии обнаружения по стратегиям (инъекция распознаётся → подмена сущностей не обнаруживается)
  • Доказательство того, что стиль генерации важнее размера модели, а также метод калибровки порога для каждой LLM
  • Программно-инженерный пример применения безопасного кодинга (OWASP/CWE) в SDLC
  • Воспроизводимый фреймворк, генератор атак и релиз экспериментов

Статья

  • Конференционная статья — Trustworthy RAG: An Evaluation Agent for Detecting Misinformation and Knowledge Poisoning in Generative AI Systems, ICSEA 2026. Исходные файлы LaTeX — в [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/).

Скомпилированный PDF намеренно не включён в этот релиз; соберите его из исходных файлов LaTeX.

Авторы и контакты

Авторы конференционной статьи ICSEA 2026 — Университет Тампере (TUNI).

Balkrishna Giri, исследователь (магистр наук), факультет информационных технологий и коммуникационных наук, Университет Тампере
Email: [email protected], [email protected]

Md Toufique Hasan, докторант, GPT Lab, факультет информационных технологий и коммуникационных наук, Университет Тампере
Email: [email protected]

Соавторы — факультет информационных технологий и коммуникационных наук, Университет Тампере:

  • Dr. Jussi Rasku — [email protected]
  • Dr. Muhammad Waseem — [email protected]
  • Professor Dr. Pekka Abrahamsson — [email protected]

Разработано в GPT Lab, Университет Тампере.

Скачать инструмент
Набор данныхТочностьПрецизионностьПолнота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ЭмбеддингиТочностьПрецизионностьПолнотаF1Trust (чист.)Разделение
Llama 3.3 70Ball-MiniLM-L6-v291%100%40%57.1%0.8300.240
Llama 3.3 70Bsnowflake-arctic-embed291%100%40%57.1%0.7990.188
Qwen 3.5 35Ball-MiniLM-L6-v271%25.0%46.7%32.6%0.6330.161
Qwen 3.5 35Bsnowflake-arctic-embed271%28.1%60.0%38.3%0.6530.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 70B91%0.810.71
Mistral 7B Instruct87%0.790.58
Qwen 3.5 35B69–71%0.730.43
Уровень доверияДиапазон оценкиЗначение
HIGH> 0.8Надёжный
MEDIUM0.5 - 0.8Проверить, если важно
LOW0.3 - 0.5Вероятно, есть проблемы
VERY_LOW< 0.3Не доверять