CodeAct: 実行可能なPythonコードがLLMエージェントの精度を20%向上させる理由
先週、「自己修正できない」という論文を読んだ後、自然に湧いてくる疑問はこうです。LLMが自身の出力を確実に監査できないのであれば、エラーを自動的に検出して回復するために、エージェントにとって最適なアクション形式は何でしょうか?ICML 2024に採択されたXingyao Wang氏らによる「CodeAct」は、その答えはPythonコードであると主張しています。それはコードが魔法だからではなく、Pythonインタープリタが、自己修正に関する文献がLLMに切実に必要だと示している、まさに外部的で決定論的なフィードバックを提供してくれるからです。
論文の概要
Xingyao Wangらによる「Executable Code Actions Elicit Better LLM Agents」(arXiv:2402.01030)は、ツール呼び出し エージェントで一般的なJSONやテキストのアクション形式を実行可能なPythonコードに置き換えることを提案しています。核となるアイデアは、コードは自然言語の指示や構造化されたJSONよりもエージェントのアクションに適した共通言語(lingua franca)であるということです。なぜなら、コードには制御フロー、データの依存関係、多段階の構成が既にエンコードされており、LLMはそれについて集中的に事前学習を受けているからです。
この論文は3つの貢献をしています。(1) 統一されたアクション空間としてのコードに関する概念的な議論、(2) マルチツール構成を必要とする82の人間が精選したタスクによる新しいベンチマーク「M3ToolEval」、(3) 情報検索、ソフトウェアパッケージ、外部メモリ、ロボット計画にわたる7,139のマルチターンコードベースの軌跡データセット「CodeActInstruct」でファインチューニングされた7Bモデル「CodeActAgent」です。
主なアイデア
- M3ToolEvalにおいて、CodeActを用いたGPT-4は74.4%の成功率を達成しました。これはテキストアクションを用いた場合の53.7%に対し、最も要求の厳しいマルチツール環境で約20ポイントの絶対的な改善となります。
- CodeActは、同じタスクにおいてJSONベースのエージェントよりも対話ターン数を約30%削減します。ターン数が少ないことは重要です。往復回数が増えるごとに、エラーが伝播する機会が増えるからです。
- Pythonインタープリタは、自動的でコストゼロのエラー信号として機能します。中間計算の間違いは即座に例外を発生させ、エージェントはトレースバックを見て、別途批判ステップを挟まずに修正を行うことができます。
- オープンソースモデルはクローズドソースモデルよりも大きな恩恵を受けます。CodeActAgent (Mistral 7B) はM3ToolEvalで12.2%に達しましたが、以前の最強のオープンソースエージェント (Lemur-70B + テキスト) は3.7%でした。事前学習データにPythonが豊富に含まれているため、レバレッジが高くなります。一方で、特殊なJSONツール呼び出し形式は豊富ではありません。
- CodeActInstructは、構成能力をテストするために特別に選ばれた4つのドメイン(情報探索、パッケージ呼び出し、外部メモリ操作、ロボット計画)でトレーニングされています。これらはすべてマルチステップで状態に依存するタスクであり、JSONエージェントが失敗する典型的なパターンです。
評価できる点と懸念点
M3ToolEvalでの20%の改善は注目に値しますが、M3ToolEvalのタスク数は82です。これはサンプルサイズとしては小さく、論文では信頼区間が報告されていません。また、このベンチマークは手法を提案したチームと同じチームによって作成されたものであり、この分野では標準的ですが、留意しておく価値があります。74.4%を信頼できる数値として扱う前に、完全に独立したベンチマークでこれが再 現されるのを確認したいところです。
効率性の主張(ターン数が30%少ない)は妥当ですが、2つの側面が混在しています。ターン数が少ないことは、エージェントがステップごとにより正確であることを意味する場合もあれば、失敗がより早く終了することを意味する場合もあります。論文では、これらが明確に分解されていません。
オープンソースモデルとクローズドソースモデルの間の能力差は依然として大きく、CodeActによって解消されるわけではありません。CodeActAgent (Mistral 7B) の12.2%はLemur-70Bの3.7%よりはるかに優れていますが、CodeActを用いたGPT-4は74.4%に達しています。形式は助けになりますが、60ポイントもの能力差を埋めるものではありません。オープンソースのBeancountエージェントをデプロイしようと考えている人は、この数字を慎重に読み取るべきです。
サンドボックスの問題については1つの段落しか割かれていません。金融の文脈において、任意のコード実行は単なる不便なエッジケースではなく、主要なセキュリティ上の懸念事項です。エージェントがファイルを削除したり、ネットワーク呼び出しを行ったり、予期しないライブラリをインポートしたりするコードを生成した場合に何が起こるかについて、この論文では深く踏み込んでいません。実用的な会計エージェントにとって、サンドボックスの設計はアクション形式と同じくらい重要です。