社内外のデータをAIやBI等で活用するために、Databricksは非常に強力なプラットフォームの一つです。その一方で、Databricksを活用して自社でどんなことができるかよく分からないという声もよく聞きます。そんな方々にお勧めの、ビジネス課題に応じたDatabricksのユースケースとその実行サンプルを生成AIで自動生成してくれる「DemoArigato」のアプリについてご紹介します。
入手方法
DemoArigatoはこちらのGitHubリポジトリから入手できます。DemoArigatoはPythonおよびStreamlitを中心に利用して開発されており、OSSとしてソースコードも公開されています。
ちなみにDemoArigatoの名前の由来については、私は知りません。
実行方法
DemoArigatoのGitHubリポジトリのREADMEに記載されている手順に従って、初期設定を実施します。DemoArigatoを実行するためには、手元で利用可能なDatabricksワークスペースの実行環境が必要になります。
実行例
DemoArigatoはDatabricks Apps上にホストされたStreamlitアプリとして、Web画面上で動作します。Databricks AppsのデプロイURLからアプリ画面を開き、一通り操作してみます。
ビジネス課題
最初の画面で、Databricksを利用したデータ活用で解決したいビジネス課題について入力します。今回はQiitaを想定して「技術記事投稿サイトのいいね獲得数の向上」のテーマで試してみます。
このように、入力したビジネス課題に対するデータ活用による改善ストーリーが提案されました。DemoArigatoでは、このようなビジネス課題のストーリー等をDatabricks上で提供される生成AIモデルを利用して自動生成します。今回はdatabricks-claude-3-7-sonnetの生成AIモデルを利用していますが、この生成AIモデルはconfig.jsonファイルのENDPOINT_NAMEパラメータから種類を変更することが可能です。
ストーリーの再生成
もし自動生成された内容が気に入らなければ、「ストーリーラインを生成」ボタンを押して、気に入った改善ストーリーが出現するまで繰り返すことが可能です。
データスキーマ
左メニューの「データスキーマ」のラジオボタンを選択して、「スキーマを生成」ボタンを押します。
サンプル用のデータスキーマが生成されました。
スキーマの内容を見てみると、article_id(記事ID)列に対してsyntax_highlight_used(シンタックスハイライトの利用有無)列やsocial_share_count(いいね獲得数)列などが定義されており、どうやら技術記事ごとのレイアウト属性情報等を抜き出して、その記事のいいね獲得数と一緒に表形式で表現したようなデータ構造のようです。
サンプルデータ作成
次に、左メニューの「データ作成」のラジオボタンを選択して、「データを生成」のボタンを押してサンプルデータを生成します。
サンプルデータが手元のDatabricks環境上のテーブルとして作成されました。
「Databricksでテーブルを表示」のリンクをクリックすると、Databricks Unity Catalogの画面に遷移して実際に作成されたサンプルデータを確認することができます。
AI/BI
左メニューの「AI/BI」に移動し、「AI/BIのサンプルプロンプトを作成」ボタンをクリックします。
Databricks AI/BI Genie等の機能で利用できるサンプルプロンプトの候補が表示されました。このサンプルプロンプトをコピペして実行することで、データ分析イメージを掴むことができます。
モデル学習
左メニューの「モデル学習」に移動し、「モデル学習ジョブを作成」ボタンをクリックします。しばらく待つと、下記のような画面が表示されます。
実験の進捗について、「Databricksで実験を表示」をクリックしてみます。
Databricks AutoMLの結果画面が表示されました。ターゲット列がsocial_share_count(いいね獲得数)とあるので、技術記事のレイアウト属性情報を入力値からその記事のいいね獲得数を予測するモデルを自動作成してくれています。
Databricks AutoML機能の予測モデル
Databricks AutoML機能で自動生成された予測モデルは、Databricks上のpythonノートブックとして出力されます。腕に自信があるデータサイエンティストであれば、自身でpythonコードを編集して予測モデルをチューニングすることが可能です。
ジョブ実行
左メニューの「ジョブ実行」に移動し、「エンドツーエンドパイプラインの作成と実行」ボタンをクリックします。
データパイプラインが作成されました。内容を確認するために、「Databricksでジョブを表示」をクリックします。
モデル学習に利用した合成データをgoldテーブルとして、そのgoldテーブルを作成するためのbronzeテーブルおよびsilverテーブルとその一連のデータパイプラインが、goldテーブルから逆算して生成されました。
Unity Catalogからgoldテーブルのリネージ情報を確認すると下図のような構造になっており、ユーザ属性(raw_user_context_data)テーブル、記事属性(raw_article_metadata)テーブル、記事のユーザ閲覧情報(raw_article_engagement_metrix)テーブルを元に、silverテーブルを経由して機械学習に利用できるgold相当の記事属性(synthetic_data)テーブルを自動生成するデータパイプラインとなっています。
デモスクリプト
最後に、左メニューの「デモスクリプト」に移動し、「デモスクリプトを作成」ボタンをクリックすると、ビジネス課題から解決方法までをまとめたレポートを出力してくれます。
以上でDemoArigatoの機能紹介は終わりになります。
トラブルシューティング
もしDemoArigatoのアプリがうまく動かなかったら、下記を試してみてください。
- 最初のビジネス課題画面からやり直してみる。
- 画面間でセッション情報の不整合が発生している可能性があるため、最初の画面から一覧の手順をやり直すことで正しく動くようになることがあります。
- 前の画面でストーリーやデータを再生成してみる
- たまたま後続の画面の処理に都合が悪いストーリーやデータが生成されていた可能性があるため、再生成することで問題が改善する場合があります。
さいごに
DemoArigatoを利用して、今回は「技術記事投稿サイトのいいね獲得数の向上」のシナリオでデモを生成してみましたが、このシナリオに限らず自身が考えているビジネス課題を入力して試していただければと思います。DemoArigatoがDatabricksのユースケースを例示してくれることで、データ活用による具体的なビジネス改善のイメージがわきやすくなるかと思います。









