1.8K Views
November 07, 24
スライド概要
誰でも簡単にデータ活用! Microsoft Fabric AI Skillとは? Microsoft Data Analytics Day(Online) 勉強会 兵藤 克樹
自己紹介 兵藤 克樹(ひょうどう かつき) ◆ 所属:株式会社ジール ◆ 経歴:2022年4月 新卒入社 ◆ 仕事: ◆Power BIでのレポート開発 ◆Azureでのクラウド基盤開発 ◆Microsoft Fabricでのデータ分析基盤開発 2
アジェンダ ◆ 概要 ◆AI Skillとは ◆利用シナリオ ◆Copilot, Genieとの比較 ◆ 使用方法 ◆使用の前提 ◆設定手順 ◆ 精度向上のためのアプローチ ◆使用データの整備 ◆指示の提供 ◆サンプルSQLの提供 3
AI Skillとは ◆ データに関する質問をすると、その答えを得られるSQLを表示、実行してくれる生成 AI AI スキルの作成 (プレビュー) - Learn how to create an AI Skill | Microsoft Learn 4
データについて 5
デモ 1. データに関する質問 各製品について、完了したクレーム(ステータスが'完了'または' クローズ'のもの)と保留中のクレーム(ステータスが'新規'また は'処理中'のもの)はいくつありますか? 2. 生成されたSQL 商品テーブルとお問合せテーブルを適切に結合し、 カウントされている想定通りの正しいSQL 3. SQLの実行結果 商品名、完了したクレーム、保留中のクレーム という列の結果が出力されている 6
利用シナリオ カスタマイズしたAIを提供するで、ユーザーは共通の解釈でデータから洞察を得ることができる 事前調整 ユーザー利用 エンジニア 最も売れた商品は? SELECT ・・・ ・・ FROM XXX AI Skillの公開 ビジネスユーザー 微妙だな・・・ 売上の高い商品は? 指示:このデータは~~を表しています 例 :この質問に対する正解のSQLは~~ ⇐重要! 最も売れた商品は? SELECT ・・・ ・・ FROM YYY 売上が急増した商品は? SELECT ・・・ ・・ FROM YYY OK!! 使っていいよ SELECT ・・・ ・・・ 便利!! 7
CopilotとAI Skillの使い分け Copilot for Datawarehouse AI Skill AIによる“ Fabricの開発支援“ AIによる“データインサイトの取得“ Fabricの機能を学習し 開発のための知識を提供する Fabric上のデータモデルをAIが判断し クエリ結果を提供する コードアシスタント データインサイトの取得 自然言語からSQLの生成、コードの補完やエラーの修正で 開発をアシスタントしてくれる DQLだけでなく、DML, DDLもサポートする データについて質問をすると、その回答を得るための SQLクエリを生成、実行し結果を提供してくれる 指示とサンプルSQLを提供することで 適切な回答をするように、AIをカスタマイズできる Fabricの外部からも呼び出し可能 • Data Warehouse: Copilot & AI Skill | Microsoft Fabric ブログ | Microsoft Fabric 8
自然言語のSQL変換機能の仕様比較 Copilot for Data Warehouse AI Skill Databricks Genie ウェアハウス レイクハウス、ウェアハウス Unity Catalog 質問 可能(パフォーマンスは低下) 不可 可能(パフォーマンスは低下) 応答 可能(パフォーマンスは低下) 応答はSQLクエリと結果のみ 可能(パフォーマンスは低下) 以前の質問 記憶しない 記憶しない 記憶する 用語の定義や振る舞い 用語の定義や振る舞い 質問に対するSQLの回答例 質問に対するSQLの回答例 主キー、外部キー ドキュメントに言及無し 主キー、外部キー モデルのリレーション 外部キーは利用されている可能性がある 列の説明 ソース 日本語対応 指示 調整 メタデータの利用 回答へのFB レビュー • Data Warehouse 用 Copilot (プレビュー) - Microsoft Fabric | Microsoft Learn • AI スキルの作成 (プレビュー) - Learn how to create an AI Skill | Microsoft Learn • AI/BI Genie スペースとは - Azure Databricks | Microsoft Learn Good / Badの回答が可能 ユーザーの質問と回答、 回答へのFBをレビュー可能 9
日本語対応について ※2024年11月時点 AI スキルの作成 (プレビュー) - Learn how to create an AI Skill | Microsoft Learn 英語以外の質問はブロックされるが、 一部日本語を含む質問や日本語の列名は正しく認識される ×:店舗ごとの売上は? ○:How many accounts have a billing state in ‘東京’ ? 10
日本語対応について ◆ 日本語の値について質問 [Accounts]テーブルの[BillingState]列に[東京]という日本語の値があるとき How many accounts have a billing state in ‘東京’ ? と質問した場合 SELECT COUNT(*) AS NumberOfAccountsInTokyo FROM [dbo].[Account] WHERE [BillingState] = ’東京’; ←一部日本語を含む質問は可能 How many accounts have a billing state in Tokyo? と質問した場合 SELECT COUNT(*) AS NumberOfAccountsInTokyo FROM [dbo].[Account] WHERE [BillingState] = ’Tokyo’; ←データに合わせて’東京’としてくれることはない 11
日本語対応について ◆ 日本語の列について質問 [m_store]テーブルに[県名]や[地方名]という日本語の列があるとき How many stores are there in Tokyo? と質問した場合 SELECT COUNT(*) FROM [dbo].[m_store] WHERE 県名 = ’Tokyo’ ←県名という日本語は認識されている How many stores are there in each region? と質問した場合 SELECT 地方名 AS Region, COUNT(店舗ID) AS StoreCount FROM [dbo].[m_store] GROUP BY 地方名 ←Regionが地方名に当たると認識されている 12
使用の前提 ◆ ライセンス ◆ F64以上の以上のFabric容量が必要(Premium容量は不可) ◆ テナント設定 ◆ 「ユーザーはAzure OpenAIを搭載したCopilotやその他の機能を利用できます」の有効化 ◆ 「Azure OpenAIに送信されたデータは、容量の地理的リージョン、コンプライアンス境界、 または国内クラウドインスタンスの外部で処理できます」の有効化 13
テナント設定の注意点 ◆ リージョン外データ処理の許可 ◆ 基本は容量と同じリージョン内のOpenAIで処理される ◆ しかし現在、CopilotやAI SkillのためにMSが管理しているOpenAIは米国とヨーロッパにのみ存在するため、 容量が米国かヨーロッパ以外の場合は、リージョンをまたいでデータが処理されることを許可する必要がある • • Fabric容量のリージョン 使用されるOpenAIのリージョン 容量のリージョン外でのデータ処理 利用に必要なテナント設定 米国 米国 無し Copilotの有効化 ヨーロッパ ヨーロッパ 無し Copilotの有効化 英国 ヨーロッパ あり Copilotの有効化 リージョン外データ処理の許可 日本、東南アジア など 米国 あり Copilotの有効化 リージョン外データ処理の許可 Copilot 管理者設定 - Microsoft Fabric | Microsoft Learn Fabric におけるプライバシー、セキュリティ、Copilot の責任ある使用 - Microsoft Fabric | Microsoft Learn 14
設定手順 ④ユーザーへの公開 ①データソースの選択 ②指示の提供 ③サンプルSQLの提供 15
公開後の利用方法 ① Notebook ① 発行されたURL ② 質問 ③ 実行結果 16
公開後の利用方法 ② Copilot ◆ Copilot StudioでAI Skillのナレッジを追加し、独自のCopilotを構成する(近日公開予定) 17
使用データの整備 ◆ 説明的な列名とテーブル名の使用 列やテーブルにわかりやすい説明的な名前を使用する :col1 〇:Status 意味のある列名 :Date 〇:Order_Date より説明的な列名 ◆ 簡素なスキーマの使用 大規模なスキーマは信頼性が低下するため、余分なテーブルは選択しない ◆ メタデータの整備 主キー、外部キー、モデルのリレーションを設定する ドキュメントには言及が無いため、利用されている可能性がある 18
主キーや外部キーが利用されるか ◆ 商品マスタ、注文トランを紐づけるproduct_id列を、test, cor1へ変更し、 列名では2つが紐づかない状態で検証 主キー、外部キーが設定されている場合 主キー、外部キーが設定されていない場合 19
指示とサンプルSQLの提供 ◆ 指示やサンプルSQLが無い場合 申し訳ありませんが、SQLクエリの実行にエラーが発生しました。 文脈を追加するか、質問を明確に言い換えるか、別のクエリで再試行してください。 20
指示の提供 ◆ 指示を提供することで、ユーザーは簡易なプロンプトで結果を得ることができる 21
指示の提供 ◆ 主要なテーブルの指定 ◆ 特定の質問に対して、どのテーブルを主に使用すべきかを明示する ◆ 「主に FactInternetSales テーブルを使用し、再販に関する質問の場合のみ FactResellerSales を使用する。」 ◆ メトリックの定義 ◆ 「最も売れている」や「影響を与えた」などの表現が指す具体的なメトリックを指定する ◆ 「"最も売れている" 製品とは、総売上収益が最も高い製品を指す。」 ◆ 関連テーブルとの結合 ◆ 特定の分析を行う際に、どのテーブルと結合すべきかを指示します。 ◆ 「製品情報の詳細を取得する際は、FactInternetSales と DimProduct を結合する。」 ◆ 集計方法の指定 ◆ データの集計方法や並べ替えの基準を明確にします。 ◆ 「売上データを集計する際は、SUM 関数を使用し、結果を売上収益で降順に並べ替える。」 22
指示の提供 ◆ 営業活動は、リード -> 商談 -> 受注の順に進みます。 受注数や製品ごとの受注数について質問された場合は、以下のようにテーブルを結合します。 ◆ [Order] テーブル (o) ◆ 各受注に関する情報が含まれている開始テーブルです。 ◆ [Order]の OpportunityId__c と [Opportunity] の id を基に結合します。 この結合によって、各受注をその関連する商談と結びつけることができます。 ◆ [Opportunity] テーブル (op) ◆ ビジネス取引や営業機会に関するデータが含まれています。 ◆ [Opportunity] の Product2Id__c と [PricebookEntry] の Product2Id を基に結合します。 この結合によって、各商談に関連する特定の製品を識別することができます。 ◆ [PricebookEntry] テーブル ◆ (pe)価格や製品に関する情報が含まれています。 ◆ [PricebookEntry] の Product2Id と [Product2] の Product2Id を基に [Product2] テーブルと結合します。 この結合によって、受注された各製品の名前などの製品詳細を取得することができます。 23
指示の提供 24
サンプルSQLの提供 ◆ 頻出の質問について、正解のSQLを提供しておくことで、共通の解釈で結果を取得できる 25
サンプルSQLの提供 26
Copilot for Data Warehouse Data Warehouse 用 Copilot (プレビュー) - Microsoft Fabric | Microsoft Learn 27
Databricks Genie AI/BI Genie | Databricks 28