メインコンテンツへジャンプ

複合 AI システム

Databricks 無料トライアル

複合 AI システムとは

バークレー人工知能研究所(BAIR)のブログの定義によると、複合 AI システムとは、複数の相互作用するコンポーネントを組み合わせることで AI タスクに取り組むシステムのことです。これらのコンポーネントには、複数のモデルへの呼び出し、データ取得システム、外部ツールなどが含まれる場合があります。例えば、検索拡張世代(RAG)アプリケーションは、モデルとデータ検索システムを組み合わせた複合 AI システムの一例です。複合 AI システムは、さまざまな AI モデルやツール、パイプラインの強みを活かし、個々のモデルのみを使用する場合と比較して、パフォーマンス、汎用性、再利用性を向上させます。

複合システム

新しい AI の成果の多くは、複合システムによるものが多くなっています。(ソース

開発者は、最も困難な AI タスクに取り組むために、ますます複合 AI システムを構築しています。このようなシステムは、モデル単独よりも優れた性能を発揮することがよくありますが、コミュニティとしては、このようなシステムとそれを構成するコンポーネントを設計する最良の方法をまだ決定していません。

ガートナーのバナー画像リンク

複合 AI システムを構築するメリット

  • システム設計で改善しやすいタスク:大規模で高性能なモデルを使用することで、AI アプリケーションを向上させることができますが、多くの場合、収穫が減少する傾向があります。さらに、トレーニングやファインチューニングでモデルを改善したりカスタマイズしたりするには、時間とコストがかかります。他のモデルやツールを複合システムに統合することで、単一のモデルで達成できる以上のアプリケーション品質の向上が可能になる場合があります。
  • 動的なシステム:個々のモデルは基本的にトレーニングデータによって制限されます。また、特定の情報や行動を学習し、外部のデータソースを検索したり、アクセス制御を実施したりする機能はありません。システムアプローチは、データベース、コードインタプリタ、許可システムなどの外部リソースを追加することができるため、複合 AI システムは個々のモデルよりもはるかにダイナミックで柔軟です。
  • 制御と信頼の向上:個々のモデルが、事実に基づいた情報や一貫性のある書式の結果を確実に返すようにするのは困難です。そのため、注意深い促し、複数の例、微調整、あるいは LLM から優れた回答を得ることが重要な問題であることを示唆するような回避策が必要になることもあります。LLM を他のツールやデータソースと連携させることで、外部ソースからの正確な情報を LLM に供給したり、ツールを使用して出力フォーマットの制約を強化したりすることで、AI システムをより信頼性の高いものにすることができます。
  • より多くのコスト品質オプション:一般的に、個々のモデルは一定のコストで一定の品質レベルを提供しますが、単一のモデルで利用可能なコスト対品質比は、全てのユースケースに適しているわけではありません。LLM を外部ツールと統合できることで、利用可能なコストと品質の選択肢に柔軟性が高まります。例えば、小型で入念に調整されたモデルとさまざまな検索ヒューリスティックを組み合わせれば、大型で高性能なモデルよりも低コストで良い結果が得られるかもしれません。一方、より大きな予算があれば、外部のツールやデータソースを導入することで、最も大規模で高性能なモデルのパフォーマンスを向上させることができます。

効果的な複合 AI システムの構築方法

複合 AI システムはまだ新しいアプリケーションカテゴリーであるため、その開発と使用を導くベストプラクティスはまだ発展途上です。複合 AI システムにはさまざまなアプローチがあり、それぞれに異なる利点とトレードオフがあります。例をいくつかご紹介します。

  • 制御ロジック:複合AIシステムでは、制御ロジックを定義するコードベースが、特定の条件下で特定のタスクを実行するモデルを呼び出すことで、LLM の表現力の恩恵を受けながら、プログラム制御フローの信頼性を提供できます。他のシステムでは、制御フローに LLM を使用することで、信頼性を犠牲にする可能性はありますが、入力の解釈や動作においてより高い柔軟性を提供できます。Databricks の外部モデルのようなツールは、アプリケーションの異なる部分を異なるモデルにルーティングするプロセスを簡素化することで、制御ロジックを支援します。
  • 時間とリソースの投資先:複合AIシステムを開発する際、システムで使用するモデルやモデルの性能向上に多くの時間とリソースを投じるべきか、システムの他の側面の改善に多くの時間とリソースを投じるべきかは、必ずしも明らかではありませんモデルをファインチューニングしたり、より一般的な能力を持つモデルに切り替えたりすることで、複合 AI システムのパフォーマンスが向上する可能性があります。
  • 測定と最適化:AI モデルを含むあらゆるシステムにおいて評価は重要ですが、取るべきアプローチは用途よって全く異なります。システムによっては、エンドツーエンドのパフォーマンスを評価する個別の指標が適している場合もあれば、異なるコンポーネントを個別に評価する方が理にかなっている場合もあります。例えば、RAG アプリケーションでは、検索と生成のコンポーネントを別々に評価する必要があります。MLflow は、検索や生成など、複合 AI システムのさまざまな側面に対応できる柔軟な評価アプローチを提供します。

急速に変化するアプローチにもかかわらず、効果的な複合 AI システムを構築するための重要な原則がいくつかあります。

  • 強力な評価システムの開発:複合 AI システムは、相互作用する多数のコンポーネントを含む傾向があり、そのうちの 1 つを変更すると、システム全体のパフォーマンスに影響を与える可能性があります。システムのパフォーマンスを測定する効果的な方法を考え出し、これらの評価を記録し、アクセスし、それに基づいて行動するために必要なインフラを構築することが不可欠です。
  • さまざまなアプローチを試す:上述のように、複合 AI システムを構築するための確立されたベストプラクティスはほとんどありません。おそらく、アプリケーション全体の制御ロジックと個々のコンポーネントの両方において、AIモデルやその他のツールを統合するさまざまな方法を試す必要があります。モジュール化は実験に役立ちます。異なるモデル、データ検索、ツールなどの入れ替えをサポートするアプリケーションでは、実験が容易です。MLflow は評価と実験のためのツール群を提供し、複合 AI システムの開発に特に役立ちます。

複合 AI システムの構築における主な課題

複合 AI システムは、AI モデル単独と比較して、いくつかの重要な開発課題をもたらします。

  • より大きな設計空間:複合 AI システムは、1 つまたは複数の AI モデルと、リトリーバーやコードインタプリタ、データソース、コードライブラリなどのツールを組み合わせたものです。通常、これらのコンポーネントにはそれぞれ複数のオプションがあります。例えば、RAG アプリケーションの開発では、通常、埋め込みとテキスト生成に使用するモデル、使用するデータソース、データの保存場所、使用する検索システムを(少なくとも)選択する必要があります。明確なベストプラクティスがない場合、開発者はこの広大なデザイン空間を探索し、実用的なソリューションを見つけるために多大な労力を費やさなければなりません。
  • システムコンポーネントの協調最適化:AI モデルは多くの場合、特定のツールでうまく動作するように最適化する必要があります。複合 AI システムの構成要素の 1 つを変更すると、システム全体の動作が予想外の形で変化する可能性があり、全ての構成要素をうまく連動させることは困難です。例えば、RAG システムでは、ある LLM はある検索システムで非常にうまく機能するかもしれませんが、別の LLM はそうではないかもしれません。
  • 複雑なオペレーション:LLM だけでは、サービス、監視、セキュリティの面ですでに困難が伴います。他の AI モデルやツールと組み合わせることで、これらの課題はさらに深刻になります。これらの複合システムを使用する場合、開発者はアプリケーションの監視とデバッグを行うために、MLOps と DataOps のツールとプラクティスを独自の方法で組み合わせる必要があります。Databricks レイクハウスモニタリング、複合 AI システムの複雑なデータとモデリングパイプラインに優れた可視性を提供します。

関連資料

用語集に戻る