Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Databricks AI/BI Genie の「値ディクショナリー」をAmazonの奥地(S...

Avatar for camay camay
October 20, 2025

Databricks AI/BI Genie の「値ディクショナリー」をAmazonの奥地(S3)まで見に行く

JEDAI Meetup! AI Readyへの道のり(https://jedai.connpass.com/event/369530/)の登壇資料です

Avatar for camay

camay

October 20, 2025
Tweet

More Decks by camay

Other Decks in Technology

Transcript

  1. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 2

    自己紹介 亀井 友裕 会社 DATUM STUDIO 株式会社 職業 データエンジニア / AIエンジニア 主な 業務経験 データパイプラインの構築(Databricks) 需要予測モデルの運用(Databricks) RAGの精度改善(AWS) AIエージェントの構築(AWS, Databricks) X @Camay119 (アイコンは→)
  2. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 4

    AI/BI Genie とは AI/BI Genie は、自然言語を使用してデータを操作できるようにする Databricks の機能。ビジネスチーム が自然言語を使用してデータを操作できるようになります。 https://docs.databricks.com/aws/ja/genie/#%E4%B E%8B-1- %E5%96%B6%E6%A5%AD%E6%A1%88%E4%BB %B6%E3%81%AE%E7%8A%B6%E6%85%8B%E3 %82%92%E8%A6%96%E8%A6%9A%E5%8C%96 %E3%81%99%E3%82%8B
  3. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 5

    Genie の応答に使われるコンポーネント Genie は、Unity Catalog や Genie Space 固有のメタデータを使用して応答を生成します。Genie の 応答精度をあげるためには、これらの情報を整備してあげる必要があります。 https://docs.databricks.com/aws/ja/genie/#- genie%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB %E5%BF%9C%E7%AD%94%E3%82%92%E7%94%9F%E6%88%90%E3%81%97%E3% 81%BE%E3%81%99%E3%81%8B
  4. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 6

    Genie の応答に使われるコンポーネント Genie は、Unity Catalog や Genie Space 固有のメタデータを使用して応答を生成します。Genie の 応答精度をあげるためには、これらの情報を整備してあげる必要があります。 https://docs.databricks.com/aws/ja/genie/#- genie%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB %E5%BF%9C%E7%AD%94%E3%82%92%E7%94%9F%E6%88%90%E3%81%97%E3% 81%BE%E3%81%99%E3%81%8B 今日はここの話
  5. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 7

    ナレッジストアのコンテキスト Genie スペースに追加したテーブルには、列ごとにさまざまなメタ情報を付与できます。
  6. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 8

    ナレッジストアのコンテキスト Genie スペースに追加したテーブルには、列ごとにさまざまなメタ情報を付与できます。 カラムの説明を書くんだろうな e.g. 「支払いの手段」 カラムの同義語を書くんだろうな e.g. 「決済方法,支払い方法」 カラム値のサンプリング結果が 入るんだろうな
  7. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 9

    ナレッジストアのコンテキスト Genie スペースに追加したテーブルには、列ごとにさまざまなメタ情報を付与できます。 カラムの説明を書くんだろうな e.g. 「支払いの手段」 カラムの同義語を書くんだろうな e.g. 「決済方法,支払い方法」 カラム値のサンプリング結果が 入るんだろうな …???
  8. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 10

    値ディクショナリ ドキュメントを読んでもピンとこない。値ディクショナリって何なんだ?? https://docs.databricks.com/aws/ja/genie/knowledge- store#%E5%80%A4%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA% E3%83%B3%E3%82%B0%E3%82%B3%E3%83%B3%E3%83%9D%E3%83 %BC%E3%83%8D%E3%83%B3%E3%83%88
  9. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 11

    値ディクショナリ ドキュメントを読んでもピンとこない。値ディクショナリって何なんだ?? https://docs.databricks.com/aws/ja/genie/knowledge- store#%E5%80%A4%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA% E3%83%B3%E3%82%B0%E3%82%B3%E3%83%B3%E3%83%9D%E3%83 %BC%E3%83%8D%E3%83%B3%E3%83%88 ディクショナリという より、リストっぽい? 1024個って どうやって選ばれる の?サンプリング? キュレーションされた リストって何? 127を超える文字 はどうなるの?トリ ムされる?
  10. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 16

    知りたいことのおさらい 値ディクショナリって、具体的に何? キュレーションされたリストって何? 1024個ってどうやって選ばれるの? 127文字を超える文字はどうなるの?
  11. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 17

    検証ステップ 1. Genie Space を作る 2. ワークスペースストレージ (S3) に新規作成されたオブジェクトを探す
  12. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 18

    1. Genie Space を作る サンプルテーブル samples.bakehouse.sales_transactions のみを追加した、シンプルな Genie Space を作成。今回は、2つの列について値ディクショナリが自動作成されました。 データの中身 データの中身 作成したGenie Space
  13. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 19

    2. ワークスペースストレージ (S3) に新規作成されたオブジェクトを探す AWS CLI を用いて、Genie が作成されたタイミングで新規に作成されたオブジェクトを探索。 → json ファイルと、sql の計画 / 実行結果(バイナリ)が作成されていました。 S3に新規で作成されていたオブジェクト json ファイルのペア * 2 SQL の計画 / 実行ファイルたち
  14. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 20

    2. ワークスペースストレージ (S3) に新規作成されたオブジェクトを探す AWS CLI を用いて、Genie が作成されたタイミングで新規に作成されたオブジェクトを探索。 → json ファイルと、sql の計画 / 実行結果(バイナリ)が作成されていました。 S3に新規で作成されていたオブジェクト json ファイルのペア * 2 SQL の計画 / 実行ファイルたち 値ディクショナリの正体(多分) SQL も実行されてそう
  15. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 21

    値ディクショナリの正体 1カラムにつき、2つのjsonファイルが作成されていました。それぞれ、ユニーク値とそのベクトル埋め込みのリスト が格納されており、これが値ディクショナリの正体と言えそうです。 value.json embedding.json • ユニーク値のリスト • 埋め込みモデルの名前 + リストのリスト(1024次元 * 3つ) • → おそらく、value.json の各値をベクトル埋め込みしたもの 新規作成されていた json ファイル
  16. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 22

    値ディクショナリの正体 1カラムにつき、2つのjsonファイルが作成されていました。それぞれ、ユニーク値とそのベクトル埋め込みのリスト が格納されており、これが値ディクショナリの正体と言えそうです。 value.json embedding.json • ユニーク値のリスト • 埋め込みモデルの名前 + リストのリスト(1024次元 * 3つ) • → おそらく、value.json の各値をベクトル埋め込みしたもの 新規作成されていた json ファイル 値ディクショナリ = カラムのユニーク値のリスト + ユニーク値のベクトル埋め込みのリスト
  17. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 23

    値ディクショナリの使われ方(妄想) 値ディクショナリは、ユーザーの質問をベクトル検索にかけて、質問に含まれる用語が「どのカラムの」「どの値の」 ことを指しているのかを推察するのに使われているのでは? カラム: paymentMethod visa master amex カラム: product Golden Gate Ginger Tokyo Tidbits Outback Oatmeal ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み 値ディクショナリ 注意:公式見解ではありません! 全て発表者の妄想です!
  18. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 24

    値ディクショナリの使われ方(妄想) 値ディクショナリは、ユーザーの質問をベクトル検索にかけて、質問に含まれる用語が「どのカラムの」「どの値の」 ことを指しているのかを推察するのに使われているのでは? American Express の売り 上げを教えて ベクトル埋め込み ベクトル検索 カラム: paymentMethod visa master amex カラム: product Golden Gate Ginger Tokyo Tidbits Outback Oatmeal ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み 値ディクショナリ 注意:公式見解ではありません! 全て発表者の妄想です!
  19. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 25

    値ディクショナリの使われ方(妄想) 値ディクショナリは、ユーザーの質問をベクトル検索にかけて、質問に含まれる用語が「どのカラムの」「どの値の」 ことを指しているのかを推察するのに使われているのでは? 「paymentMethod カラムの amex に関する質問」という判定を行う カラム: paymentMethod visa master amex カラム: product Golden Gate Ginger Tokyo Tidbits Outback Oatmeal ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み ベクトル埋め込み American Express の売り 上げを教えて ベクトル埋め込み ベクトル検索 ユーザー ←類似度 max!! 値ディクショナリ 注意:公式見解ではありません! 全て発表者の妄想です!
  20. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 26

    今の状況 値ディクショナリって、具体的に何? →カラムのユニーク値のリスト + ユニーク値のベクトル埋め込みのリスト キュレーションされたリストって何? → 1024個ってどうやって選ばれるの? → 127文字を超える文字はどうなるの? →
  21. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 27

    2. ワークスペースストレージ (S3) に新規作成されたオブジェクトを探す AWS CLI を用いて、Genie が作成されたタイミングで新規に作成されたオブジェクトを探索。 → json ファイルと、sql の計画 / 実行結果(バイナリ)が作成されていました。 S3に新規で作成されていたオブジェクト json ファイルのペア * 2 SQL の計画 / 実行ファイルたち 値ディクショナリの正体(多分) SQL も実行されてそう 再掲
  22. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 28

    2. ワークスペースストレージ (S3) に新規作成されたオブジェクトを探す AWS CLI を用いて、Genie が作成されたタイミングで新規に作成されたオブジェクトを探索。 → json ファイルと、sql の計画 / 実行結果(バイナリ)が作成されていました。 S3に新規で作成されていたオブジェクト json ファイルのペア * 2 SQL の計画 / 実行ファイルたち 値ディクショナリの正体(多分) SQL も実行されてそう 再掲
  23. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 29

    Genie Space 作成時に実行された SQL を見てみる SELECT item.item AS value FROM ( SELECT explode(approx_top_k(`paymentMethod`, 1024)) AS item FROM ( SELECT `paymentMethod` FROM `samples`.`bakehouse`.`sales_transactions` LIMIT 100000 ) ) WHERE length(item.item) < 127
  24. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 30

    Genie Space 作成時に実行された SQL を見てみる SELECT item.item AS value FROM ( SELECT explode(approx_top_k(`paymentMethod`, 1024)) AS item FROM ( SELECT `paymentMethod` FROM `samples`.`bakehouse`.`sales_transactions` LIMIT 100000 ) ) WHERE length(item.item) < 127 ① 先頭10万件を抽出
  25. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 31

    Genie Space 作成時に実行された SQL を見てみる SELECT item.item AS value FROM ( SELECT explode(approx_top_k(`paymentMethod`, 1024)) AS item FROM ( SELECT `paymentMethod` FROM `samples`.`bakehouse`.`sales_transactions` LIMIT 100000 ) ) WHERE length(item.item) < 127 ① 先頭10万件を抽出 ② 出現頻度の高い 1024 件のユニーク値を抽出
  26. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 32

    Genie Space 作成時に実行された SQL を見てみる SELECT item.item AS value FROM ( SELECT explode(approx_top_k(`paymentMethod`, 1024)) AS item FROM ( SELECT `paymentMethod` FROM `samples`.`bakehouse`.`sales_transactions` LIMIT 100000 ) ) WHERE length(item.item) < 127 ① 先頭10万件を抽出 ② 出現頻度の高い 1024 件のユニーク値を抽出 ③ 文字列長が 127 を超えるものをフィルター
  27. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 33

    検証結果 値ディクショナリって、具体的に何? → カラムのユニーク値のリスト + ユニーク値のベクトル埋め込みのリスト キュレーションされたリストって何? → 先頭10万行のうち、出現頻度が上位1024番目までのカラム値のリスト 1024個ってどうやって選ばれるの? → 同上 127文字を超える文字はどうなるの? → フィルターされるので、値ディクショナリには使われない
  28. © 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 34

    検証結果に基づいた、Genie チューニングのコツ • 社内用語は General Instruction に明示しよう • 一般語(例:「日本」「JP」)は値ディクショナリで十分変換できる • 独自用語は埋め込みモデルが未学習のため、変換精度が低い • → General Instruction にマッピングを書くなどして補完しよう • カテゴリ値が行全体で偏っていないかを確認しよう • 値ディクショナリは先頭10万行のみ対象 • 末尾だけにある値は未収録のため、変換精度が低い • カテゴリ列は短い文字列に抑えよう • 文字列長127超は除外される(≠ truncate) • 200文字とかの値は値ディクショナリに載らない