Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
TrustworthyRAG — 検索拡張生成(RAG)システムにおける誤情報と知識ポイズニングを検出するための評価エージェント。 | Kitploit
ツール/GitHubGitHub/gpt-laboratory/trustworthyrag
コード分析機械学習論文と研究AIセキュリティ異常検知
GitHubgpt-laboratory/trustworthyrag

TrustworthyRAG

検索拡張生成(RAG)システムにおける誤情報と知識ポイズニングを検出するための評価エージェント。

リポジトリを見る
703ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Trustworthy RAG

検索拡張生成(RAG)システムにおける誤情報とナレッジポイズニングを検出するための評価エージェント。

概要

このプロジェクトは、統合された評価エージェント(Evaluation Agent)を備えたTrustworthy RAGフレームワークを実装しています。このエージェントは、3つの相補的な分析コンポーネントを用いてRAG応答の信頼性を評価します:

  • NLI Verifier(NLI検証器):自然言語推論(BART-MNLI)による事実整合性チェック
  • Poison Detector(ポイズン検出器):マルチシグナルによる敵対的コンテンツ検出(言語学的、構造的、意味的、文書内/文書間NLI)
  • Trust Index Calculator(信頼指数計算器):事実性、整合性、ポイズン安全性を組み合わせた重み付き複合スコア

本システムは、すべてのRAG応答に対して**信頼スコア(Trust Score、0〜1)**を生成し、ナレッジポイズニング攻撃や幻覚(ハルシネーション)コンテンツの自動検出を可能にします。

このリポジトリは、同名の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(比較用)
  • Embedding:all-MiniLM-L6-v2(ローカル)または snowflake-arctic-embed2(API)
  • K:検索深度 — K=3(高速)または K=5(標準、デフォルト)

また、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

セキュアコーディング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はベースラインを下回っています — 信頼指数(Trust Index)は、短い事実的主張に対してドメイン固有のキャリブレーションを必要とします。

95%信頼区間(比率にはWilson法、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件であるため区間は広く、精度を過大評価しないようこれらの数値を報告しています。

戦略別検出(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サンプル)

LLM埋め込み精度適合率再現率F1クリーン信頼度分離度
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

主な発見:

  • Llamaにおける埋め込み非依存性:両方の埋め込みモデルで同一の検出結果が得られます — 信頼指数は検索ではなくLLMに依存します
  • Qwenの生成スタイルの問題:冗長・婉曲的な出力により、クリーンサンプルに対するNLI含意が低下します → 精度71%、ナイーブベースラインの85%を14ポイント下回る
  • K感度のヌル結果:Llama 3.3 70BではK=5はK=3と同一の検出性能を生みます — 信頼スコアの分離度はわずか0.015しか変化しません。検出は、検索深度ではなく攻撃戦略の難易度によって律速されます

セキュアコーディングSDLCユースケース(OWASP/CWE)

このエージェントのソフトウェア工学的応用:OWASP Top 10とCWEから抽出した40のルール(例:SQLインジェクション対策のパラメータ化クエリ、適応型パスワードハッシュ、TLS設定)からなる厳選ナレッジベースを検索するセキュアコーディング支援ツールです。開発者のクエリで取得されたガイダンスは、LLMが推奨事項を出力する前に評価エージェントによってスクリーニングされます。ルールの30%に対して、5つの戦略をセキュリティペイロードとしてポイズニングします(例:偽のCORRECTION:ディレクティブ、置換されたCWE識別子)。

戦略別の検出結果(Llama 3.3 70B + all-MiniLM-L6-v2、K=5):

戦略精度適合率再現率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
ツールをダウンロード