APIを使うモデルを評価するための新しいベンチマーク
ネストされたAPIコールを使った大規模言語モデルの新しい評価方法。
Kinjal Basu, Ibrahim Abdelaziz, Kelsey Bradford, Maxwell Crouse, Kiran Kate, Sadhana Kumaravel, Saurabh Goyal, Asim Munawar, Yara Rizk, Xin Wang, Luis Lastras, Pavan Kapanipathi
― 1 分で読む
目次
大規模言語モデル(LLM)は、現実の複雑なタスクを解決するための重要なツールになってるんだ。これらのモデルは、ソフトウェアエージェントがツールやAPIを使ってタスクを計画・実行することを可能にするんだ。目標はユーザーのリクエストに効果的に応えることだよ。
より良い評価の必要性
今のテストは、LLMが単一のAPIコールをどれだけうまく扱えるかに焦点を当ててるけど、複数のコールを組み合わせるときの複雑さを見逃してるんだ。次のAPIのために一つのAPIの出力が必要な場合もあるからね。このギャップを埋めるために、ネストされたAPIコールのパフォーマンスを評価する新しいベンチマークが作られたんだ。このベンチマークには300の例が含まれていて、実行可能なものと実行不可能なものに分かれてる。実行可能なものは実際のAPIを使って実行できるけど、実行不可能なものはLLMが生成したデータから構成されていて、実行用ではないんだ。
API使用に必要なタスク
LLMがAPIを正しく使用するためには、主に3つのタスクをこなす必要があるんだ:
- API検出:リストからどのAPIを使うかを特定すること。
- スロット埋め:選ばれたAPIが必要とするパラメータに正しい値を埋めること。
- シーケンシング:タスクを完了するためにAPIコールを正しい順番に整えること。
この中で、シーケンシングは他の2つのタスクを組み合わせるから、しばしば一番難しいんだ。
現在のデータセットの問題
APIの能力をテストするための既存データセットは、シーケンシングを独立したAPIコールだけで構成されているかのように扱うことが多いんだ。実際には、たくさんのタスクはネストされたコールのシリーズを必要とするから、1つのAPIの結果を次の入力に使わなきゃいけないんだ。これは通常評価される単純なケースとは違うよ。
新しいベンチマークの作成
新しいベンチマークは、モデルがネストされたAPIコールをどれだけうまく扱えるかを特に見ているんだ。300の高品質な例が実行可能と実行不可能なカテゴリーに分けられている。実行可能な例はRapidAPIから得た実際のAPIから来ていて、実行不可能な例は異なるアプローチで生成されてるんだ。
ネストされたAPIコールの例
ネストされたシーケンスの例は、2つの都市間の時間差を確認することかもしれない。最初のステップはそれぞれの都市のタイムゾーンを取得し、その情報に基づいて差を計算することだ。このプロセスでは、次のステップを知らせるために1つのAPIコールを実行する必要があるんだ。
データ収集と構造
データセット内の各例は、質問とそれに対応するAPIコールのシーケンスから成り立っていて、JSONフォーマットで表現されてる。それぞれのAPIコールには名前と必要なパラメータが含まれてる。データセットは、どの出力がどのコールに属するかを追跡するためにユニークな変数名を割り当ててるんだ。
実行可能と実行不可能な例
実行可能なAPI:これらは実際のソースから来ていて、タスクを実行する方法の詳細が含まれてる。質問と答えのペアに丁寧に整理されていて、ネストされたAPIコールを通じてのみ答えが得られるようになってる。
実行不可能なAPI:これらは既存のデータセットと追加の合成データを使って作られてる。プログラムを使って正しいフォーマットに従った例を生成しているけど、対応する実行可能なAPIはないんだ。
モデルの評価
このベンチマークで様々なLLMのパフォーマンスをテストするために、いくつかの広く使われているモデルを評価してる。モデルはワンショットとスリーショットの戦略でテストされていて、一つか三つの例を提供して反応を導いてるんだ。
評価は3つの主要な指標に焦点を当ててる:
- 部分シーケンス一致:予測されたAPIコール(パラメータを含む)が正しいシーケンスにどれだけ一致するかをチェックする。
- 完全シーケンス一致:予測されたシーケンス全体が正しい答えと一致するかをチェックする。
- API実行合格率:APIが正しく順番に実行できるかを測る。
実験結果からの発見
初期結果を見ると、ほとんどのモデルがネストされたAPIタスクで困難を感じていることがわかった。モデルは通常、3つの例を使ったときにより良いパフォーマンスを発揮するけど、正しいシーケンスを生成するために必要な重要な詳細を見逃すことが多いんだ。
例えば、モデルがレストラン検索を予測したけど、予約時間を含めるのを忘れたら、完全一致のスコアが低くなる。たとえ部分的に正しいとしても、どれか一つの詳細が欠けていると全体のスコアが低くなるかもしれない。
特定された課題
テスト中にいくつかの主要な課題が見られたよ:
データ型一致:APIの仕様は各パラメータのデータ型に慎重に注意を払う必要がある。モデルが不正確な型を生成すると、実行時にエラーが起こる。
変数割り当て:並行して行われるAPIコールの別々の出力を追跡するのはややこしい。モデルは混乱を避けるために提供された変数名を正しく従わなきゃいけない。
暗黙のAPIコール:時々、APIコールはユーザーのクエリに直接言及されずに行われる必要がある。モデルは受け取った入力に基づいて、いつそのようなコールが必要かを正確に特定しなきゃいけないんだ。
結論
この新しいベンチマークの導入は、LLMが複雑なAPI機能呼び出しを扱う能力を評価するための厳格な方法を提供するんだ。初期の結果は、既存のモデルがこれらのタスクにおいて短所があることを示していて、改善の余地があることを明らかにしてる。
このデータセットを公開することで、API機能呼び出しに関するさらなる研究と開発を促進し、最終的には現実の問題を効果的に解決できるより有能なモデルに繋がることを目指しているんだ。
タイトル: NESTFUL: A Benchmark for Evaluating LLMs on Nested Sequences of API Calls
概要: Autonomous agent applications powered by large language models (LLMs) have recently risen to prominence as effective tools for addressing complex real-world tasks. At their core, agentic workflows rely on LLMs to plan and execute the use of tools and external Application Programming Interfaces (APIs) in sequence to arrive at the answer to a user's request. Various benchmarks and leaderboards have emerged to evaluate an LLM's capabilities for tool and API use; however, most of these evaluations only track single or multiple isolated API calling capabilities. In this paper, we present NESTFUL, a benchmark to evaluate LLMs on nested sequences of API calls, i.e., sequences where the output of one API call is passed as input to a subsequent call. NESTFUL has a total of 300 human annotated samples divided into two types - executable and non-executable. The executable samples are curated manually by crawling Rapid-APIs whereas the non-executable samples are hand picked by human annotators from data synthetically generated using an LLM. We evaluate state-of-the-art LLMs with function calling abilities on NESTFUL. Our results show that most models do not perform well on nested APIs in NESTFUL as compared to their performance on the simpler problem settings available in existing benchmarks.
著者: Kinjal Basu, Ibrahim Abdelaziz, Kelsey Bradford, Maxwell Crouse, Kiran Kate, Sadhana Kumaravel, Saurabh Goyal, Asim Munawar, Yara Rizk, Xin Wang, Luis Lastras, Pavan Kapanipathi
最終更新: 2024-09-04 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2409.03797
ソースPDF: https://arxiv.org/pdf/2409.03797
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://huggingface.co/datasets/Nexusflow/NexusRaven_API_evaluation
- https://gorilla.cs.berkeley.edu/index.html
- https://huggingface.co/datasets/glaiveai/glaive-function-calling-v2
- https://github.com/google-research-datasets/dstc8-schema-guided-dialogue
- https://github.com/foundation-model-stack/fms-dgt
- https://huggingface.co/mistralai/Mixtral-8x22B-Instruct-v0.1
- https://huggingface.co/NousResearch/Hermes-2-Pro-Mistral-7B
- https://gorilla.cs.berkeley.edu/leaderboard.html
- https://huggingface.co/gorilla-llm/gorilla-openfunctions-v2
- https://huggingface.co/Salesforce/xLAM-7b-fc-r
- https://huggingface.co/Nexusflow/NexusRaven-V2-13B