Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 RAG Benchmark & Agentic RAG Evaluation System

再現性・記録性・比較性を重視した設計
Mistral Small 3.2 vs Phi-4 Mini の包括的性能比較システム

📋 プロジェクト概要

本プロジェクトは、Traditional RAGからAdvanced Agentic RAGまで3段階の進化を実装し、AI言語モデルの性能を多角的に評価するベンチマークシステムです。

🎯 主要目的

  • モデル比較: Mistral Small 3.2 vs Phi-4 Mini の詳細な性能分析
  • 技術進化: Traditional RAG → Simple Agentic RAG → Advanced Agentic RAG
  • 評価の標準化: 再現可能で記録性・比較性に優れた評価フレームワーク

🏗️ システム構成

RAG/
├── 📁 rag_benchmark/          # Phase 1: Traditional RAG
│   ├── mistral_runner.py      # Mistralモデル実行
│   ├── phi_runner.py          # Phi4モデル実行
│   └── data/
│       ├── corpus.jsonl       # 知識ベース (45文書)
│       └── queries.txt        # 評価クエリ (5問)
├── 📁 agent_eval/             # エージェント評価ツール
│   ├── calculator.py          # 計算機能
│   └── search.py              # 検索機能
├── 📄 agentic_rag_standalone.py # Phase 2: Simple Agentic RAG
├── 📄 phase3_agentic_rag.py     # Phase 3: Advanced Agentic RAG
├── 📁 phase3_eval/              # Phase 3評価結果
└── 📁 .venv/                    # Python仮想環境

1. Python仮想環境の作成・アクティベート

# 仮想環境作成(初回のみ)
python -m venv .venv


## 🚀 3段階のRAGシステム進化

### **Phase 1: Traditional RAG**
```python
# 基本的なRAG実装
class SimpleRetriever:
    - BM25による関連度スコアリング
    - 単一戦略による情報検索
    - 基本的な応答生成

Phase 2: Simple Agentic RAG

# 反復検索機能付きRAG
class AgenticRetriever:
    - 自律的な継続判断
    - 反復的情報収集
    - 動的検索終了

Phase 3: Advanced Agentic RAG

# 多戦略・信頼度評価RAG
class MultiStrategyRetriever:
    - 5種類の検索戦略 (BM25, Semantic, Keyword, Hybrid, Targeted)
    - 動的戦略選択システム
    - 信頼度ベース評価 (一貫性・完全性・関連性)
    - 自律的プロセス制御

📊 最新評価結果 (2025-09-27)

パフォーマンス比較

モデル 平均処理時間 平均反復数 平均信頼度 戦略多様性
MISTRAL 21.4秒 1.8回 0.35 1.4
PHI4 57.5秒 1.8回 0.37 1.4

モデル特性分析

🚀 MISTRAL Small 3.2

  • 高速処理: PHI4の約1/3の処理時間
  • 効率重視: 早期終了による計算資源節約
  • ⚠️ 信頼度: やや低め (0.35)

🔍 PHI4 Mini

  • 慎重な分析: より詳細な情報処理
  • 信頼度: わずかに高い (0.37)
  • ⚠️ 処理時間: MISTRALの約3倍

検索戦略活用状況

🎯 Semantic検索: 最も頻繁に使用 (意味的類似性重視)
🔄 Hybrid検索: 複雑な質問で自動選択
📊 BM25検索: 関連度スコアリング
🔍 Keyword検索: 完全一致検索
🎪 Targeted検索: 質問タイプ特化

🛠️ 技術スタック

Core Technologies

  • Python 3.12.10 - メイン言語
  • Ollama API - ローカルLLM実行環境
  • scikit-learn - BM25実装・機械学習
  • pandas & numpy - データ処理・分析

AI Models

  • Mistral Small 3.2 - 効率性重視モデル
  • Phi-4 Mini - 精度重視モデル

RAG Components

  • Vector Database - 意味検索用埋め込み
  • BM25 Retriever - 統計的関連度
  • Multi-Strategy System - 動的戦略選択

🎯 Phase 3の革新的機能

🔍 Multi-Strategy Search

strategies = {
    'bm25': BM25による統計的検索,
    'semantic': ベクトル埋め込みによる意味検索,
    'keyword': キーワード完全一致検索,
    'hybrid': 複数戦略の統合,
    'targeted': 質問タイプ別特化検索
}

📊 Confidence Evaluation

confidence_factors = {
    'consistency': 複数結果間の一貫性,
    'completeness': 質問に対する網羅性,
    'relevance': 検索結果の適合度
}
# → HIGH(0.7+) / MEDIUM(0.4-0.7) / LOW(0.4-)

🤖 Autonomous Process Control

  • 動的継続判断: 信頼度に基づく検索継続・終了
  • 戦略自動選択: 質問特性に応じた最適戦略選択
  • 反復制限: 最大4回の検索反復で効率性確保

📈 評価フレームワーク

5つの評価軸

  1. ⏱️ Latency評価: 応答時間とスループット
  2. 🎯 Response Quality: 回答の正確性と有用性
  3. 🔧 Tool Selection: エージェント機能の適切性
  4. 🤖 Autonomous Behavior: 自律的判断能力
  5. 📊 Confidence Scoring: 情報信頼性評価

記録・再現性

  • タイムスタンプ付きログ: 全実行過程の詳細記録
  • 設定値保存: 再現可能な評価環境
  • マークダウン出力: 可読性の高い結果レポート

📚 データセット

Knowledge Base (corpus.jsonl)

  • 文書数: 45文書 (5文書→45文書に拡張)
  • 分野: AI・機械学習、新技術、社会・政策
  • 構造: JSON形式 (title, content)

Query Set (queries.txt)

1. 機械学習にはどのような種類がありますか?
2. 深層学習の主な応用分野は何ですか?
3. RAGシステムの利点を説明してください。
4. 日本のAI研究の歴史について教えてください。
5. 自然言語処理の最新技術は何ですか?

🚀 Quick Start

詳細な実行手順は QUICK_GUIDE.md をご確認ください。

環境構築

# 1. 仮想環境作成・アクティベート
python -m venv .venv
.venv\Scripts\activate  # Windows
source .venv/bin/activate  # Linux/Mac

# 2. 依存関係インストール
pip install requests pandas numpy scikit-learn

# 3. Ollamaモデル準備
ollama pull mistral
ollama pull phi4

システム実行

# Phase 1: Traditional RAG
python rag_benchmark/run_rag_eval.py

# Phase 2: Simple Agentic RAG  
python agentic_rag_standalone.py

# Phase 3: Advanced Agentic RAG
python phase3_agentic_rag.py

📁 実行結果の確認

Phase 3 評価結果

phase3_eval/
├── phase3_mistral_YYYYMMDD_HHMMSS.md    # Mistral詳細結果
├── phase3_phi4_YYYYMMDD_HHMMSS.md       # Phi4詳細結果
└── phase3_summary_YYYYMMDD_HHMMSS.md    # 比較サマリー

結果ファイル構成

  • 詳細ログ: 各質問の検索プロセス・信頼度変遷
  • パフォーマンス: 処理時間・反復数・API呼び出し数
  • 比較表: モデル間の定量的比較

🔬 研究・開発への応用

学術研究

  • RAGシステムの性能評価標準
  • Agentic AIの行動分析
  • 多言語LLMの比較研究

産業応用

  • 企業向けRAGシステム導入指針
  • AIモデル選択支援
  • カスタマーサポート最適化

技術開発

  • 新RAG手法のベンチマーク
  • 信頼度評価アルゴリズム
  • マルチエージェントシステム設計

🤝 貢献・拡張

拡張可能な要素

  • 新モデル追加: Ollama対応モデルの容易な追加
  • 検索戦略: 新戦略アルゴリズムの実装
  • 評価指標: カスタム評価軸の導入
  • データセット: ドメイン特化コーパスの構築

カスタマイズ例

# 新検索戦略の追加
def custom_retrieval_strategy(query, documents):
    # カスタムロジック実装
    return ranked_results

# 新評価指標の追加  
def custom_evaluation_metric(response, ground_truth):
    # カスタム評価実装
    return score

� ライセンス

MIT License - 学術・商用利用可能

📞 サポート

  • Issues: GitHub Issues での質問・バグ報告
  • Documentation: 詳細技術仕様書
  • Examples: サンプル実装とベストプラクティス

🎯 "再現性・記録性・比較性"を重視した次世代RAG評価システム

Built with ❤️ for AI Research & Development