10
3

Databricks の AI 関数がすごかったので AI/BI ダッシュボードに活用してみる

Last updated at Posted at 2024-09-10

はじめに

Databricks Foundation Model API を使用する AI 関数 がめっちゃよかったので紹介したかった.

AI/BI ダッシュボードでの活用例ということで、ノートブックでデータ処理~ダッシュボードで可視化~フォローアップ用のGenieという流れを組んでみる

注意事項

2024/09/10時点の情報です。

また、 今回使用している AI 関数は、 トークンごとの支払いがサポートされているリージョン のみサポートされているので、東日本では実行ができません。

image.png

シナリオ

Databricks sample データセットamazon データセット を使用していきます。

このデータセットには購入者のレビューが入っているため、分類してやることで効率的にデータをグルーピングし、掘り下げる対象を見つけていくことができるねらいです。

これを Databricks AI/BI で可視化分析します

準備

データを確認して、一旦検証のテーブルに保存

pyspark

df = spark.read.parquet("/databricks-datasets/amazon/data20K/")

display(df.describe())
display(df)

df.write.mode("overwrite").saveAsTable("main.qiita.raw_amazon")

image.png

ノートブックでデータ処理 ( SQL での AI 処理)

AI function を使った結果を見ていきます。

翻訳 (ai_translate)

ai_translateを使います。

英語ワカランの民なので、現在この関数は日本語にはチューニングされておらず、サポート外なのですが、ダメ元で日本語訳をかけます

動きました。分類を決めるための概観を知りたかったので十分です

sql

SELECT * , ai_translate(review, 'ja') FROM main.qiita.raw_amazon
LIMIT 20

image.png

分類 (ai_classify)

ai_classifyを使います。

こちらも日本語で分類先を定義してみます。

かなり適当に分類先を決めましたが、機能していることがわかります。

sql

SELECT * 
  , ai_translate(review, 'ja') as review_ja
  , ai_classify(review,array(
    '日用品'
    ,'デジタル機器'
    ,'映画・書籍'
    ,'食料品'
    ,'医薬品'
    ,'家具'
    ,'衣服'
    )) as classify
FROM main.qiita.raw_amazon

LIMIT 20

image.png

なお、この程度の分類であればおおむね利用できるレベルでは分類できていましたが、宅配の問題など、しっかり読み取る必要のあるような分類は思うような効果が出せませんでした。

最後に、処理したデータを保存します。
この関数、現時点では処理が重くレート制限もきついみたいなんで、1000件でやりました。

sql

CREATE
OR REPLACE TABLE main.qiita.enrich_amazon AS
SELECT
  *,
  ai_translate(review, 'ja') as review_ja,
  ai_classify(
    review,
    array(
      '日用品',
      'デジタル機器',
      '映画・書籍',
      '食料品',
      '医薬品',
      '家具',
      '衣服'
    )
  ) as classify
FROM
  main.qiita.raw_amazon
LIMIT 1000

AI/BI ダッシュボードで可視化

AI/BI ダッシュボードを作っていきます。

基本的な仕組みとしてクエリ結果=データセット作成→ビジュアル化となっていますが、ビジュアルごとにデータセットを作らずに、今回は同じデータセットをソースにすることでビジュアル間のクロスフィルター機能を使うこと意識してみます

image.png

ダッシュボード作成ボタンで作っていきます。

image.png

データを追加。このsqlをビジュアルで表現したい内容に合わせて加工していきます。

image.png

名前提案してくれるの地味にうれしい

image.png

単純な件数の表示

カウントはクエリを書かなくても用意されています。

image.png

レーティング 2~1 の件数の表示

データを変えていきます。この程度なら SQL 上で問題ありませんが、この手の描画用の加工は固まったらあらかじめテーブル化するようにしましょう。

sql

select * 
    , case when rating <= 2 then 1 else 0 end low_rating_count

from main.qiita.enrich_amazon

image.png

今度は試しに AI にビジュアルを選んでもらいます。

image.png

いい感じです。タイトルも自動付与してくれました。

image.png

承認して位置を調整

image.png

レーティングの分布をみる

棒グラフで分布を確認します。1000件で切っちゃったので rating=5 がなくて残念です。

image.png

AI 分類での分類を見る

次は AI 分類をビジュアルに活用します。多くが日用品とデジタル機器であることがわかりました。

image.png

テーブルとしての情報も表示

image.png

条件付き書式も設定してみました。

image.png

クロスフィルターの動作を確認

円グラフからデジタル機器をクリックするときちんとそのレビューに絞られます。

image.png

Genie スペースの作成

フォローアップ用のGenie スペースを作成します。

右上のケバブメニューで Genie スペースを作成できます。

image.png

image.png

ダッシュボードから作成された Genie にはあらかじめExample SQL Queriesが設定されていることがわかります。例文を選択してチャットしてみます。

image.png

件数

image.png

低いrating の件数

きちんとダッシュボードで使っていたクエリをベースにしていますね

image.png

rating の分布

こちらも正常に出力

image.png

ダッシュボードでリンク確認

最後にダッシュボードから Genie スペースへの導線を敷くために、URLを取得します

image.png

genie へのリンクから

image.png

先ほどのURLを張り付けると

image.png

ダッシュボード上に Genie 起動ボタンが追加されます。(内容は先ほどのURL に対してのmarkdownでのリンク)

image.png

これで AI / BI ダッシュボードの完成です

image.png

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3