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

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

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

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

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

Категории

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

TrustworthyRAG

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

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

Популярное

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

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

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

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

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

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/main/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

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

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

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

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):

$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:

$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

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

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

Набор данныхТочностьПрецизионностьПолнотаF1-мераΔ к базовой линии
TruthfulQA (смеш.)91%100%40%57.1%+7%
FEVER (полный прогон)73%20%26.7%22.9%−12%

Наивная базовая линия «всегда доверять»: 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 образцов)

СтратегияТочностьПрецизионностьПолнота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

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

Скачать инструмент