AIとデータ分析のやり方ついて考えたことを整理します。
RAGとかそういうのじゃなくてふつうにデータ分析するときAI活用するっていうとをプラスで考える必要があるのかっていうことをまとめます。
データを分析するときにAIを活用するとなると現状とれる選択肢は大きく下記のようになります。
- 直接データを与えて分析させる
- 事前に定義したモデルをツールとして呼び出す
- 自然言語からSQLを生成する
下にいくほど分析できる範囲が広くなりますが精度が問題になります。
直接データをAIに与える
この方法はおそらく直感的に理解ができると思います。
データをそのままプロンプトとして渡して分析させるという方法です。
この方法はお手軽ですが多くの問題があります。
1つ目はデータが大きいと扱えなくなることです。
LLMに読み込ませることができるデータ量には限りがあります。
データ量が増えるとコストも高くなります。
定期的に実行する必要がある処理として選び難いです。
2つ目はAIはデータの集計のような処理の正確性に懸念点がある点です。
データを計算したり集計するような処理があまり得意ではありません。
昔に比べるとだいぶマシになりましたが依然として信頼できるとは言い難いでしょう。
3つ目はメタデータを渡す手段がないことです。
データだけ渡してもそのデータをどのように分析することができるのかAIにはわかりません。
そうなると適宜チャットなどで情報を渡すなどのやりようはあります。
しかし、これは手間というだけでなく統制が難しいため間違った分析が起きる可能性を高めます。
ツールを呼び出す
事前に定義したクエリのフォーマットにパラメータを与えてクエリを作成し実行するやり方です。
クエリの大部分は事前に構築したものなので間違った分析が減らしながらある程度の自由度を確保することができます。
おそらく今もっとも注目を浴びている手段の1つです。
この方法を実行する手段はいくつかありますが基本的には事前に定義したクエリとパラメータをAPIやMCP経由でツールとして利用するのが多いでしょう。
もともとセマンティックレイヤーとして同様の利用方法はあったのですが、AIチャットツールとの連携を考えると便利な使い方です。
クエリ自体はセマンティックモデルとして事前に定義されたものなので集計の品質は担保されています。
そこにくわえて、自然言語でクエリを発行したりパラメータを決めることができるため誰でもどこからでも利用できます。
問題点として、セマンティックモデルを開発するだけの工数が必要だという点でしょう。
変化の激しい環境では構築するだけの工数を割くことができない場合は容易に想定できます。
そのため、ある程度固定化された分析や変化のそこまで激しくない領域における分析で強みがあります。
今後はAIチャットツールは1人1アカウントが当然のようになっていくでしょう。
そのなかでAIチャットツールがあれば誰でも簡単にデータを取得できるというのは便利です。
自然言語からSQLを生成する
いわゆるText to SQLです。
自然言語からSQLを発行し分析結果を得る方法です。
この方法と1つ上のツールとして利用する方法との大きな違いはツールではどこまで事前に定義されているか、という点です。
ツールではセマンティックモデルとしてほぼクエリが作られており一部のパラメータが変更できるのみになっています。
一方でText to SQLは自由度が高く作成されたSQLが正しいことは保証されません。
この生成物の保証ができない、という点が大きな問題になります。
生成されたクエリが目的に対して正しいリレーションシップやカラムを使うよう統制できません。
どれだけメタデータを管理してもブレがでます。
また、人によって集計の定義がブレるというリスクも発生します。
メタデータで指標の定義を記述することである程度は管理できますが限界はあります。
AIへ渡すコンテキストによってブレるためメタデータと利用者のスキルに依存しがちです。
一方で、このやり方は変化の激しい環境でも柔軟性をもって対応しやすくなります。
セマンティックモデルの構築は確実ですが変化が激しい環境では追いつけなくなりがちです。
分析者のリテラシーが高ければ効率よく様々な分析ができるというメリットがあります。
これらの問題を踏まえるとText to SQLは広く社内に利用を開くというのはこのようなリスクを飲み込める環境が前提となるでしょう。
まとめ
AIにデータを直接読み込ませる方法は簡単ですがあまり汎用性高くうまくいくやり方とは言い難いでしょう。
データ量が少ない場面では簡便ですが不安が残ります。
それよりはAIと表計算ソフトを組み合わせるなどのやり方がよいでしょう。
セマンティックモデルを構築してツールとして量する方法はAIからの利用を考えると非常に便利です。
統制と自由度をコントロールできる点がAIとかみ合わせがよいです。
一方で開発工数がどうしても必要なため変化が激しい場合や幅広い汎用性を求める場合はアンマッチです。
Text to SQLはさまざまな場面で利用できますが品質と統制が問題になります。
メタデータの管理にあわせて分析者がSQLやデータについてある程度の知識をもって判断できる必要があります。
IT系のスタートアップなどであれば全社的にリテラシーが高く変化が激しいため、メタデータを管理しながらText to SQLを積極的に利用する方針がハマるかもしれません。
今回は3つのケースにわけてAIとデータの活用について考えてみました。
AIの進化は止まることを知りませんが、この記事の内容も1年も経てば陳腐化しているかもしれませんね。