Power BI Desktop で AI 分析情報を使用する
Power BI では、AI 分析情報を使用して、データ準備作業を強化するトレーニング済みの機械学習モデルのコレクションにアクセスできます。 AI 分析情報には、Power Query エディターでアクセスできます。 Power Query エディターの [ホーム] と [列の追加] の各タブで関連付けられた機能と関数を見つけることができます。
この記事では、Text Analytics 関数と Vision 関数 (どちらも Azure Cognitive Services のものです) について説明します。 さらに、この記事には、Power BI で使用できる Azure Machine Learning のカスタム関数について説明するセクションがあります。
Text Analytics と Vision を使う
Power BI で Text Analytics と Vision を使用すると、Azure Cognitive Services とは異なるアルゴリズムを適用することで、Power Query のデータを強化できます。
現在、次のサービスがサポートされています。
変換は Power BI サービス上で実行されます。Azure Cognitive Services サブスクリプションは不要です。
重要
Text Analytics または Vision の機能を使用するには、Power BI Premium が必要です。
Premium 容量で Text Analytics と Vision を有効にする
Cognitive Services は、Premium 容量ノード EM2、A2、または P1 と、より多くのリソースを持つ他のノードでサポートされています。 Cognitive Services を実行する際は、容量上の別個の AI ワークロードが使用されます。 Power BI で Cognitive Services を使う前に、管理ポータルの [容量の設定] で AI ワークロードを有効にする必要があります。 [ワークロード] セクションで [AI ワークロード] を有効にし、このワークロードで消費する最大メモリ量を定義します。 推奨されるメモリ制限は、20% です。 この制限を超えると、クエリ速度が低下します。
使用できる関数
このセクションでは、Power BI 内の Cognitive Services で使用可能な関数について説明します。
言語検出
言語の検出関数では、テキスト入力が評価され、フィールドごとに言語名と ISO 識別子が返されます。 この関数は、データ列で任意のテキストが収集され、言語が不明な場合に役立ちます。 この関数では、入力データがテキスト形式であることが前提となっています。
Text Analytics では、最大 120 の言語が認識されます。 詳細については、サポートされる言語に関する記事を参照してください。
キー フレーズ抽出
キー フレーズ抽出関数では、非構造化テキストが評価され、テキスト フィールドごとにキー フレーズの一覧が返されます。 この関数では、入力としてテキスト フィールドが必要です。言語 ISO コードも入力できます (省略可能)。
キー フレーズ抽出は、感情分析とは反対に、処理対象のテキストのチャンクが大きい方が効果的です。 感情分析は、テキスト ブロックが小さい方が効果的です。 両方の操作から最良の結果を得るには、入力を適宜再構築することを検討してください。
センチメントのスコア付け
センチメントのスコア付け関数では、テキスト入力が評価され、0 (否定的) から 1 (肯定的) までのセンチメント スコアがドキュメントごとに返されます。 センチメントのスコア付けには、言語 ISO コードも入力できます (省略可能)。 この関数は、ソーシャル メディア、顧客のレビュー、およびディスカッション フォーラムで肯定的および否定的なセンチメントを検出するのに役立ちます。
Text Analytics では、機械学習分類アルゴリズムを使用して、0 ~ 1 のセンチメント スコアが生成されます。 スコアが 1 に近いほど肯定的なセンチメントを示し、 0 に近いほど否定的なセンチメントを示します。 モデルは、センチメントが関連付けられている幅広いテキスト本文を使用して、事前にトレーニングされています。 現時点では、独自のトレーニング データを指定することはできません。 テキストの分析時、モデルでは、テキスト処理、品詞分析、語の配置、語の関連付けなど、さまざまな手法が組み合わされて使用されます。 アルゴリズムの詳細については、「Introducing Text Analytics (テキスト分析の概要)」を参照してください。
センチメント分析は、テキスト内の特定のエンティティのセンチメントを抽出するのではなく、入力フィールド全体に対して実行されます。 実際には、ドキュメントに大きなテキストのブロックではなく、1 つか 2 つの文が含まれているときにスコリング精度が向上する傾向があります。 客観性評価フェーズでは、入力フィールドが全体として客観的であるのか、それとも入力フィールドにセンチメントが含まれているのかがモデルによって判断されます。 入力フィールドがおおむね客観的な場合は、センチメント検出フェーズに進まず、スコアが 0.50 となり、処理は終了します。 入力フィールドがパイプライン内を進行した場合は、入力フィールドで検出されたセンチメントの程度に応じて、0.50 より上または下のスコアが次のフェーズで生成されます。
現時点では、感情分析では、英語、ドイツ語、スペイン語、およびフランス語がサポートされています。 他の言語はプレビュー段階です。 詳細については、サポートされる言語に関する記事を参照してください。
画像のタグ付け
タグ イメージ関数では、生物、風景、アクションなどの 2,000 を超える認識可能なオブジェクトに基づいてタグが返されます。 タグがあいまいだったり、常識的なものでなかったりする場合は、既知の状況のコンテキストでタグの意味を明確にするための "ヒント" が表示されます。 タグは分類として編成されず、継承の階層は存在しません。 コンテンツのタグのコレクションは、完全な文の形式に整えられた、人が読解可能な言語として表示される画像の "説明" の基盤となります。
イメージをアップロードするか、またはイメージの URL を指定すると、Computer Vision のアルゴリズムにより、そのイメージ内で識別されたオブジェクト、生物、およびアクションに基づいてタグが出力されます。 タグ付けの対象は、前景の人物などの被写体に限らず、背景 (屋内または屋外)、家具、道具、植物、動物、アクセサリ、ガジェットなども含まれます。
この関数では、入力として画像の URL または base-64 のフィールドが必要です。 現時点でイメージのタグ付けでサポートされるのは、英語、スペイン語、日本語、ポルトガル語、および簡体中国語です。 詳細については、サポートされる言語に関する記事を参照してください。
Power Query で Text Analytics 関数または Vision 関数を呼び出す
Text Analytics 関数または Vision 関数を使用してデータを強化するには、Power Query エディターを開きます。 この例では、テキストのセンチメントのスコア付けの手順を示します。 同じ手順を使用して、キーフレーズ抽出、言語検出、および画像のタグ付けを実行できます。
[ホーム] または [列の追加] リボンで、[Text analytics] ボタンを選択します。 プロンプトが表示されたら、サインインします。
サインインしたら、ポップアップ ウィンドウで、使用する関数と、変換するデータ列を選択します。
Power BI によって、関数を実行して結果を Power BI Desktop に戻すための Premium 容量が選択されます。 選択された容量は、アプリケーション中のText Analytics 関数と Vision 関数でのみ使用され、Power BI Desktop で更新されます。 Power BI からレポートが発行されると、レポートの発行先であるワークスペースの Premium 容量に対して更新が実行されます。 ポップアップ ウィンドウの左下隅にあるドロップダウンで、すべての Cognitive Services で使用される容量を変更できます。
言語 ISO コードは、テキストの言語を指定する省略可能な入力です。 入力として列を使うか、静的フィールドを使うことができます。 この例では、列全体で言語が英語 (en) として指定されています。 このフィールドを空白のままにすると、Power BI は、言語を自動的に検出してから、関数を適用します。 次に、 [適用] を選択します。
AI 分析情報を新しいデータ ソースで初めて使うときは、データのプライバシー レベルを設定するように Power BI Desktop から求められます。
Note
Power BI でのセマンティック モデルの更新は、[プライバシー レベル] が [パブリック] または [組織] に設定されているデータ ソースに対してのみ機能します。
関数を呼び出すと、結果が新しい列としてテーブルに追加されます。 変換もクエリ内の適用された手順として追加されます。
画像のタグ付けとキーフレーズ抽出の場合、結果として複数の値が返されることがあります。 個々の結果は、元の行の複製に対して返されます。
Text Analytics 関数または Vision 関数を使ってレポートを発行する
Power Query での編集と Power BI Desktop での更新の実行中は、Power Query エディターで選択された Premium 容量が Text Analytics と Vision によって使用されます。 Text Analytics または Vision からレポートが発行された後は、発行先のワークスペースの Premium 容量が使われます。
Text Analytics 関数と Vision 関数が適用されているレポートは、Premium 容量のワークスペースに発行する必要があります。そうしないと、セマンティック モデルの更新が失敗します。
Premium 容量への影響を管理する
以下のセクションでは、容量に対する Text Analytics と Vision の影響を管理する方法について説明します。
容量を選ぶ
レポート作成者は、AI 分析情報を実行する Premium 容量を選択できます。 既定では、最初に作成された容量で、ユーザーがアクセスしているものが Power BI によって選択します。
Capacity Metrics アプリを使って監視する
Premium 容量の所有者は、Power BI Premium 容量メトリック アプリを使用して、容量に対する Text Analytics 機能と Vision 機能の影響を監視できます。 アプリによって、容量内の AI ワークロードの正常性に関する詳細なメトリックが提供されます。 上部のグラフに、AI ワークロードによるメモリ使用量が示されます。 Premium 容量の管理者は、容量ごとに AI ワークロードのメモリ制限を設定できます。 メモリ使用量がメモリの上限に達したら、メモリの制限を大きくするか、一部のワークスペースを別の容量に移動することを検討できます。
Power Query と Power Query Online を比較する
Power Query と Power Query Online で使用される Text Analytics 関数と Vision 関数は同じものです。 エクスペリエンスの違いは、次の 2 つだけです。
- Power Query には、Text Analytics、Vision、Azure Machine Learning 用の別個のボタンがあります。 Power Query Online では、これらの機能は 1 つのメニューにまとめられています。
- Power Query では、レポート作成者は、関数の実行に使う Premium 容量を選択できます。 データフローは既に特定の容量上にあるため、Power Query Online でこれを選ぶ必要はありません。
Text Analytics の考慮事項と制限事項
Text Analytics を使用するときに留意が必要な注意事項と制限事項をいくつか示します。
- 増分更新はサポートされていますが、AI 分析情報を含むクエリで使用すると、パフォーマンスの問題が発生する可能性があります。
- 直接クエリはサポートされていません。
Azure Machine Learning の使用
多くの組織が Machine Learning モデルを使用して、ビジネスに関する分析情報の質や予測を向上させています。 これらのモデルから分析情報を視覚化し、呼び出すことができれば、最も必要としているビジネス ユーザーにこれらの分析情報を広めることができます。 Power BI では、ポイントアンドクリック ジェスチャを使用するだけで、Azure Machine Learning 上でホストされているモデルから、簡単に分析情報を取り込めます。
この機能を使うには、最初にデータ サイエンティストが Azure portal を使って、Azure Machine Learning モデルへのアクセス権を BI アナリストに付与します。 次に、Power Query が、セッションが開始されるたびに、ユーザーがアクセス可能なすべての Azure Machine Learning モデルを検出して、動的な Power Query 関数として公開します。 ユーザーがこれらの関数を呼び出すには、Power Query エディター内のリボンからこれらの関数にアクセスするか、M 関数を直接呼び出します。 また、一連の行のパフォーマンスを向上させるため、Power BI は、Azure Machine Learning モデルを呼び出すときに、アクセス要求を自動的にバッチ処理します。
この機能は、Power BI Desktop、Power BI データフロー、Power BI サービスの Power Query Online でサポートされています。
データフローの詳細については、「Self-service data prep in Power BI (Power BI でのセルフサービス データの準備)」を参照してください。
Azure Machine Learning の詳細については、以下の記事を参照してください。
- 概要:Azure Machine Learning とは
- Azure Machine Learning のクイック スタートおよびチュートリアル:「Azure Machine Learning のドキュメント」
Azure Machine Learning モデルへのアクセス権を付与する
Power BI から Azure Machine Learning モデルにアクセスするには、Azure サブスクリプションへの読み取りアクセス権が必要です。 また、Machine Learning ワークスペースへの読み取りアクセス権も必要です。
このセクションの手順では、Power BI ユーザーに Azure Machine Learning service でホストされているモデルへのアクセス権を付与する方法について説明します。 このアクセス権があれば、Power Query 関数としてこのモデルを使用できます。 詳細については、「RBAC と Azure portal を使用してアクセスを管理する」を参照してください。
- Azure portal にサインインします。
- [Subscriptions](サブスクリプション) ページに移動します。 Azure portal の左側のナビゲーション メニューにある [すべてのサービス] リストに [サブスクリプション] ページがあります。
- サブスクリプションを選択します。
- [アクセス制御 (IAM)] を選択し、 [追加] ボタンを選択します。
- ロールとして [閲覧者] を選択します。 Azure Machine Learning モデルへのアクセス権を付与する Power BI ユーザーを選びます。
- [保存] を選択します。
- 上記の 3 から 6 の手順を繰り返し、モデルをホストしている特定の Machine Learning ワークスペースのユーザーに閲覧者アクセス権を付与します。
Machine Learning モデルのスキーマの検出
データ サイエンティストは、Machine Learning の機械学習モデルを開発する際、さらにはデプロイする際にも、主に Python を使用しています。 データ サイエンティストは、Python を使用して、スキーマ ファイルを明示的に生成する必要があります。
Machine Learning モデルでは、デプロイされた Web サービスにこのスキーマ ファイルを含める必要があります。 Web サービスのスキーマを自動的に生成するには、デプロイされたモデルのエントリ スクリプトで入力/出力のサンプルを指定する必要があります。 詳細については、Azure Machine Learning service を使ったモデルのデプロイに関するドキュメントの Swagger スキーマの自動生成 (省略可能) のサブセクションを参照してください。 このリンクには、スキーマ生成のステートメントを含む、エントリ スクリプトの例が含まれます。
具体的には、エントリ スクリプトの @input_schema と @output_schema の各関数は、input_sample と output_sample の各変数の入力および出力サンプル形式を参照しています。 これらの関数は、デプロイ時にこれらのサンプルを使って Web サービスの OpenAPI (Swagger) 仕様を生成します。
エントリ スクリプトの更新によるこれらのスキーマ生成は、Azure Machine Learning SDK を使って自動機械学習エクスペリエンスにより作成されたモデルにも適用する必要があります。
注意
Azure Machine Learning ビジュアル インターフェイスを使って作成されたモデルでは、現在のところスキーマ生成はサポートされていませんが、今後のリリースではサポートされる予定です。
Power Query で Azure Machine Learning モデルを呼び出す
アクセス権があれば、どの Azure Machine Learning モデルでも、Power Query エディターから直接呼び出すことができます。 Azure Machine Learning モデルにアクセスするには、Power Query エディターで、[ホーム] または [列の追加] リボンの [Azure Machine Learning] ボタンをクリックします。
アクセス権があるすべての Azure Machine Learning モデルが Power Query 関数としてここに一覧表示されます。 また、Azure Machine Learning モデルの入力パラメーターは、対応する Power Query 関数のパラメーターとして自動的にマップされます。
Azure Machine Learning モデルを呼び出すには、選んだエンティティのいずれかの列を、ドロップダウン リストからの入力として指定します。 入力ダイアログの左側にある列アイコンを切り替えることにより、入力として使用する定数値を指定することもできます。
[OK] を選ぶと、Azure Machine Learning モデルの出力のプレビューが、エンティティ テーブルの新しい列として表示されます。 モデルの呼び出しが、クエリに適用されたステップとして表示されます。
モデルから複数の出力パラメーターが返された場合、それらのパラメーターは、出力列内で 1 つのレコードとしてグループ化されます。 列を展開すると、個々の出力パラメーターを別々の列内に生成できます。
Azure Machine Learning の考慮事項と制限事項
Power BI Desktop の Azure Machine Learning には、次の考慮事項と制限事項が適用されます。
- Azure Machine Learning ビジュアル インターフェイスを使って作成されたモデルでは、現在のところスキーマ生成はサポートされていません。 今後のリリースでサポートされる予定です。
- 増分更新はサポートされていますが、AI 分析情報を含むクエリで使用すると、パフォーマンスの問題が発生する可能性があります。
- 直接クエリはサポートされていません。
- Premium Per User (PPU) のみのライセンスのユーザーが、Power BI Desktop から AI 分析情報を使用することはできません。対応する Premium 容量を備えた PPU 以外の Premium ライセンスを使用する必要があります。 Power BI サービスでは PPU ライセンスで AI 分析情報を引き続き使用できます。
関連するコンテンツ
この記事では、Machine Learning を Power BI Desktop. に統合する手順を概説しました。 以下の記事も興味深い内容で、役立つかもしれません。