これらの記事を翻訳していたのですが、自分できちんと試していませんでした。
要はGenieスペースでAI関数を使えるようにすることで、自然言語処理を含む問い合わせに対応できるようになると。
Genieとは
Databricks AI/BI Genieは、専門的なSQL知識がなくても、日本語で質問するだけでデータ分析ができるツールです。営業担当者が「今月の売上は?」と聞けば、自動的にSQLクエリを生成し、結果をグラフで表示してくれます。複合AIシステムを活用し、組織独自の用語やデータ構造を理解して、正確な分析結果を提供します。データアナリストがGenieスペースを設定すれば、ビジネスユーザーは自由にデータを探索でき、意思決定のスピードが大幅に向上します。行レベルのセキュリティにも対応し、各ユーザーが見るべきデータのみにアクセスできるため、安全性も確保されています。
機能概要
Databricks AI/BI Genieは、自然言語でデータ分析を可能にするAIツールです。
Genieの基本構成
構成要素 | 説明 |
---|---|
Genieスペース | データ分析の環境。部署や用途ごとに複数作成可能 |
複合AIシステム | 質問を理解し、SQLクエリに変換する頭脳部分 |
Unity Catalog | データのメタデータを管理する基盤 |
SQLウェアハウス | クエリを実行する計算エンジン |
動作の流れ
[ユーザーの質問]
↓
[Genieが質問を解析]
↓
[関連データの特定]
↓
[SQLクエリの自動生成]
↓
[結果の表示(表・グラフ)]
Genieが利用する情報
Genieは以下の情報を組み合わせて、正確な回答を生成します:
-
テーブルメタデータ
- テーブル名と説明
- 主キー・外部キーの関係
-
列情報
- 列名と説明
- サンプル値
-
カスタマイズ要素
- SQLクエリの例
- 業務固有の指示
- 過去のチャット履歴
AI関数とは
Databricks AI関数は、SQLクエリーで直接AIモデルを呼び出せる機能です。感情分析、テキスト要約、翻訳などの高度なAI処理を、従来のSQLと同じような簡単な構文で実行できます。プログラミングの専門知識がなくても、データアナリストが自分のデータに最先端のAIを適用できるようになりました。汎用的なai_query
関数と、特定タスクに特化した関数(ai_summarize
、ai_translate
など)の2種類があり、用途に応じて使い分けが可能です。エンドポイントの設定も不要で、すぐに使い始められるため、データ分析業務の生産性を大幅に向上させることができます。
機能概要
Databricks AI関数は、SQLクエリーの中で直接AIモデルを呼び出せる組み込み関数群です。大きく分けて2つのカテゴリーがあります。
1. 汎用関数:ai_query
任意のAIモデルを適用できる汎用関数です。以下のようなモデルに対応しています:
モデルタイプ | 例 | 設定要件 |
---|---|---|
Databricksホスト型基盤モデル | Meta Llama 3.3 70B | 設定不要(Runtime 15.4 LTS以降) |
ファインチューンされた基盤モデル | カスタム学習済みモデル | モデルサービングへのデプロイが必要 |
外部ホスト型モデル | OpenAI、Anthropic等 | APIエンドポイントの設定が必要 |
従来のMLモデル | scikit-learn、PyTorch等 | Model Servingへのデプロイが必要 |
2. タスク固有関数
特定のAIタスクに特化した関数群です:
関数名 | 機能 |
---|---|
ai_analyze_sentiment |
テキストの感情分析(ポジティブ/ネガティブ等) |
ai_classify |
テキストをカスタムラベルで分類 |
ai_extract |
指定したエンティティ(人名、組織名等)を抽出 |
ai_fix_grammar |
文法エラーの修正 |
ai_generate |
プロンプトに基づいてテキスト生成 |
ai_mask |
個人情報等の機密データをマスク |
ai_summarize |
テキストの要約生成 |
ai_translate |
多言語翻訳 |
ai_similarity |
2つのテキストの類似度計算 |
ai_forecast |
時系列データの予測 |
ウォークスルー
冒頭の記事に倣って設定してみます。対象データは自分のQiita記事のデータを格納しているテーブルです。
最初は何も設定せずに問い合わせを行います。
ページビュー数が最も多い投稿はどれですか?
数値のカラムに対する問い合わせなので問題なく結果を得ることができます。
では、以下のようにテキストの処理を求める質問はどうでしょうか。
本文を要約してください
残念ながら手立てがないのでテキスト列を返却するのみです。
まずは指示から記入していきます。日本語で回答を返すようにします。
* あなたはIT記事の専門家です。
* 質問に対して簡潔に日本語で回答します。
* 質問に回答するために大規模言語モデルを使用する必要あるのであれば、AI関数を用いて回答を生成してください。
しかし、これでも回答自体は変わりません。
次にクエリーのサンプルを追加します。要約して欲しいのでai_summarizeの使い方を例示します。
-- プロンプト:Genie Space 用の SQL クエリ例:顧客レビューの200字の要約
-- review_text に対して要約を生成するよう Genie に指示する。
SELECT ai_summarize(
review_text,
200
);
今度は適切に要約されました。
次は汎用関数であるai_queryです。モデルとプロンプトを指定できるので、基本的になんでもできます。
-- プロンプト:Genie Space 用の SQL クエリ例:記事のテーマは何か?
-- review_text から記事のテーマを抽出するよう Genie に指示する。
SELECT
review_id,
review_text,
ai_query(
-- 使用する基盤モデルエンドポイント指定
"databricks-llama-4-maverick",
CONCAT(
"主要なテーマを1キーワードで表現して前後の文字列を含めずキーワードのみを返却 (例: 「Spark」、「Delta Lake」、「MLflow」: ",
review_text
)
) AS main_keyword
FROM
your_catalog.your_schema.customer_reviews
問い合わせとai_queryへと入力となるプロンプトの連携に関しては何度か試行錯誤して質問やサンプルクエリーを調整しました。また、問い合わせの方法、サンプルクエリー、スペースの設定ともに改善の余地はあると思います。
ページビューが多いトップ10の記事のテーマは何か、1キーワードで表現して前後の文字列を含めずキーワードのみを返却して集計して
まとめ
私自身、サンプルクエリーの使い所がよく分かってなかったのですが、このウォークスルーで腑に落ちた感があります。Genie自体はデフォルトではSQLの構文は理解しているが、どの特殊関数を呼び出したらいいのかまでは全てカバーできているわけではないので、サンプルクエリーで例示することで既存の知識と組み合わせて呼び出しが可能になると。面白い。まだまだキュレーションの余地があるってことですね。