APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

DatabricksとDSPyで加速するマルチエージェント開発:単一LLMの限界を超える実践的アプローチ

DatabricksとDSPyで加速するマルチエージェント開発:単一LLMの限界を超える実践的アプローチ


生成AIの世界では、単一の巨大な言語モデル(LLM)にすべてを任せる時代が終わりを告げようとしています。代わって注目を集めているのが、複数の専門エージェントが協調してタスクをこなす「マルチエージェントシステム」です。本記事では、DatabricksのDelivery Solutions ArchitectであるAustin Choi氏による講演「Accelerate End-to-End Multi-Agents on Databricks and DSPy」の内容を基に、この新しいパラダイムへの移行がなぜ必要なのか、そしてDatabricksとDSPyを組み合わせることで、いかにして高効率・高性能なシステムを構築できるのかを、具体的なデモを交えながら解説します。

※本記事は、Data + AI Summit のセッションを現地で視聴したエンジニアが、内容をできる限り客観的に共有することを目的に、生成AIを活用して作成したものです。 ― エーピーコミュニケーションズ Lakehouse部

なぜ、いまマルチエージェントなのか?

これまで多くの開発現場では、GPT-4のような高性能なフロンティアモデル一つで、あらゆるタスクを処理しようと試みてきました。しかし、このアプローチにはいくつかの無視できない課題があります。Choi氏は、コスト、精度、レイテンシの観点から、単一モデル依存の限界を指摘しました。


Choi氏が挙げた金融情報サービス企業FactSetの事例はこの課題を象徴しています。当初、単一のGPT-4モデルでタスクを実行したところ、精度は59%、レイテンシは15秒という結果でした。本番運用には厳しい数値です。

そこで彼らはシステムを複数の専門エージェントに分割するマルチエージェントアプローチに切り替えました。画像分類には古典的な機械学習モデル、テキスト抽出にはそれに特化した小型モデルを使い分けた結果、精度は85%に向上し、レイテンシは6秒へと劇的に改善しました。タスクを適材適所で処理することで、推論コストや時間を削減できたのです。

開発を支える2つのキーテクノロジー:DatabricksとDSPy


このマルチエージェントシステムを効率的に構築・運用するための基盤として、Choi氏はDatabricksプラットフォームとDSPyフレームワークの組み合わせを提案しています。

Databricks:統合されたエンドツーエンド基盤

Databricksは、データエンジニアリングからAI/MLモデルの開発、運用までを一つの場所でサポートする統合プラットフォームです。
* Delta Lake: データの信頼性を担保するストレージレイヤーとして機能します。
* MLflow: モデルの実験管理やログ記録に使えるオープンソースツールです。
* Unity Catalog: データ資産のメタデータ管理やガバナンス機能を提供します。

これらが統合されることで、インフラのサイロ化を避け、開発者は価値創造に集中できます。

DSPy:宣言的で軽量なエージェント開発フレームワーク

DSPyは、Pythonライブラリとして提供されている、宣言的なエージェント開発フレームワークです。Choi氏が特に強調したのは、その「宣言的」な性質です。

従来のフレームワークでは、開発者がプロンプト設計やチェーンロジックを詳細に記述する必要がある場合があります。一方、DSPyではdspy.Signatureを使い、どのような入力からどのような出力を得たいかをPythonの型ヒントのように定義するだけで済みます。DSPyは、定義とサンプルデータを活用して、プロンプトの生成や最適化をサポートします。

また、DSPyはプロバイダーの抽象化にも優れており、OpenAI、Anthropic, Bedrock、Databricksなど複数のLLMを、コードの大部分を変更せずに切り替えられます。これにより、特定のモデルへのロックインを避けつつ、実験サイクルを高速化できます。

医療文書処理デモ:マルチエージェントが動く様子

講演のハイライトは、医療文書処理のライブデモでした。ある医療機関に送られてきたPDFファイルを、マルチエージェントシステムがどのように情報抽出し、既存データを更新するかを示すものです。

このデモのワークフローは、以下の4ステップで構成されていました。

  1. PDFの初期解析とテキスト抽出

    受け取ったPDFを画像に変換し、Vision Transformerモデルで画像分類を試みます。判別が難しい場合はOCRツールのTesseractを呼び出し、画像からテキストを抽出。高価なLLMを最初から使わず、低コストなツールで段階的に処理を進める手法です。

  2. Genieエージェントによる情報照会

    抽出テキストを基に、DatabricksのGenieエージェントが患者名や保険情報を特定。保険関連のVector Searchインデックスを検索し、必要な保険控除額の情報を取得します。

  3. Sparkエージェントによるデータ格納

    収集した情報をSparkエージェントが受け取り、構造化データに整形。Delta Lake上の患者テーブルに書き込み、データベースを更新します。

  4. フロー全体の管理

    これらのステップはDSPyのdspy.Moduleで実装され、各エージェントの役割はdspy.Signatureで定義。純粋なPythonロジックで連携が記述されるため、可読性とメンテナンス性が高いワークフローとなっています。

マルチエージェント開発のベストプラクティス

Choi氏が共有した成功のポイントをまとめます。

  • 古典的MLとFunction Callingを活用する
    画像分類や単純なテキスト処理は、LLMよりも既存技術のほうが効率的な場合があります。コストとレイテンシの削減に有効です。
  • モデルのファインチューニングを検討する
    小規模モデルでも、ドメイン特化のデータでチューニングすれば高性能を発揮することがあります。
  • ロギングとトレーシングを徹底する
    システムの複雑化に伴い、各エージェントの入出力やコストを記録し、ボトルネックを可視化しましょう。
  • エラーハンドリングを組み込む
    実運用では予期せぬ障害が起こります。DSPyモジュール内にtry-exceptを配置するなど、堅牢性を高める工夫が必要です。

まとめと今後の展望

Austin Choi氏の講演は、生成AIアプリケーション開発が単一モデル依存から脱却し、マルチエージェントアーキテクチャへと進化しつつあることを示しています。Databricksの統合プラットフォームとDSPyの宣言的フレームワークの組み合わせは、開発効率とパフォーマンスを両立させる一つの有力な選択肢です。

今後は、DSPyのオプティマイザー機能を活用してプロンプト自体をデータドリブンで改善するなど、さらなる自動化・最適化が期待されます。マルチエージェントシステムの世界はまだ始まったばかり。開発者は新しいツールとアプローチを学び続け、次世代のAIアーキテクチャを共に切り拓いていきましょう。