Benchmarking Web API Integration Code Generation
本論文は、現在のオープンソースの大規模言語モデルが、エンドポイントの捏造や引数の誤用といった問題により、正しいWeb API統合コードの生成において成功率が40%未満に留まるなど、著しく苦戦していることを明らかにするデータセットおよび評価パイプラインであるWAPIIBenchを紹介するものである。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたは、非常に賢く博識なロボットに、巨大で複雑なレストランのメニューから特定の料理を注文する方法を教えようとしていると想像してください。そのメニューは単なる料理のリストではありません。書き方のルール、押すべきボタン、そして含めるべき正確な材料のリストまで、厳格な決まりごとが存在します。もし細部が一つでも間違っていれば、厨房はその注文を拒否します。
この論文は、これらの「ロボット」(実際には大規模言語モデル、つまりChatGPTなどのAI技術の背後にある技術)が、現実世界のウェブサービス(Googleカレンダー、Slack、Asanaなど)に注文を送り込むためのコードを、どれほど上手く書けるかをテストしたものです。
以下は、研究者が何を行い、何を発見したのかを、簡単な比喩を用いて説明したものです。
問題点:「魔法」はまだ魔法ではない
開発者は、異なるソフトウェア同士を連携させるために「Web API」を使用します。これは、レゴブロックをつなぎ合わせるようなものです。通常、人間がこれらのブロックを組み立てるための指示を書く必要があります。期待されていたのは、AIがこれを自動的に行うことです。
研究者はこう問いかけました:「AIは、『カレンダーに新しい予定を追加して』という単純なリクエストを見て、それを実現するための完璧でエラーのないコードを書けるのだろうか?」
実験:AIのための「運転免許試験」の構築
結果を知るために、チームはWAPIIBenchと呼ばれる特別なテストを作成しました。これは、AIのための「運転免許試験」のようなものです。
- コース: 彼らは、4つの人気のある実世界のサービス(Asana、Google Calendar、Google Sheets、Slack)を使用して、395個の具体的な「走行シナリオ」を作成しました。
- ルール: これらのサービスが正しい注文の形をどのように定義しているかを知るために、公式の「運転マニュアル」(OpenAPI仕様)を使用しました。
- テスト: 彼らはAIにプロンプト(例:「新しいカレンダーを作成して」)を与え、そのコードを書くよう求めました。
- チェック: 単にコードを読んで「正しそうに見えるか」を確認するのではなく、実際に安全に制御されたサンドボックス内でそのコードを実行してみました。もしコードが実在しないアドレスに注文を送ろうとしたり、間違った材料を使ったりした場合、そのテストは失敗となります。
結果:AIは頻繁に道に迷う
結果は、即時の自動化を期待していた人々にとっては、少し残念なものでした。
- スコア: 最も優れたオープンソースのAIモデルでも、タスクを完全に正しくこなせたのはわずか**30%から40%**でした。最も優れた商用モデルであるGPT-4oはより成績が良く、60〜77%に達しましたが、それでも3分の1近くは失敗していることを意味します。
- 「ハルシネーション(幻覚)」: これが最大の課題です。AIはしばしば作り話をしました。
- 偽のアドレス: AIは存在しないURLアドレスを捏造しました(例:レストランが「メイン通り456番地」にあるのに、タクシー運転手に「フェイク通り123番地」へ行くよう指示するようなもの)。これは最大39%のケースで発生しました。
- 間違った材料: AIは、そのサービスが受け付けないパラメータ(材料)を含めたり、必要なものを欠落させたりしました。
- 部分的な成功: AIはコードの「一般的な形」を覚えることには長けていました(例えば、
POSTメソッドを使う必要がある、つまり「キャンセルする」のではなく「注文を出す」必要がある、といったことを理解すること)。しかし、どこに送るかという具体的な目的地や、正確に何を伝えるかという詳細については、それらを正しく組み合わせることに苦戦しました。
いくつかの驚くべき展開
- 大きいほど良いとは限らない: 時には、中規模のAIモデルが、極小のモデルよりも、また巨大なモデルよりも成績が悪くなることがありました。これは、試験のために勉強しすぎた結果、逆に混乱してしまった学生のようなものです。
- 記憶 vs 理解: AIは、トレーニングデータに含まれるマニュアルの一部を「暗記」していたようです。URLや引数の名前は知っていましたが、それらを新しい特定の課題を解決するために確実に組み合わせることはできませんでした。それは、去年の数学のテストの答えを丸暗記したけれど、今年のテストの問題は解けない学生のようなものでした。
- 「穴埋め」のトリック: 研究者がAIに対して、正しいアドレス(URL)をあらかじめ与えた上で、残りの部分を埋めるように指示した場合、AIの成績は大幅に向上しました。これは、AIが目的地を推測する必要がなければ、指示に従う方法を知っていることを示唆しています。
結論
論文は次のように結論づけています。AIはコードを書くことには長けてきていますが、人間の監督なしにソフトウェアシステムを自動的に接続できるほど、まだ信頼できるレベルには達していません。もし今、AIにビジネスアプリをインターネットに接続するコードを書かせれば、データの約60%から70%の確率で、データを誤った場所に送るか、接続を壊してしまうでしょう。
研究者たちは、AIが(記憶に頼るのではなく)リアルタイムでルールを「検索」できるようにするための新しい方法や、より優れた安全チェックが必要であると述べています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。