SeraphimSerapis/tool-eval-bench
Tool-calling quality benchmark for LLM serving stacks. 80+ deterministic scenarios testing multi-turn orchestration, safety boundaries, and structured output. Supports vLLM, SGLang, and llama.cpp.
Tool‑Eval‑Bench – LLMツール呼び出しのベンチマーク
内容と目的
Tool‑Eval‑Bench は、大規模言語モデル(LLM)が単一アシスタント会話ワークフローで外部ツールを呼び出す能力を測定するベンチマークスイートです。自己ホスト型推論サーバー(vLLM、llama.cpp、SGLang、LiteLLM、TensorFoldなど)や、GeminiやAnthropicなどのホスト型APIを運用する開発者を対象とし、ツール選択、パラメータ受け渡し、チェーン、エラー回復、安全性、ローカライゼーションのパフォーマンスを再現性のある方法で比較できます。
主な機能
| 機能 | 内容 | 場所 |
|---|---|---|
| 品質ベンチマーク | 52のツール名前空間、多段チェーン、拒否、安全性チェック、ローカライゼーション(ドイツ語中心)などをカバーする69の決定的シナリオ(オプションの28のハードモード対抗ケースを含む)。 | run コマンド |
| スループットと速度 | プレフィルおよび生成速度テスト(llama-benchスタイル)で、深さと並行数のスイープ、投機的復号メトリクスを提供。 | bench コマンド |
| 長文脈検索 | 複数の文脈長での針探しテスト。実効文脈を報告。 | needle フラグ |
| 文脈圧力 | 各シナリオ前に事前入力文脈を変化させ、品質がどこで低下するか確認。 | context‑pressure フラグ |
| 精度スイート | GSM8K、MMLU、IFEvalを同じOpenAI互換アダプタで実行。 | plugin コマンド |
| 決定モデル監査 | オプションのセカンダリモデルがアシスタントの回答を監査(確率、一致)。 | --decision‑judge フラグ |
| 永続化アーティファクト | 完全な会話トレース付きMarkdownレポートとSQLite DB。 | runs/…/*.md および data/benchmarks.sqlite |
| CLIとAPI | 完全なコマンドラインインターフェース、Python非同期API(run_benchmark)。 |
tool‑eval‑bench 実行ファイルおよび tool_eval_bench.api |
| バックエンド自動検出 | ヘッダー、/health、/propsなどからvLLM、llama.cpp、TensorFold、Strata、TabbyAPIなどを検出。 |
run/probe 中に自動 |
| 構成フィンガープリント | バージョン、モデル、コンテキストウィンドウ、量子化、GPU数、投機モードなどを取得し、公平なリーダーボード比較を保証。 | 実行メタデータに保存 |
使用方法(クイックスタート)
# uv(またはDocker)でインストール
uv tool install git+https://github.com/SeraphimSerapis/tool-eval-bench.git
# ローカルサーバーに対して短い15シナリオスイートを実行
tool-eval-bench run --short --base-url http://localhost:8000
# フルベンチマーク(69シナリオ) – 再現可能なシード
tool-eval-bench run --seed 42
# ハードモードとパフォーマンステストを追加
tool-eval-bench run --hardmode --perf --seed 42
# 過去の実行またはリーダーボードを表示
tool-eval-bench history
tool-eval-bench leaderboard
環境変数(TOOL_EVAL_*)または.envファイルで、URL、APIキー、モデル名を保存し、繰り返しのA/Bテストに使用できます。
スコアの意味
- 各シナリオは**2(合格)、1(部分)、0(不合格)**でスコア付けされます。複合スコアは獲得ポイントの割合です。
- 評価星:
- 90‑100% → ★★★★★ 優れている
- 75‑89% → ★★★★ 良い
- 60‑74% → ★★★ 十分
- 40‑59% → ★★ 弱い
- 0‑39% → ★ 不十分
- 安全性違反があると、生スコアに関係なく評価が★★★に制限されることがあります。
--weight-by-difficultyで難しいシナリオに再重み付けし、代替スコアを計算。
役立つ場面
- モデル開発者: 新しいチェックポイントをリリースする前に、ツール呼び出し能力の具体的で再現可能な指標が必要な場合。
- 運用チーム: 同一ワークロードで自己ホスト型バックエンド(vLLM vs. llama.cpp vs. TensorFoldなど)を比較する場合。
- 研究: プロンプト戦略、システムプロンプトの調整、または投機的復号がツール使用に与える影響の研究。
- CIパイプライン: 安全性の回帰でビルドを失敗させることが可能(
--fail‑on‑safety)。
制限と範囲
- モックツールを使用した単一アシスタント会話に焦点を当てており、完全なマルチエージェントシステム、委任、長時間実行される自律エージェントは評価しません。
- 現在のローカライゼーションはドイツ語中心で、他の言語は標準ではカバーされていません。
- 難易度層は作成者の推定であり、大規模なモデル群で校正されたものではありません。
- モックツールの応答には現実的なノイズが含まれますが、それでもシミュレーションであり、実際の外部APIではありません。
上記の情報はすべてリポジトリのREADMEから直接引用したものであり、外部の前提は追加されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch