BFCL (Berkeley Function-Calling Leaderboard)(ビーエフシーエル)
UC Berkeleyが開発したLLMの関数呼び出し(Function Calling / Tool Use)能力を評価するベンチマーク。2,000以上のテストケースで、APIドキュメントからの正確な関数選択・引数生成・マルチターン対話での関数連鎖を評価。実務のAPIインテグレーション性能を直接測定する。
BFCL(Berkeley Function-Calling Leaderboard)とは
BFCL(Berkeley Function-Calling Leaderboard)は、UC BerkeleyのGorilla LLMプロジェクトが2024年に公開した、LLMの関数呼び出し(Function Calling / Tool Use)能力に特化した評価ベンチマークである。2,000以上のテストケースで、APIドキュメントからの正確な関数選択、引数の型・値の生成、マルチターン対話での関数連鎖を体系的に評価する。
関数呼び出し能力とは
LLMのFunction Callingは、自然言語の指示からAPIを呼び出すための:
- 関数選択: 利用可能なAPI群から適切な関数を選ぶ
- 引数生成: パラメータの名前・型・値を正確に生成する
- 呼び出しタイミング: 不要な呼び出しを避ける(関数を使わない判断も含む)
- 連鎖実行: 複数の関数を正しい順序で呼び出し、前の結果を次の入力に渡す
この能力はAIエージェント・APIインテグレーション・ツール活用の基盤であり、LLMの実用性を直接左右する。
テストカテゴリ
BFCLは以下のカテゴリでFunction Calling能力を多角的に評価する。
| カテゴリ | テスト数 | 評価対象 |
|---|---|---|
| Simple Function | 400 | 単一関数の正確な呼び出し |
| Multiple Function | 200 | 複数候補からの正しい関数選択 |
| Parallel Function | 200 | 同時に複数関数を呼び出す能力 |
| Parallel Multiple | 200 | 複数候補×並列呼び出しの組合せ |
| Java / JavaScript / Python | 各200 | 言語固有のAPI呼び出し |
| Relevance Detection | 200 | 「関数を呼ばない」正しい判断 |
| Multi-Turn | 200 | 対話の流れでの関数連鎖 |
| Executable | 各カテゴリ50 | 実際にAPIを呼び出して結果を検証 |
評価メトリクス
| メトリクス | 定義 |
|---|---|
| AST Accuracy | 生成された関数呼び出しのAST(抽象構文木)がゴールドスタンダードと一致する割合 |
| Exec Accuracy | 実際にAPIを実行して正しい結果が返る割合 |
| Relevance Score | 不適切な関数呼び出しを正しく拒否できる割合 |
| Overall Accuracy | 全カテゴリの加重平均スコア |
主要モデルのスコア比較
| モデル | Overall | Simple | Multiple | Parallel | Relevance | Multi-Turn |
|---|---|---|---|---|---|---|
| GPT-4o | 88.5% | 92.3% | 89.1% | 85.4% | 91.2% | 82.3% |
| Claude 3.5 Sonnet | 90.1% | 94.0% | 91.3% | 87.2% | 88.5% | 84.7% |
| Gemini 1.5 Pro | 84.2% | 88.7% | 85.4% | 80.1% | 86.3% | 78.5% |
| Llama 3.1 70B | 76.3% | 82.5% | 78.2% | 71.4% | 79.8% | 68.2% |
| Mistral Large 2 | 78.5% | 84.1% | 79.8% | 73.6% | 81.2% | 71.3% |
Gorilla LLMプロジェクトとの関係
BFCLはGorilla LLMプロジェクトの一部として開発された。Gorillaは「LLMにAPIの正しい使い方を教える」ことを目標としたUC Berkeleyの研究プロジェクトで:
- Gorilla LLM: 1,600以上のAPI docで学習した関数呼び出し特化モデル
- APIBench: 公開前のAPI呼び出しデータセット(BFCLの前身)
- BFCL: 業界標準の関数呼び出し評価ベンチマーク(現在の主力)
実務での重要性
Function Callingスコアが高いモデルは以下のユースケースで優位:
- AIエージェント: LangChain / AutoGPT / CrewAI等のエージェントフレームワークでのツール利用
- APIオーケストレーション: 複数のSaaS API(Slack・GitHub・Jira等)を自然言語で操作
- データベース操作: Text-to-SQLの拡張として、DB APIを直接呼び出す
- IoT/スマートホーム: 自然言語コマンドからデバイスAPIへの変換
よくある質問(FAQ)
Q1: Function CallingとTool Useは同じ?
A: 概念的にはほぼ同じ。OpenAIは「Function Calling」、Anthropicは「Tool Use」、Googleは「Function Calling」と呼ぶ。BFCLでは全てのパターンを統一的に評価する。
Q2: スコアが高ければAPIインテグレーションは安全?
A: BFCLは精度を測定するが、セキュリティ(意図しないAPI呼び出し防止)やレート制限順守は評価対象外。本番環境では関数呼び出しの前にバリデーション層を設けること。
Q3: 自社のカスタムAPIでも評価できる?
A: 可能。BFCLのフレームワークはカスタムAPI定義(JSON Schema形式)を受け付ける。自社APIのドキュメントをテストケースに変換すれば、特定ドメインでのFunction Calling精度を評価できる。