IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

グーグルのクラウドを支えるテクノロジー

CTC 教育サービス

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes 

第218回 マルチエージェントによるデータ可視化システム(パート1) (中井悦司) 2026年3月31日公開

はじめ

 今回からは、2025年に公開された論文「CoDA: Agentic Systems for Collaborative Data Visualization」に基づいて、データの可視化処理をマルチエージェントで実行するアーキテクチャー「CoDA(Collaborative Data-visualization Agents)」を紹介していきます。今回は、マルチエージェントの考え方と CoDa のアーキテクチャーを説明します。

マルチエージェントによるデータ可視化システム

 はじめに、一般的なマルチエージェントのアーキテクチャーを簡単に説明します。いわゆる「AIエージェント」は、大規模言語モデル(LLM)の推論機能を利用して、指定されたタスクを自律的に実行するシステムです。この時、与えられたタスクを複数のサブタスクに分解して、サブタスクごとに専用のエージェントを用意するのがマルチエージェントのアーキテクチャーです。下記のブログ記事では、「リサーチエージェント」「ライターエージェント」「レビューエージェント」の3種類のエージェントが連携して、指定のテーマでブログ記事を執筆するシステムが解説されています(図1)。

fig01

図1 マルチエージェントによるブログ記事執筆システム(ブログ記事より抜粋)

 冒頭の論文では、可視化対象のデータとユーザーからの指示に従って、論文などに掲載するグラフを自動生成する仕組みをマルチエージェント・アーキテクチャーで実装した例が紹介されています。最近のLLMはプログラムコードを出力する機能を持っているので、単体のLLMを利用して、グラフを描画するコードを出力することもできますが、全体の作業を複数のエージェントに分解することで、より高品質なグラフが生成できます。
 特に最近の研究では、エージェントの役割を複数のサブタスクに分解する際は、「理解(Understanding)」「計画(Planning)」「生成(Generation)」「自己反省(Self-Reflection)」の4つのフェーズに分けることで、エージェントシステム全体の性能が大きく向上することがわかってきました。この論文で解説している「CoDA(Collaborative Data-visualization Agents)」と呼ばれるシステムは、この考え方に従って、8種類のサブエージェントがこれら4つのフェーズに従って処理を行います(図2)。

fig02

図2 CoDA のアーキテクチャー概要(論文より抜粋)

 論文内では、CoDAとの比較対象として、既存の類似システム(MatplotAgentVisPathCoML4VIS)との性能比較を行っています。いずれのシステムも複数のサブエージェントが段階的に処理を進めるパイプライン型のシステムですが、前述の4つのフェーズに従う CoDA の方がより高い性能を発揮することが報告されています(図3)。

fig03

図3 既存の類似システムと CoDA の比較例(論文より抜粋)

CoDA を構成するサブエージェント

 CoDAを構成する8種類のサブエージェントの役割を説明します。まず、「理解(Understanding)」のフェーズは、次の2つのサブエージェントが担当します。

  • Query Analyzer:ユーザーの指示文に基づいて、どのようなグラフを描けばユーザーの要求を満たせるかを分析します。あわせて、グラフを描く際の重要ポイントや手順の概要などを生成します。(実際のデータは参照せずに、あくまでユーザーの意図を尊重した分析を行います。)
  • Data Processor:データの主要な統計値を参照して、グラフの描画に必要な列や集計方法を提案します。また、データの特性に応じた可視化方法のヒントを与えます。(データ量が膨大な可能性があるため、データ全体を参照するのではなく、事前にPandasで取得した統計値のみを参照します。)

 「計画(Planning)」のフェーズは、次の3つのサブエージェントが担当します。

  • VizMapping Agent:前段のサブエージェントがまとめた「ユーザーの意図を満たす方法」と「グラフの描画に必要な列や集計方法、可視化のヒント」を総合して、より具体的なグラフの描画方法を提案します。グラフの種類、各軸のラベルとマッピングするデータ、マッピングするデータを計算する方法など、グラフを描画する際の論理的な手順をまとめます。
  • Design Explorer:グラフのレイアウトやカラーリング、フォントサイズなど、「見栄え」に関する方針を決定します。
  • Search Agent:Matplotlibの公式サイトにアクセスして、これから生成するものに類似したグラフを描画するコードのサンプルを収集します。

 「生成(Generation)」のフェーズは、次の2つのサブエージェントが担当します。

  • Code Generator:ここまでの情報を元にして、実際にグラフを描画するコードを生成します。
  • Debug Agent:Code Generatorが生成したコードを実行して、エラーが発生した場合は、原因を解明して、コードを修正します。

 最後に「自己反省(Self-Reflection)」のフェーズは、次のサブエージェントが担当します。

  • Visual Evaluator:生成されたグラフの画像ファイルを分析して、ユーザーの要求を満たしているかを確認します。その他にも、数学的な正確性やグラフの見やすさ、アクセシビリティなどを含めて、総合的に判断します。

 最後のVisual Evaluatorは、生成されたグラフを受け入れるかどうかの判断を行い、受け入れできない場合は、Design Explorerに処理を戻して、グラフのデザインとコード生成をやり直します。最大で5回の処理を行い、生成した中で最も品質の高いグラフを最終成果物として出力します。

次回予告

 今回は、2025年に公開された論文「CoDA: Agentic Systems for Collaborative Data Visualization]」に基づいて、データの可視化処理をマルチエージェントで実行するアーキテクチャー「CoDA(Collaborative Data-visualization Agents)」について、マルチエージェントの考え方とCoDaのアーキテクチャーを説明しました。次回は、それぞれのサブエージェントの具体的な出力例を紹介していきます。

Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

 

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes