はじめに
Databricks Foundation Model API を使用する AI 関数 がめっちゃよかったので紹介したかった.
AI/BI ダッシュボードでの活用例ということで、ノートブックでデータ処理~ダッシュボードで可視化~フォローアップ用のGenieという流れを組んでみる
注意事項
2024/09/10時点の情報です。
また、 今回使用している AI 関数は、 トークンごとの支払いがサポートされているリージョン のみサポートされているので、東日本では実行ができません。
シナリオ
Databricks sample データセットのamazon データセット を使用していきます。
このデータセットには購入者のレビューが入っているため、分類してやることで効率的にデータをグルーピングし、掘り下げる対象を見つけていくことができるねらいです。
これを Databricks AI/BI で可視化分析します
準備
データを確認して、一旦検証のテーブルに保存
df = spark.read.parquet("/databricks-datasets/amazon/data20K/")
display(df.describe())
display(df)
df.write.mode("overwrite").saveAsTable("main.qiita.raw_amazon")
ノートブックでデータ処理 ( SQL での AI 処理)
AI function を使った結果を見ていきます。
翻訳 (ai_translate)
ai_translateを使います。
英語ワカランの民なので、現在この関数は日本語にはチューニングされておらず、サポート外なのですが、ダメ元で日本語訳をかけます
動きました。分類を決めるための概観を知りたかったので十分です
SELECT * , ai_translate(review, 'ja') FROM main.qiita.raw_amazon
LIMIT 20
分類 (ai_classify)
ai_classifyを使います。
こちらも日本語で分類先を定義してみます。
かなり適当に分類先を決めましたが、機能していることがわかります。
SELECT *
, ai_translate(review, 'ja') as review_ja
, ai_classify(review,array(
'日用品'
,'デジタル機器'
,'映画・書籍'
,'食料品'
,'医薬品'
,'家具'
,'衣服'
)) as classify
FROM main.qiita.raw_amazon
LIMIT 20
なお、この程度の分類であればおおむね利用できるレベルでは分類できていましたが、宅配の問題など、しっかり読み取る必要のあるような分類は思うような効果が出せませんでした。
最後に、処理したデータを保存します。
この関数、現時点では処理が重くレート制限もきついみたいなんで、1000件でやりました。
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 ダッシュボードを作っていきます。
基本的な仕組みとしてクエリ結果=データセット作成→ビジュアル化となっていますが、ビジュアルごとにデータセットを作らずに、今回は同じデータセットをソースにすることでビジュアル間のクロスフィルター機能を使うこと意識してみます
ダッシュボード作成ボタンで作っていきます。
データを追加。このsqlをビジュアルで表現したい内容に合わせて加工していきます。
名前提案してくれるの地味にうれしい
単純な件数の表示
カウントはクエリを書かなくても用意されています。
レーティング 2~1 の件数の表示
データを変えていきます。この程度なら SQL 上で問題ありませんが、この手の描画用の加工は固まったらあらかじめテーブル化するようにしましょう。
select *
, case when rating <= 2 then 1 else 0 end low_rating_count
from main.qiita.enrich_amazon
今度は試しに AI にビジュアルを選んでもらいます。
いい感じです。タイトルも自動付与してくれました。
承認して位置を調整
レーティングの分布をみる
棒グラフで分布を確認します。1000件で切っちゃったので rating=5 がなくて残念です。
AI 分類での分類を見る
次は AI 分類をビジュアルに活用します。多くが日用品とデジタル機器であることがわかりました。
テーブルとしての情報も表示
条件付き書式も設定してみました。
クロスフィルターの動作を確認
円グラフからデジタル機器をクリックするときちんとそのレビューに絞られます。
Genie スペースの作成
フォローアップ用のGenie スペースを作成します。
右上のケバブメニューで Genie スペースを作成できます。
ダッシュボードから作成された Genie にはあらかじめExample SQL Queriesが設定されていることがわかります。例文を選択してチャットしてみます。
件数
低いrating の件数
きちんとダッシュボードで使っていたクエリをベースにしていますね
rating の分布
こちらも正常に出力
ダッシュボードでリンク確認
最後にダッシュボードから Genie スペースへの導線を敷くために、URLを取得します
genie へのリンクから
先ほどのURLを張り付けると
ダッシュボード上に Genie 起動ボタンが追加されます。(内容は先ほどのURL に対してのmarkdownでのリンク)
これで AI / BI ダッシュボードの完成です