Databricks Certified Generative AI Engineer Associate 教科書
第3章 アプリケーション開発(Application Development, 30%)
🎯 この節の学習目標
これまでの節で扱ってきたRAGは、マニュアルや議事録のような非構造化の文書を検索して回答する仕組みでした。しかし業務の質問には「先月の地域別の売上合計は?」「解約率が最も高い契約プランはどれ?」のように、データベースのテーブル(構造化データ)を集計しないと答えられないものが多くあります。文書検索では、テーブルの中の数値を集計することはできません。
AI/BI Genie は、この課題に対する Databricks の機能です。ユーザーが自然言語で質問すると、Genie が SQL を生成してテーブルに対して実行し、その結果をもとに回答します。いわゆる Text-to-SQL(NL2SQL)をマネージドに提供する仕組みで、対象のテーブルはすべて Unity Catalog のガバナンス下にあるため、質問者がアクセス権を持つデータにしか答えられないという権限制御が自然に効きます。
Genie を使うには、Genieスペース(Genie space)という単位で設定を行います。
| 設定要素 | 内容 | 効果 |
|---|---|---|
| 対象テーブル | 質問に答えるために参照する Unity Catalog 上のテーブルを選ぶ | 対象を業務ドメインごとに絞るほど、SQL生成の精度が上がる |
| 指示(instructions) | ビジネス用語の定義や集計ルールをテキストで与える | 「売上=税抜金額の合計」など、社内固有の解釈を教えられる |
| サンプルクエリ | 代表的な質問と正しいSQLのペアを登録する | Genie が模範解答を参考にSQLを組み立てられるようになる |
💡 具体例:営業データ用のGenieスペース
ある小売企業(架空)が、営業部門向けに「売上分析Genieスペース」を作るとします。
sales.gold.orders(注文)、sales.gold.customers(顧客)、sales.gold.stores(店舗)の3つに絞るorders.amount の合計(税抜)を指す」「『今期』は4月始まりの会計年度で解釈する」営業担当者が「今期の店舗別売上トップ5は?」と日本語で質問すると、Genie がテーブル定義と指示・サンプルを踏まえてSQLを生成・実行し、表とともに回答を返します。
📝 試験のポイント
「アナリストでない社員が、SQLを書かずに売上テーブルへ質問できるようにしたい」という要件には AI/BI Genie が対応します。ベクトル検索(AI Search)は文書の意味検索の仕組みであり、テーブルの集計はできない点が選択肢の切り分けになります。
GenAIアプリケーションの設計で最初に問うべきは、「答えの根拠となるデータはどこにあるか」です。根拠が文書(非構造化)なのかテーブル(構造化)なのかで、選ぶべき部品が変わります。
| 観点 | AI Search + RAG | AI/BI Genie |
|---|---|---|
| 対象データ | 非構造化(PDF、マニュアル、FAQ、議事録) | 構造化(Unity Catalog のテーブル) |
| 仕組み | 埋め込みベクトルによる意味検索で関連文書を取得し、LLMが回答を生成 | 自然言語からSQLを生成・実行し、集計結果をもとに回答 |
| 得意な質問 | 「返品手続きの方法は?」(文書に書いてあることを探す) | 「先月の返品件数は何件?」(データを集計して数える) |
| 精度向上の手段 | チャンク化・埋め込みモデル・リランキング(第2章) | テーブルの絞り込み・指示・サンプルクエリ・メタデータ整備 |
実際のアシスタントでは両方の質問が混在するため、後述のようにエージェントが質問の種類を判断して AI Search と Genie を使い分ける構成が実践的な解になります。
📝 試験のポイント
データソースからの判別問題が典型です。「製品マニュアルのPDFに質問したい」→ AI Search(旧 Vector Search)+RAG、「売上データベースに自然言語で質問したい」→ Genie。問題文中の「PDF・ドキュメント」か「テーブル・データベース・集計」かというキーワードで判別します。
Genie は単体のUIとして使うだけでなく、エージェントのツール(サブエージェント)として呼び出すことができます。3-9 で学んだとおり、エージェントはLLMが実行時にツールを選択する構成でした。そこに「構造化データへの問い合わせ担当」として Genie スペースを組み込むと、文書の質問にもデータ集計の質問にも答えられるアシスタントが作れます。
図:エージェントによる AI Search(文書)と Genie(テーブル)の使い分け
Genie の回答精度は、LLMの性能そのものより「テーブルがどれだけ説明されているか」に左右されます。SQL生成の材料はテーブルのスキーマとメタデータだからです。次の整備が効果的です。
| 実践 | 内容 |
|---|---|
| カラム説明・メタデータの整備 | テーブル・カラムに COMMENT を付け、「amt = 税抜注文金額(円)」のように意味を明記する。略語だらけのスキーマはSQL生成ミスの主因になる |
| サンプルSQLの登録 | よくある質問と正しいSQLのペアを登録する。複雑な結合や独自の集計ルールほど、模範例の効果が大きい |
| 用語辞書(指示)の整備 | 「アクティブ顧客とは直近90日以内に購入した顧客」など、社内用語の定義を指示として与え、質問文とスキーマの語彙のずれを埋める |
| 対象テーブルの絞り込み | 1つのスペースに何でも入れず、業務ドメイン単位でスペースを分ける。候補が少ないほど正しいテーブル選択がしやすい |
💡 具体例:精度が出ないときの改善
「先月の売上は?」という質問に対して、Genie が誤って税込金額のカラムを集計してしまうケースを考えます。このとき有効なのは、(1) amount と amount_with_tax それぞれのカラムに説明コメントを付ける、(2) 指示に「『売上』は税抜金額 amount の合計を指す」と明記する、(3) 正しい集計SQLをサンプルクエリとして登録する、という改善です。モデルを変える前に、まず判断材料となるメタデータを整えるのが定石で、3-9 の「ツール説明の質が精度を決める」と同じ考え方です。
📝 試験のポイント
「Genie(Text-to-SQL)の回答精度が低い。まず何をすべきか?」という問題では、カラム説明などのメタデータ整備・指示・サンプルクエリの追加が正解の軸になります。LLMの変更やファインチューニングは、その後に検討する手段です。
✅ この節のまとめ
問1. 営業部門の社員が、SQLを書かずに「地域別の今月の売上は?」のような質問を売上テーブルに対して行えるようにしたい。最も適切な Databricks の機能はどれか。
正解:B
構造化データへの自然言語問い合わせは Genie の役割で、SQLの生成・実行と権限制御をマネージドに提供します。Aのベクトル検索は文書の意味検索の仕組みで、テーブルの集計はできません。Cはデータ量の制約とコンテキスト長の限界があり、最新データへの追従もできません。DはLLM単体に送るだけで、社内テーブルの内容を参照できず、根拠のない回答(ハルシネーション)につながります。
問2. 「製品マニュアルのPDF群への質問対応」と「注文データベースの集計質問への対応」を1つのアシスタントで実現したい。各データへの対応として適切な組み合わせはどれか。
正解:C
非構造化文書は AI Search による意味検索(RAG)、構造化テーブルは Genie によるSQL生成・実行という使い分けが設計の基本です。AはデータベースをAI Searchに入れても集計質問に答えられません。BはGenieが文書の意味検索を担えないため、PDFへの質問に対応できません。Dは対応関係が逆です。
問3. Genie スペースを構築したが、「売上」に関する質問で誤ったカラムを集計するなど、SQL生成の精度が低い。最初に行うべき改善として最も適切なのはどれか。
正解:B
GenieのSQL生成の材料はスキーマとメタデータであり、カラム説明・指示(用語辞書)・サンプルSQLの整備が精度改善の第一手です。Aのモデル変更は判断材料が乏しいままでは効果が限定的です。Cは候補が増えてテーブル選択を誤りやすくなり、逆効果です。Dは「SQLを書かずに質問できる」という要件そのものを放棄しています。
問4. エージェントのツールとしての Genie に関する記述のうち、正しいものはどれか。
正解:B
Genie スペースはサブエージェント(ツール)として Multi-Agent Supervisor やカスタムエージェントに組み込め、マネージドMCPサーバーを通じてMCPツールとして公開することもできます(3-10参照)。Aは単体利用に限定している点が誤りです。CはUnity Catalogのガバナンスが引き続き効くため誤りです。DはGenieが生成したSQLを実行して結果を返すため誤りです。