BFCL(Berkeley Function Calling Leaderboard)(ビーエフシーエル バークレーファンクションコーリングリーダーボード)
LLMが外部関数・ツールを正確に呼び出す能力を評価するベンチマーク。バークレー大学が2024年公開、2,000問・7カテゴリで関数引数の正確性・JSON出力精度を測定。
BFCL とは
BFCL(Berkeley Function Calling Leaderboard、バークレー関数呼び出しリーダーボード)は、2024年2月にUC Berkeley SkyComputingグループが公開したLLM評価ベンチマークです。LLMが外部APIや関数を正確に呼び出す能力(Function Calling / Tool Use)を体系的に測定します。
ChatGPT Plugins・OpenAI Function Calling・Claude Tool Useなどの登場により、LLMが単なる会話AIを超えて外部サービスと連携する「AI Agent」として動作するユースケースが急増しています。BFCLはこのトレンドに対応し、「どのモデルが最も正確に関数を呼び出せるか」を客観的に評価します。
技術仕様と評価方法
BFCLは以下の構成で評価を実施:
| 項目 | 仕様 |
|---|---|
| 問題総数 | 2,000問 |
| カテゴリ数 | 7カテゴリ |
| 対応言語 | Python / Java / JavaScript / SQL / RESTful API / Bash / Go |
| 評価指標 | 関数選択正解率・引数値正解率・型一致率・JSON構造正解率 |
| 評価形式 | 非実行型(コード実行なし・構文・論理評価のみ) |
| 公開ライセンス | Apache 2.0 |
7カテゴリの内訳:
- Simple Function (シンプル1関数呼び出し): 単一API呼び出しの精度
- Multiple Function (複数候補から選択): 類似関数を正しく識別
- Parallel Function (並列呼び出し): 同時に複数関数呼び出しが必要なケース
- Parallel Multiple (並列×複数候補): 最も難易度が高い複合カテゴリ
- Irrelevance Detection (関数不使用判定): 関数呼び出し不要な質問を正しく識別
- REST API (REST API呼び出し): HTTP動詞・エンドポイント・パラメータの正確性
- Java / JavaScript / SQL (言語別): 各プログラミング言語固有の関数構文精度
2024–2025年 主要モデルスコア
| モデル | 総合スコア | Simple | Parallel | Irrelevance |
|---|---|---|---|---|
| Claude 3.5 Sonnet v2 | 90.2% | 97.1% | 83.6% | 92.1% |
| GPT-4o (最新) | 88.3% | 96.2% | 79.4% | 91.5% |
| Claude 3.5 Sonnet | 87.5% | 95.8% | 78.2% | 90.3% |
| GPT-4 Turbo | 83.6% | 94.3% | 74.8% | 87.2% |
| Qwen2.5 72B | 82.1% | 93.5% | 73.4% | 85.6% |
| Gemini 1.5 Pro | 81.9% | 92.1% | 72.5% | 85.4% |
| Mistral Large 2 | 79.4% | 91.2% | 68.7% | 82.1% |
| Llama 3.1 70B | 76.8% | 88.4% | 65.3% | 78.9% |
Parallel Function(並列呼び出し)カテゴリで差が開きやすく、AI Agent構築時の重要指標となっています。
実際のFunction Calling評価例
// 問題例: 株価取得API並列呼び出し
// 質問: "AppleとTeslaの株価を調べて比較してください"
// 正解(Parallel Function呼び出し)
[
{"name": "get_stock_price", "arguments": {"symbol": "AAPL", "currency": "USD"}},
{"name": "get_stock_price", "arguments": {"symbol": "TSLA", "currency": "USD"}}
]
モデルがこの形式で正確にJSONを出力できるかを評価します。
AI Agent構築における重要性
BFCLのスコアはAI Agentシステム構築時の重要指標です:
- LangChain / LangGraph: ツール呼び出し精度がパイプライン成功率を直接左右
- OpenAI Assistants API: Function Callingの精度でReACT Agent性能が決定
- Anthropic Claude Tool Use: 複数ツール並列呼び出しの正確性
- Google Gemini Function Calling: REST API呼び出し精度の測定に最適
BFCL上位モデルはAI Agent用途での採用優位性があります。
リーダーボードの利用方法
# BFCLリポジトリのクローン
git clone https://github.com/ShishirPatil/gorilla
cd gorilla/berkeley-function-call-leaderboard
# 評価スクリプト実行
python openfunctions_evaluation.py \
--model your-model-name \
--test-category simple
よくある質問(FAQ)
Q1: BFCLはコードを実際に実行して評価するのですか? A: いいえ、BFCLは非実行型評価(Non-executable)です。モデルが出力した関数呼び出しのJSON構造・引数値・型を参照解答と比較する方式で、実行環境の差異によるノイズを排除しています。
Q2: BFCLスコアが高いモデルはAI Agentに最適ですか? A: 強い相関がありますが、Agent全体の性能はPlanning(計画立案)・Memory(記憶管理)・Error Recovery(エラー回復)にも依存します。BFCLはTool Use精度の専門指標として他指標と組み合わせて評価してください。
Q3: カスタムAPIのFunction Callingをテストするにも使えますか? A: 可能です。BFCLのデータセット形式(JSON-schema記述の関数定義)に従って独自テストケースを追加すれば、自社API向けの関数呼び出し精度評価が実施できます。
まとめ
- 2,000問・7カテゴリでLLMの関数呼び出し(Tool Use)精度を測定するベンチマーク
- Claude 3.5 Sonnet v2(90.2%)、GPT-4o(88.3%)が上位
- Parallel Function呼び出しでモデル差が最も開く
- AI Agent・自動化ワークフロー構築での基盤モデル選定指標として業界標準化