概要
ProofOfThought は、 Z3定理証明 と LLM を組み合わせた推論フレームワーク。 OpenAI API を利用し、自然言語クエリに論理的な答えを返す仕組み。 バッチ評価 や 簡単なインストール方法 を提供。 高レベルAPIと低レベルDSLの 2層アーキテクチャ を採用。 詳細やサンプルは examples/ ディレクトリや arXiv論文 で確認可能。
ProofOfThought:LLMとZ3による推論フレームワーク概要
- ProofOfThought :大規模言語モデル(LLM)と Z3定理証明器 を連携した推論システム
- 自然言語クエリ を入力し、論理的根拠に基づく回答を生成
- OpenAI API を利用したLLMクライアントの設定
- z3dsl.reasoning モジュールによる高水準な推論API提供
- バッチ評価 機能で複数クエリの一括検証が可能
クイックスタート手順
- OpenAIクライアント の初期化
from openai import OpenAIclient = OpenAI(api_key="...")
- ProofOfThoughtインスタンス の作成
from z3dsl.reasoning import ProofOfThoughtpot = ProofOfThought(llm_client=client)
- クエリ実行と回答取得
result = pot.query("Would Nancy Pelosi publicly denounce abortion?")print(result.answer)# 出力例: False
バッチ評価手順
- バッチ評価パイプライン の利用
from z3dsl.reasoning import EvaluationPipelineevaluator = EvaluationPipeline(pot, output_dir="results/")
- データセット指定による評価実行
result = evaluator.evaluate(dataset="strategyqa_train.json", max_samples=10)print(f"Accuracy: {result.metrics.accuracy:.2%}")# 精度表示
インストール方法
- 必要パッケージのインストール
pip install z3-solver openai scikit-learn numpy
アーキテクチャ
- 2層構造アーキテクチャ
- 上位層:
z3dsl.reasoning(高レベルAPI、Pythonインターフェース) - 下位層:
z3dsl(JSONベースのZ3定理証明器インターフェース)
- 上位層:
- 一般ユーザー は高レベルAPI利用を推奨
追加情報・サンプル
- examples/ ディレクトリでAzure OpenAI対応例も含むサンプルを提供
- 詳細情報・論文 :
- arXiv論文:https://arxiv.org/abs/2409.17270
参考リンク
- arXiv:2409.17270 (ProofOfThoughtの詳細な技術解説)