Databricks AI/BI Genieを使って自然言語検索でデータ分析をしてみた

はじめに

こんにちは、イノベーションセンターの真崎です。 6月にDatabricksの年次カンファレンス Data+AI Summit 2024 が開催され、AI/BI GenieというDatabricks上のデータを自然言語で検索・分析・可視化できる機能が発表されました。 本記事では、AI/BI Genieについて機能の概要、及び実際に使用した流れを解説します。

Databricksとは

Databricksはデータウェアハウスとデータレイクの両方の強みを兼ね備えたデータとAIのためのオープンな統合プラットフォーム「データ・インテリジェンス・プラットフォーム」を提供しています。

AI/BI Genieとは

AI/BI Genieとは、Databricks上の構造化データに対して自然言語を用いて検索、分析、可視化を行うことができる機能です。 Databricksでユーザーが特定のデータにアクセスして分析したい場合、従来はPythonなどのプログラミング言語やSQLを用いてデータを抽出する必要がありました。 しかし、AI/BI Genieの登場により自然言語を用いて対話的にデータを抽出して分析できるようになりました。

AI/BI Genieの構成要素

ここでは、AI/BI Genieの構成要素であるGenieスペース、及びGenieチャットの概要について解説します。

Databricksのコンソール上で、AI/BI GenieはGenie>Genieスペース>Genieチャットという構造になっています。

Genie、Genieスペース、Genieチャットの役割は以下のようになっています。

  • Genie
    • Genieスペースを管理する画面
  • Genieスペース
    • チャットのまとまり
    • Databricksの計算リソースであるクラスター設定やテーブル設定も管理できる
  • チャット
    • Genieと会話するためのインターフェース
    • 会話の履歴はGenieスペース内のチャットごとに管理される

Genieスペースでは以下の設定を管理できます。

  • Title
    • スペースの名前
  • Description
    • スペースの説明
  • Default warehouse
    • スペースで使用するクラスター
  • Tables
    • スペースで検索・分析・可視化の対象とするテーブル
  • Sample Question
    • チャットUI上で、質問可能な内容の例を表示する

AI/BI Genieの設定方法については公式ドキュメントを参照してください。

Genieと会話してみる

ここでは、AI/BI Genieに対して実際に自然言語でデータの取得を依頼して意図したデータを適切に取得できるか、実際にAI/BI Genieを使用して確認します。

やりたいこと

Databricks内のデータから、誰がどのくらいDatabricksにアクセスしているかについて、該当のデータを持つテーブルを検索・集計・可視化する。

アプローチ

システムテーブル(system.access.audit )は監査ログに関するテーブルとして設計されており、ユーザーアクセスに関するイベントを記録しています。 そのため、今回のアクセス解析はこのテーブルを集計することで実現可能です。 そこで以降では、AI/BI Genieがシステムテーブル(system.access.audit)を使用して正しく集計・可視化できるかを確認します。

※本記事で扱うシステムテーブルは、事前に有効化しておく必要があります。

Genieスペースの作成

まず、Genieスペースの設定項目を設定し、Genieスペースを作成します。

AI/BI Genieはユーザーの質問に対してTablesで選んだテーブルを基に情報を検索するので、事前に該当しそうなテーブルを検索対象に入れておきます。

今回はシステムによる自動作成のログテーブルを検索対象にしたいのでsystem.access 配下のテーブルにチェックを入れます。

データ検索

続いて、Genieスペースが作成できると自動でチャットUIに遷移するのでこの画面で会話を始めます。AI/BI Genieに問い合わせをするには画面下部のチャットボックスに質問文を入力します。

まず、目的のデータの集計が行えるテーブルがあるかを自然言語で問い合わせます。

system.access.audit テーブルからアクセス回数を集計できるということなので、system.access.audit テーブルのデータがどういったものか尋ねます。

AI/BI Genieによると、system.access.audit テーブルはDatabricks ワークスペース内でのユーザー行動に関する監査ログであるということであり、公式ドキュメントのテーブル定義と合致するため正しい分析設計ができていることが分かりました。

データ集計

これまでと同様に自然言語でAI/BI Genieにユーザーごとのログの集計を依頼をすると、AI/BI Genieが生成したSQL文が実行され、集計結果がインターフェースに表示されます。

なお、AI/BI Genieが実行したSQL文はAI/BI Genieの回答に添付されています。

データ可視化

最後に、AI/BI Genieに上記のカウント結果を円グラフで可視化してもらいました。

AI/BI Genieに関するTips

グラフの可視化にはVega-Liteが利用可能

AI/BI Genieが可視化に使うツールはVega-Liteがデフォルトとなっていますが、matplotlibやseabornなど別のライブラリも使えるかを確認してみます。

AI/BI Genieにpythonのseabornライブラリを用いた可視化を依頼しましたが、AI/BI GenieからはVega-Liteを用いた可視化のみ可能と返ってきました。

実際にAI/BI Genieが可視化したデータを見ると全てのグラフがVega-Liteが対応するjson形式で描画されています。

円グラフ描画時の注意点

AI/BI Genieが生成した円グラフは、デフォルトでは件数順にソートされません。 そのため、AI/BI Genieが理解できるようにソートを指示する必要があります。 以下では未ソートの円グラフとソートされた円グラフの作成方法をそれぞれ見ていきます。

  • デフォルトの円グラフ(未ソート)

まず、AI/BI Genieに詳細を指定せず円グラフを描いてもらうと、件数順のソートなどはされないまま円グラフが可視化されます。

  • ソートされた円グラフ

件数順のソートができていない旨を指摘すると、AI/BI Genieがコードの問題点をセルフレビューし、新たな円グラフの作成コードを提案します。

ここでAI/BI Genieに対して再度可視化を依頼すると、AI/BI Genieによりソートされた円グラフが可視化されます。

AI/BI Genieへの可視化の依頼方法を工夫することで、ソートされた円グラフを作成できました。

なお、棒グラフや折れ線グラフについては特に質問の仕方を工夫せずとも件数ソートができます。

まとめ

本記事では以下の2点について解説をしました。

  • AI/BI Genieの概要
  • AI/BI Genieを用いたデータ検索・集計・可視化

AI/BI GenieはDatabricks上のデータを自然言語で検索・分析・可視化できるDatabricksのサービスです。AI/BI Genieの登場によりDatabricksでのデータ活用がプログラミングを使えないビジネス現場レベルまで浸透することが予想されます。

© NTT Communications Corporation 2014