複合AIシステムの最適化

複合AIシステムの最適化フレームワークは、精度・コスト・遅延などの多目的最適化や複数プランの最適化、特に予算などの制約管理を含む幅広い目標を達成すべきであると述べています。これらの最適化目標は決して網羅的ではありませんが、エンタープライズ環境において重要な要素です。

大規模言語モデル(LLM)の驚異的な能力は、一般ユーザーの関心を集めるだけでなく、特に知識集約型タスクにおけるエンタープライズ向けアプリケーションへの関心を高めました。LLMは第一に、構造化データ、非構造化データ、その他のモダリティの理解と処理に優れており、第二にはウェブ検索、データベース、さらには他の予測型機械学習(ML)モデルなど、さまざまなツールとのシームレスな統合を可能にするインコンテキスト学習を実現しています。また、LLMは複雑なタスクをより小さく、実行可能なタスクへと分解し、計画を立てる能力においても有望であることが示されています。

このような背景のもと、複合AIシステムが注目されており、LLMの能力を複雑なタスクへ適用するための新たな手法として活用されています。複合AIシステムは、複数のコンポーネント(さまざまな能力を持つ1つ以上のLLMエージェントを含む)と、データベースや知識グラフなどのツールを統合することで、高度なタスクに対応できます。特にエンタープライズ向けの知識集約型タスクにおいて、複合AIシステムは最先端の成果を達成しています。
複合AIシステムの成功は、主に二つの段階のプロセスによって実現されます。第一に、タスクワークフローのオーケストレーションです。ここでは、LLMやデータベース、知識グラフ、MLモデルといったツールを活用し、タスクを分解し、再利用可能なモジュールとして構成します。第二に、モジュールの最適化が挙げられます。各モジュールを個別または統合的に最適化し、特定のタスクにおけるパフォーマンス指標(例: 精度)を最大化します。

本記事では、複合AIシステムにおける最適化の機会に焦点を当て、現在の最適化手法を超えた、多目的(multi-objective)、多計画(multi-plan)、制約付き(constrained)最適化について取り上げます。まず、最適化の前提となるワークフローのオーケストレーションについて簡単に説明します。

複合AIシステムにおけるオーケストレーション

複合AIシステムは、異なるコンポーネントを組み合わせてタスクワークフローをオーケストレーションします。コンポーネントは通常、再利用可能なモジュールとして実装され、パイプラインがこれらのコンポーネントを連結してワークフローを構築します。モジュールの複雑さはタスクによって異なり、リストの長さを返す単純なPythonコードのようなものから、検索拡張生成(RAG)のようなより複雑な機能を実装するものまでさまざまです。AlphaCode2などのAIシステムは、あらかじめ定義された一連のコンポーネントを用いてコード生成を実行します。これには、ポリシーモデルとサンプリングを用いたコード生成、関連性の低いプログラムを除去するフィルタリング、候補プログラムにスコアを付けるスコアリングといった処理が含まれます。

複合AIシステムをゼロから構築することは、多くの設計上の選択肢と意思決定が伴うため、非常に手間のかかる作業です。DSPyAutoGenAgentforceのようなフレームワークは、ワークフローの設計と実行を分離することで、複合AIシステムの構築における複雑さの一部を解消することを目的としています。DSPyやAutoGen Studioでは、タスクの説明、入力、出力の制約を宣言的に指定するだけで、モジュールを簡単に開発できます。その後、DSPyコンパイラがタスクに適したプロンプトを適切にコンパイルし、基盤となるLLMに適用します。オプションではあるものの、特定のタスク用データセットに対してプロンプトを最適化することは、非常に有用なステップとなります。

				
					class QA(dspy.Signature):
        "Provide an answer for the question"
        question = dspy.InputField()
        answer = dspy.OutputField(desc ="answer in 3 to 4 words")
				
			

DSPyにおけるQAタスクの宣言的指定

なぜ最適化が必要なのか?

最適化は、データベースやAutoMLなど、さまざまなシステムにおいて重要な役割を果たしてきました。複数のコンポーネントを組み合わせる複合AIシステムにおいては、各コンポーネントの適切な(ハイパー)パラメータを特定することが、精度の最大化だけでなく、コスト削減にも不可欠です。これは、エンタープライズ規模でLLMを展開する際に特に重要となります。
例えば、リトリーバとLLMの2つのコンポーネントを持つシンプルな複合AIシステム(RAG)を考えます。LLMには、精度、応答時間、コストが異なる複数のモデルが存在するため、タスクの性能を最大化しつつ、ユーザーの予算制約を満たす適切なLLMを選択することは容易ではありません。この問題は、企業のワークフローにおいて、ドメインデータ、LLM、ツールが複雑に連携する環境ではさらに深刻になります。

複合AIシステムにおける最適化

