Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

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

TrustworthyRAG

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

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

人気

すべて見る →

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

すべてのツールを探索

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

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

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

また、LLM_MODEL 環境変数を使用してジェネレータを非対話的に固定することもできます(configs/config.yaml および run_experiment.py の MODEL_DESCRIPTIONS に対応):

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はベースラインを下回っています — 信頼指数(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サンプル)

2×2要因グリッド(K=3、TruthfulQA、100サンプル)

主な発見:

  • 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 92.3%、Δ=0.54):エージェントは、安全でないアドバイス(例:入力検証の無効化)を挿入する露骨な試みを、開発者に届く前に確実に検知します。
  • エンティティ置換の再現率は58%に上昇(オープンドメインのTruthfulQAでは0%):構造化されたCWE識別子の改変は、NLIシグナルが検出できる文書間の不整合を生み出します。
  • 矛盾と巧妙な改変は依然として検出を逃れます(再現率0%):静かに弱められた推奨事項は表面に痕跡を残さずレビューを通過します — セキュリティワークフローにおいて危険で視認性の低いケースです。

3つのLLM比較と閾値独立性

τ=0.5の動作点を超えても、信頼指数は3つのLLMにわたって強い閾値非依存のシグナルを持ちます(混合戦略の実行をプールしたもの):

  • 生成スタイルはモデルサイズより重要:Mistral 7Bは約5分の1のサイズでありながらQwen 3.5 35Bを上回ります — Qwenの婉曲的で冗長な回答はNLI含意を低下させます。
  • τはLLM固有のハイパーパラメータ:3つのモデルは異なる最適閾値(0.71 / 0.58 / 0.43)を必要とします。クリーンサンプルのみのスコアでτをキャリブレーションすると、偽陽性を削減し、Qwenの精度を65.5% → 74.5%に回復させます。
  • 3つすべてが偶然水準をはるかに上回る(ROC-AUC > 0.70)ため、τ=0.5でのQwenの低い精度は、シグナルの欠如ではなく閾値設定のアーティファクトです。

安定性とオーバーヘッド

  • 実行間のばらつきは小さい:独立した5回の反復で、混合構成は精度90.6 ± 0.5%、F1 56.1 ± 1.3%を達成。インジェクションは99.0 ± 0.0%で不変です。判定は、単一生成時の言い回しではなく、取得されたエビデンスによって決まります。
  • オーバーヘッド:評価によりサンプルあたり約14.7秒(ベースラインRAGの約17倍)が追加され、その大部分はK=5での最大20回のCPU NLIパスによるものです。これはバッチ/非同期での使用(例:コードレビュー/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ルールからなるセキュアコーディングKB
  • フレームワーク: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%削減されます。

信頼レベルスコア範囲

貢献

  • RAG推論ループ内で防御的ミドルウェアとして動作する自律型評価エージェント(Evaluation Agent)
  • 関連性重み付き集約を備えた5シグナル・ポイズン検出器(言語学的、構造的、文書内/文書間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 protected]、[email protected]

Md Toufique Hasan、博士課程研究員、GPT Lab、情報技術・コミュニケーション科学部、タンペレ大学
メール: [email protected]

共著者 — 情報技術・コミュニケーション科学部、タンペレ大学:

  • Jussi Rasku博士 — [email protected]
  • Muhammad Waseem博士 — [email protected]
  • 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埋め込み精度適合率再現率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
戦略精度適合率再現率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信頼しない