Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
見出し画像

AIエージェントの評価

W&B AI Solution Engineerの鎌田 (X: olachinkei) です。2023年以降注目を集める「AIエージェント」ですが、その可能性が広く議論されている一方で、具体的な開発プロセスや評価方法についての情報はまだ整理されていないのが現状です。そこで、本ブログではAIエージェントに関する評価体系について、現時点での知見をまとめていきます。専門的な内容も交えながらも、できる限りわかりやすくお届けしますので、ぜひ最後までお付き合いください。

Compound AI システムの登場とAIエージェントへの発展

生成AIの進化により、特に大規模言語モデルは簡単なプロンプト入力だけでさまざまなタスクを解決できるようになりました。しかし、AIの活用が広がる中で、私たちは単一のモデルに依存するアプローチから複数のコンポーネントを統合する新しいアプローチへと移行しています。このアプローチはCompound AIシステムworkflowと呼ばれ、AIタスクを解決するために複数のモデルや外部ツールを組み合わせたシステムを指します。例えば、RAGは2023年以降、ビジネス分野で最も注目されるCompound AIシステムの一つとなっています。

Compound AIシステムとは、AIのタスクに取り組む際に、複数の相互作用するコンポーネント(モデルへの複数回の呼び出し、リトリーバー、外部ツールなど)を用いるシステムと定義します。 

The Shift from Models to Compound AI Systems, 2024 Feb, BERKELEY ARTIFICIAL INTELLIGENCE RESEARCH 日本語訳

2023年以降、AIエージェントは急速に注目を集めています。AIエージェントは自律的な意思決定を行う能力を備えたCompound AIシステムです。RAGでは、ツールの選択や処理の順序を固定的なロジックで決定している一方、AIエージェントはLLMがタスクを深く理解し、必要なツールを自律的に選択します。さらに、エージェントは独自に計画を立案し、その計画に基づいて外部ツールを活用しながら目標達成を進めます。

Compound AIは、LLMとツールを組み合わせた構造を持つため、システムの開発にあたっては、システム全体と各構成要素の双方を評価し改善する必要があります。LLM単体の評価を行う際には、LLMへの入出力だけを考えれば良いのですが、Compound AIシステムの評価では、各構成要素の評価も必要になってきます。さらに、AIエージェントシステムでは、ルーターによってツールの使用が動的に変化するため、動的に変化する経路も考慮した上での評価が求められます。AIエージェントシステムの評価はまだ発展途上ではありますが、本ブログは、2024年末段階でのプラクティスの整理と実践的な知見提供を行います。AIエージェントシステムの評価体系は、Compound AIシステムの評価体系を内包しているため、以降の章では「AIエージェントシステムの評価」と記載をしていきます。

AIエージェントシステムの評価観点

AIエージェントシステムを効果的に開発・運用するには、複数の視点からの評価が欠かせません。最終的な出力の品質に加えて、処理の各段階や選択プロセスまでを含めた包括的な評価が必要です。この章では、AIエージェントシステムの評価において特に重要な3つのアプローチを詳しく解説します。

AIエージェンの評価観点

①システム全体の評価

システム全体の評価では、入力に対する最終的な出力が期待する品質を満たしているかを検証します。この評価方法の最大の特徴は、タスク達成度を直接測定できる点です。システムが設定された制約内で期待される結果を出せているか、具体的にはレイテンシーやコストの制約を満たしながら正しい出力を生成できているかを確認します。

難しさ・課題:この評価方法だけでは内部で何が起きているのかが見えにくく、問題が発生した際の原因特定が難しくなります。これに対しては、後述する各ステップ・サブモジュールや選択軌跡の評価を併用することで、内部処理の可視化と効率化を図ります。また、システム全体の評価は、評価に時間やコストがかかることもあるため、迅速な改善サイクルを回す上でタイミングを見極める必要があります。

②各ステップ・サブモジュールごとの評価

システム内の意思決定やアウトプット、処理時間、コストを各ステップ単位で検証する手法です。この方法の利点は、問題が発生している箇所を正確に特定できることです。また、一度評価の仕組みを整えれば、その後の評価作業は迅速に行えます。

難しさ・課題:この方法を採用する際は、各ステップに合わせた評価基準とデータセットの準備が必要であり、すべてのステップに対する評価は現実的には不可能であることが多くあります。 これに対する対処は、"評価体系構築の流れ"にて解説をします。また、特に前段階の情報を考慮した評価データの設計は複雑な作業となります。

③ステップ・ツールの選択・軌跡の評価

タスク達成までの一連のステップを評価し、想定された手順で進んでいるかを検証します。例えば、入力に対して想定されるツール選択のシーケンスを準備し、実際の選択結果と比較します。この評価により、不要なツール呼び出しや余分なステップを発見でき、システムの最適化につなげられます。また、処理時間やコストに影響する要因の特定も容易になります。

難しさ・課題:複数の正解経路が存在する場合、評価基準の設定が難しくなります。全行程の分析を行おうとした場合、煩雑で、評価プロセスの負担が大きくなります。

この章では、どういった観点からAIエージェントシステムを評価するべきかについてみていきました。次の章では、評価指標について解説をします。

評価指標

評価指標は大きく以下の4つのカテゴリに分けられ、それぞれの特性と用途を解説します。

  1. 精度 (Accuracy)

  2. システム (System)

  3. エラー (Error)

  4. 実行経路 (Execution Path)

AIエージェントの評価指標

精度

精度評価はシステムの出力の正確性を測定する基本的な指標です。システム全体の評価では、最終的なタスク達成度を測定します。また各ステップでは、要約や数値計算、検索など、個別の機能の精度を確認します。

評価手法は大きく3つに分かれます。答えが一意に決まる場合は自動的なベンチマーク評価、一意に定まらない場合は分類器やLLMによる評価、そして人手による評価です。ここはLLM単体の評価手法と変わりません。LLMの評価手法については、以下のホワイトペーパーを参照ください。

上記ホワイトペーパーに汎用的なベンチマークの例を記載していますが、専門分野に特化した評価基準も登場しています。例えば金融向けのJapanese Language Model Financial Evaluation Harness、医療向けのJMED-LLM、プログラミング向けのSWE-benchなどが挙げられます。さらに昨今では、AIエージェントの評価に特化したGAIAのような新しいベンチマークも提案されています。

システム

システムメトリックは効率性とユーザー体験に関わる指標です。主にレイテンシー、コスト、トークン消費量を測定します。最終的なレイテンシーはユーザーエクセルペリエンスに関わり、コストは費用対効果に関わります。トークンはレイテンシーとコストに関わる指標になります。同じ精度であれば、利用するトークンが少ない方が効率的です。
レイテンシーが長く、コストが高い場合、どこのステップでそれらが生じているのかを理解することが重要です。精度評価の構築には時間を要しますが、レイテンシー、コスト、トークン消費量のトラッキングには、Weights & BiasesのWeaveのようなLLM向けObservabilityツールを活用することで、自動記録や可視化が可能になります。これにより、問題の特定自体は比較的容易になります。

エラー

タスクやツールの実行が正しく完了したかを評価する指標です。例えば請求システムでは、処理の失敗は深刻な影響を及ぼす可能性があります。特にAPIのタイムアウトエラーには注意が必要で、エラーハンドリングやリクエストのキューイング機構の整備が重要です。

また、タスクが完了したように見えても、重要なチェックを省略している場合があります。そのため、各ステップで必要な確認が行われているか、チェックリストの実行を確実に記録する仕組みが必要です。

実行経路

AIエージェントシステムでは、ツールの選択プロセスも重要な評価対象です。主に以下の3点を評価します:

  1. プロトコルの遵守:タスクの複雑さに応じて、適切な分析手順が選択されているか。エージェントがタスクの複雑さに関係なく一律に詳細な分析プロトコルを適用している場合、それはレイテンシーやコストの面で非効率となります。この場合、タスクの複雑さに応じて分析の深さを動的に調整する仕組みが必要です。

  2. タスクごとのステップ数:無駄な処理を省き、効率的な実行が行われているか。例えばReflection(出力を繰り返し改善する処理)においてステップ数が多い場合、出力内容をfuzzy matchで評価し、回答の内容がほとんど変わらなくなるタイミングを検出した後、それ以上のReflection処理を中止し、ステップ数を削減するといった処理も考えられます。こうした対応により、無駄な処理を防ぎ、レイテンシーやコストを抑制できます。

  3. ヒューマンフィードバックの実行回数・タイミングの確認:必要な箇所で適切にヒューマンフィードバックが実行されているか。人による確認のプロセスが適切に実行されることを担保することで、システムの信頼性を向上させることが可能です。