複合AIシステムの最適化手法は、大きくモジュールレベルパイプラインレベルの2つに分類されます。モジュールレベルの最適化では、単一のLLMに対してプロンプトやデモンストレーションを特定のタスク向けに最適化します。一方、パイプラインレベルの最適化では、有向非巡回グラフ(DAG)を通じて接続された複数のモジュール全体を最適化します。

  • モジュールレベルの最適化
    自動プロンプト最適化(APO)は、特定のタスクに対して最適なプロンプト(指示+例)を見つけることを目的とし、近年大きな注目を集めています。最近の研究では、20を超える異なるタスクにおいて、指示と例の両方を最適化することで、最適化されていないプロンプトと比較してPALM2モデルのテスト精度を16%向上させることが可能であることが示されました。この研究は単一のLLM向けのプロンプト最適化を対象としていますが、現在のLLMの多くが推論モード(inference mode)でのみ利用可能であることを考慮すると、プロンプト最適化による性能向上の可能性を示す重要な知見を提供しています。指示や例の選択を最適化するさまざまな手法について詳しく知りたい方は、関連する総説を参照してください。
  • パイプラインレベル(マルチステージ)最適化
    単一のLLMを対象としたAPO手法は有用ではあるものの、エンタープライズシナリオにおける複数のLLMを含む複雑なパイプラインではその適用が限られます。パイプライン内の各LLMモジュールを個別にAPO手法で最適化することは容易な選択肢ですが、エンドツーエンドのパフォーマンスを考慮すると必ずしも最適とは言えず、中間LLMモジュールのラベル付きデータを取得するのも困難です。
    最近、マルチステージ最適化を解決するための汎用的な最適化フレームワークが提案されました。モジュールの数が増えるにつれて最適化空間が指数関数的に拡大するため、マルチステージ最適化は計算上困難(intractable)な問題であることが広く知られています。この課題に対処するために、いくつかの近似可能かつ実行可能な最適化手法が提案されています。例えば、MOPRO(OPROの拡張版)、MIPRO(ベイズ最適化に基づく手法)、POPRO(プログラムレベルのOPRO)などがあります。
    また、別の研究では「推論能力(Reasoning Capacity)」という指標を導入し、入力、制約、および生成された出力に基づいて複合AIシステムがタスクを遂行する能力を定量化する手法を提案しました。情報理論的なアプローチに基づくこの手法では、ある計画pに基づいてタスクを実行するシステムの推論能力は、pを用いた場合の出力と入力の相互情報量を、すべての可能な計画を用いた場合の相互情報量と比較することで評価されます。

今後の展望

複合AIシステムの最適化は、エンタープライズ環境における複合AIシステムの実用性を高めるため、学術界および産業界の両方で大きな関心を集めています。これまでの研究によって最適化の原則が確立され、さまざまなタスクで最先端の成果が達成されてきました。しかし、さらなる進展が必要であることも明らかです。今後の最適化に向けた具体的な方向性として、包括的ではないものの、明確な次のステップを示す3つの機会を挙げます。

機会1: 多目的最適化(Multi-objective optimization)

独立したタスク特化型のAIパイプラインの一部では、精度と他の指標を同時に最適化する試みがなされていますが、これまでの複合AIシステムの最適化の大部分は精度の向上に重点を置いてきました。精度は重要な指標ですが、複合AIシステムを実際に導入する際には、コストやレイテンシーといった他の指標も考慮する必要があります。単一の目的から複数の目的を考慮する最適化(multi-objective optimization)への移行は、重要かつ必須の課題であり、大きな研究の機会を提供します。

機会2: 多計画最適化(Multi-plan optimization)

多くのシナリオ、特にエンタープライズ環境では、1つのタスクに対して複数の代替プラン(またはプログラム)が存在することがあります。これは、プランナーエージェントが複数のプランを生成できるためです。このような状況では、最適化の対象が固定されたモジュールのセットから、複数のプランを最適化する方向へと拡張されるという新たな機会が生まれます。しかし、このアプローチでは探索空間が非常に大きくなるという課題があります。これに対処するために、分枝限定法(Branch and Bound)などの最適化手法を活用することで、多計画最適化の問題を解決する可能性があります。

機会3: 制約付き最適化(Constrained optimization)

機会1および機会2を踏まえ、多くのアプリケーションでは、特定の制約(例: 予算)内でタスクを遂行する必要があります。こうした制約の下で最適な実行プランを見つけるには、モジュールの選択やハイパーパラメータの最適化を考慮した新たな手法の開発が求められます。

まとめ

複合AIシステムは、LLMと他のツールを統合することで、その適用範囲を拡大できるため、急速に注目を集めています。この流れは「単一のシステムよりも多くのコンポーネントを組み合わせる方が優れている」という考え方を示しています。しかし、単純な統合ではかえって逆効果となり、モノリシックなシステムと比較して最適なパフォーマンスを発揮できない可能性があります。
近年の研究では、複合AIシステムのワークフローに最適化手法を導入することで、さまざまなタスクにおいて成功を収めていることが示されています。しかし、複合AIシステムをエンタープライズ環境に効果的かつ成功裏に展開するには、最適化ワークフローに対する体系的なアプローチが不可欠です。
本記事を通じて述べてきたように、最適化フレームワークは、単なる精度向上にとどまらず、複数の目的(multi-objective: 精度、コスト、レイテンシーなど)、複数の計画(multi-plan optimization)、および制約(特に予算)を考慮する必要があります。これらの最適化目標は包括的なものではありませんが、エンタープライズ環境で複合AIシステムを展開する上で極めて重要な要素です。

執筆者: Sairam GurajadaMegagon Labs

この記事をシェアする
1 Min Read
February 5, 2025
MCRankベンチマークとEXSIR手法を用いることで、構造化された推論によりLLMの性能がこれらの難解なタスクで大幅に向上することを示しました。
4 Min Read
November 7, 2024
AmbigNLG は、NLG の指示における曖昧な仕様を特定し、それを改善することで出力品質を向上させる手法 です。本チュートリアルでは、AmbigNLG を活用する方法について解説します。このチュートリアルでは、以下のステップを順に説明します。 ・指示の中に含まれる曖昧な要素を特定する ・曖昧な指示を明確化し、より効果的なテキスト生成を実現する ・指示の明確化の有無による出力テキストの比較を行う ・インタラクティブな曖昧性軽減を活用し、下流タスクの改善を図る
2 Min Read
July 31, 2024
MEGAnnoは、大規模言語モデル(LLM)の力と人間の専門知識を組み合わせたデータアノテーションフレームワークで、データラベリングの効率化と精度向上を実現します。本記事では、MEGAnnoの機能を詳しく紹介し、具体的なコードスニペットとともに解説します。