Flint:AI時代の可視化言語
Flintは、Microsoft Researchが開発したオープンソースの可視化中間言語であり、AIエージェントが簡潔で人間が編集可能な仕様から表現力豊かで視覚的に洗練されたチャートを生成するのを支援します。セマンティックタイプを使用して設計の詳細を自動的に処理し、複数のバックエンドをサポートし、Data Formulatorプロジェクトで使用されています。
Flintは、Microsoft Researchが開発した可視化中間言語で、AI駆動のチャート生成に特化しています。AIエージェントが簡潔で人間が編集可能な仕様から表現力豊かで視覚的に洗練されたチャートを作成できるようにし、面倒な低レベルパラメータの設定を不要にします。
従来の方法では、優れたチャートを作成するために多くの設計上の決定が必要でした:日付の解析、スケールの開始点、値の書式設定、ラベルのスペース、色の選択など。Vega-Lite、Apache ECharts、Chart.jsなどの最新の可視化ライブラリはこれらの制御を提供しますが、トレードオフがあります。システムデフォルトに依存する短い仕様は退屈なチャートを生成しがちであり、洗練された可視化には冗長でエラーが発生しやすい詳細なパラメータが必要です。
大規模言語モデル(LLM)とAIエージェントが可視化作業を引き受けるにつれて、このトレードオフはより顕著になります。エージェントは複雑で低レベルの仕様の詳細を管理する際に特にエラーを起こしやすく、その結果生成される脆弱なコードは人間が検査、修正、再利用するのが困難です。Flintはその中間を提供します:コンパクトな仕様で、エージェントが確実に生成でき、人間が直接編集でき、システムが適切に設計されたチャートにコンパイルできます。
Flintの仕組みは、セマンティックタイプとチャート仕様から低レベルの詳細を自動的に推論することです。データ仕様はセマンティックタイプとオプションのメタデータをキャプチャし、チャート仕様はチャートタイプを定義し、フィールドを視覚チャネル(x、y、色、サイズ、ファセットなど)にマッピングします。コンパイラはこの情報から解析ルール、スケール、軸、集計、書式設定、配色、レイアウトを導出し、最終的な可視化をレンダリングするためのバックエンドネイティブ仕様を生成します。
中間表現がレンダリングライブラリから分離されているため、Flintは異なるAPIとプログラミングモデルを持つバックエンドをターゲットにできます。ユーザーは同じコンパクトなチャート意図を維持しながら、Vega-Lite、ECharts、Chart.jsにコンパイルし、可視化に最適なバックエンドを選択できます。
FlintはLLMベースのチャート生成に適しています。モデルは、完全な低レベル可視化パラメータよりもセマンティックタイプを推論するのが容易だからです。フィールド名、値パターン、一般的なデータ知識は、エージェントが列が日付、価格、パーセンテージなどを表すかどうかを認識するのに役立ちます。その後、コンパイラが設計上の決定を処理します。研究では、FlintはLLM自己評価パイプラインでより高いスコアを獲得しました。
エージェントが簡単にアクセスできるように、Flintはflint-chart-mcpもリリースしています。これは、エージェントがチャットやコーディング環境内でチャートを作成、検証、レンダリングできるModel Context Protocol(MCP)サーバーです。Flintは現在、Microsoft ResearchのプロジェクトData Formulatorを支えています。
Flintはオープンソースで、プロジェクトサイトとGitHubリポジトリが公開されており、コミュニティの探索と構築を歓迎しています。