メインコンテンツまでスキップ

Gorilla: 検索を意識した学習(RAT)により、LLMのAPIハルシネーションを78%から11%に低減する方法

· 約9分
Mike Thrift
Mike Thrift
Marketing Manager

Gorillaの論文(Patil et al., 2023, arXiv:2305.15334, NeurIPS 2024)を読んでいるのは、私が常に直面している2つの問題の接点にあるからです。それは、「LLMエージェントにいかにして適切な引数で適切なツールを呼び出させるか」、そして「APIが変更されてもその能力をいかに維持するか」という問題です。ここでの回答は実用的であり、数値も驚くほど強力ですが、評価に組み込まれた前提条件は通常よりも注意深く吟味する必要があります。

論文の概要

2026-05-03-gorilla-llm-retrieval-augmented-api-calling

UCバークレーのShishir G. Patil、Tianjun Zhang、Xin Wang、Joseph E. GonzalezらによるGorillaは、具体的な失敗モードに対処しています。それは、最先端のLLMがAPI呼び出しにおいてハルシネーションを起こすという問題です。特定のライブラリ関数を呼び出すコードを書くよう求められた際、GPT-4(2023年中盤時点)は、見た目はもっともらしいものの、間違った関数シグネチャ、存在しないモデル、あるいは非推奨の引数名を頻繁に生成します。Gorillaは、正確なAPI呼び出しを生成するために特別に微調整された70億パラメータのLLaMAベースのモデルであり、著者らが「検索を意識した学習(Retriever-Aware Training, RAT)」と呼ぶ手法で訓練されています。考え方はシンプルです。訓練中、ユーザーのクエリとともに、検索されたAPIドキュメントを「参考のためにこのAPIドキュメントを使用してください: <retrieved_API_doc_JSON>」という形式でモデルに提示します。これにより、モデルはドキュメントを読み取ることと、パラメータ化されたメモリよりも検索されたコンテキストを信頼することを学習します。この特性は、推論時にドキュメントが変更された場合に大きな利点をもたらします。

評価データセットであるAPIBenchは、925のHuggingFace Model Hub API、95のTorchHub API、696のTensorFlow Hub APIをカバーしており、Self-Instructを通じてAPIごとに10個の合成指示追従クエリが生成されています。評価指標はASTサブツリーマッチングです。生成されたAPI呼び出しがパースされ、機能的な正確さがチェックされます。これにより、この設定では初めて、ハルシネーション率の体系的な測定が可能になりました。

主なアイデア

  • RATにより推論時にドキュメントを読解可能にする。 検索されたドキュメントを含むプロンプトで訓練することで、GorillaはAPIの詳細を重みから思い出すのではなく、検索されたテキストに従うことを学習します。これは、モデルを再訓練することなく、APIの進化に合わせて最新の状態を維持できることを意味します。
  • ゼロショット精度:Gorilla 59–84%、GPT-4 18–39%。 TorchHubでは、GorillaはGPT-4の38.70%に対して59.13%を達成しました。HuggingFaceでは71.68%対19.80%、TensorFlow Hubでは83.79%対18.20%でした。APIスペースが多様であるほど、その差は顕著になります。
  • ハルシネーションの削減が最大の成果。 Gorillaのハルシネーション率は、TorchHubで6.98%、HuggingFaceで10.95%、TensorFlow Hubで5.40%です。同じデータセットにおけるGPT-4の率は36.55%から78.65%に及びます。
  • オラクル・リトリーバーが上限。 正解のドキュメントが検索された場合(オラクルモード)、精度は67–94%に達します。これはRAGベースのシステムの理論的なベストケースであり、ゼロショットGorillaとこの上限とのギャップが、リトリーバーの改善の余地となります。
  • 実際のリトリーバーは力不足。 評価時にオラクルからGPT-Indexに切り替えると精度は29.20%低下し、BM25では52.27%低下します。検索ノイズに対するモデルの堅牢性は本物ですが、限界もあります。
  • AST評価の汎用性。 サブツリーマッチングアプローチは、生成された呼び出しが単に構文的に類似しているかだけでなく、機能的に正しいかどうかを測定します。これは、出力が実際に実行されるコードであるあらゆるタスクにとって適切な指標です。

何が有効で、何がそうでないか

核心的な主張は有効です。ドキュメントで拡張されたプロンプトによる微調整は、API呼び出しの精度を劇的に向上させ、ハルシネーションを削減します。AST評価手法は真に斬新であり、大規模な文字列マッチングや人間による評価よりも明らかに優れています。RATはクリーンで再現可能なアイデアです。

私が懐疑的なのは、ベンチマークの範囲です。HuggingFace、TorchHub、TensorFlow Hubの3つのデータセットはすべて、非常に規則的なAPI構造を持つ機械学習モデルレジストリです。モデルを名前でロードし、場合によってはいくつかのキーワード引数を指定して、predictのようなメソッドを呼び出します。指示は合成的に生成されているため、テスト分布は訓練分布と密接に関連しています。Self-Instruct経由で訓練された機械学習APIドキュメントに調整され、機械学習APIのSelf-Instructクエリで評価されたモデルは、本番環境で実際に発生する難しさ(曖昧な要求、多段階のワークフロー、引数の型強制、認証、レート制限、エラー復帰など)についてはテストされていません。

また、検索による劣化も論文の枠組みが示唆するより大きいです。BM25検索で精度が52%低下するのは壊滅的です。本番環境にデプロイするリトリーバーがオラクルよりもBM25に近い場合、得られた成果は消失してしまいます。著者らはこのギャップを認めていますが、それを埋める道筋は示していません。

最後に、モデル自体は7BのLLaMA微調整版です。GPT-4のゼロショットとの比較は鮮烈ですが、公平な比較とは言えません。GPT-4は検索されたドキュメントを使用するように訓練されていません。APIドキュメントを読み取るように設計されたシステムプロンプトを備えたRAG拡張GPT-4であれば、ほぼ確実にこのギャップを大幅に縮めるでしょう。

なぜこれが金融AIにとって重要なのか

RATパターンは、Beancountの書き戻しエージェントに直接適用可能です。Beancountエージェントは、CLIコマンド(bean-query, bean-report)、Python API(beancount.loader, beancount.core)、およびbeancount-ledger FastAPIサービスを呼び出す必要があります。これらにはそれぞれ、ドキュメント化されているものの、必ずしもモデルの訓練データには含まれていない特定の引数セマンティクスがあります。Gorillaのアプローチは、「推論時に関連するドキュメントのスニペットを検索し、コンテキストに注入し、それを読んで従うようにモデルを訓練せよ」と説いています。

ハルシネーションの数値は、金融の文脈において最も有用なシグナルです。機械学習のモデル名における10%のハルシネーション率は煩わしい程度ですが、元帳の変更を伴う呼び出しにおける10%のハルシネーション率(誤った勘定科目名、誤った通貨コード、借方/貸方の符号の反転)は正確性の問題です。ここから示唆されるのは、Gorillaスタイルで訓練されたエージェントであっても、書き込みがコミットされる前に実行時のバリデーターが必要であるということです。これはCRITIC (LOG-012) がツール対話型の批判について示した内容と一致しています。検索による劣化の発見はこれを補強します。現実世界の検索で精度が半分になるのであれば、セーフティネットを検索の質だけに頼ることはできません。

AST評価手法は自然に転用できます。Beancountのトランザクションはパース可能な構造を持っており、生成されたディレクティブをASTマッチングを使用してスキーマに対してチェックすることは、プリコミットフックやエージェントループで実行できる軽量なバリデーターそのものです。

次に読むべきもの

  • ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs (arXiv:2307.16789) — API呼び出し問題を16,000の実世界のREST APIと多段階のツール利用チェーンに拡張。単一呼び出しの機械学習レジストリ起動のみを評価するというGorillaの限界に直接対処しています。
  • The Berkeley Function Calling Leaderboard (BFCL) (OpenReview:2GmDdhBdDk, NeurIPS 2024 ポスター) — Gorillaから直接進化した、フロンティアモデルの関数呼び出し能力の向上を追跡する生きたリーダーボード。V3ではマルチターン対話が、V4ではエージェントによるウェブ検索が追加されています。
  • API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs — 金融やウェブサービスを含むより幅広いドメインの73のAPIでLLMを評価。APIBenchの狭い機械学習へのフォーカスを補完する有用なベンチマークです。