開発段階での評価(オフライン評価)からプロダクションでの評価(オンライン評価)へ

オフライン評価と呼ばれる開発段階での評価と、オンライン評価と呼ばれるプロダクションでの評価において、取得するべき指標に大きな違いはありません。オンライン評価時でも、精度やシステムメトリック、エラー、実行経路をトラックし、継続的な改善を進めていくことは重要になります。

一方、オンライン評価においては、自動的な精度評価をリアルタイムで行うことが難しいことが一般的であるため、運用中に収集されるリアルなヒューマンフィードバックが精度の観点では重要な指標となります。このフィードバックは、システムの実際の利用状況を反映した貴重な情報源であり、評価と改善に活用されます。

AIエージェントのオンライン評価で利用する指標

また、生成AIアプリケーションの特徴として、ユーザーは自由なテキスト入力ができるため、開発者の想定外の使われ方をすることがあります。そのため、実際のユーザー行動を理解することが重要です。例えば、W&Bが運営するwandbotでは、Weaveに蓄積されたユーザーの入力情報から、ユーザーの質問タイプや質問対象、wandbotが答えることができなった問題をLLMで分析をするなどの取り組みを行っています。これにより、システムの実用性を向上させるためのインサイトを得ることができます。

評価体系構築の流れ

最後に、実際の評価体系構築の流れについて解説をします。AIエージェントシステムの評価体系を効果的に構築するには、段階的なアプローチが重要ですが、本記事では4つの具体的なステップを解説します。

Step1: Observability toolの導入

開発初期段階では、直感的な結果確認(Vibe check)だけでもある程度の感触を得られます。しかし、継続的な改善や本番環境での運用を見据えると、より体系的な評価の仕組みが必要です。まずはW&B Weaveのようなツールを導入し、実行過程の可視化と記録から始めましょう。

Step2: 基本的なテストケースの整備

エージェントの機能に合わせた基本的なテストケースを用意します。これにより、システムの改善効果を同じ基準で比較できるようになります。完璧なテストケースを一度に作る必要はありません。まずは基本的な動作確認ができる必要最小限のセットから始め、徐々に拡充していきましょう。

Step3:Playgroundでの検証

全てのステップを同じ密度で評価することは現実的ではありません。Playgroundのように小規模なテスト環境で各ステップを試し、重点的な評価が必要な部分を特定していきます。この過程で評価体系の全体像が見えてきます。

Step4:本格的な評価体系の構築

最終段階では、本格的な評価データセットを整備します。これには多様な入力例や成功・失敗パターン、複雑な問い合わせなどを含めます。これらの評価セットを用いることで、エージェントの改善が実際に品質向上につながったかを継続的に検証し、より確実な改善サイクルを回すことが可能になります。

評価体系ができたあとは、適切なモデルの選択やプロンプトチューニング、AI agent全体の設計を変更しながらシステムの改善を進めていきます。例えば、食べログ開発者のブログでは、メニューの文字識別だけの性能を評価した場合は、横書きならばGPT4oの方が精度が高く、縦書きであればClaudeのモデルの方が精度が高いという面白い報告がありますが、タスクを分解し、評価体系を構築した後はこのようなチューニング・改善を進めていくことで、AI agentシステムがより良いものになっていきます。

まとめ

AIエージェントやCompound AIシステムの評価は、単なるモデル精度評価に留まらず、プロセス全体と各ステップの両方、およびステップの選択・軌跡に注目をしながら、問題特定・改善を迅速に回す仕組みを築くことが鍵となります。まだプラクティスが発展途上の領域であるので、常にベストプラクティスを調査することが重要もなります。

参考

いいなと思ったら応援しよう!