テクテク日記

テクテク=テクノロジー&一歩ずつ(テクテク)

Copilot for Power BI(レポート作成)

以前の記事でCopilot for Data Factoryについて紹介をしましたが、今回はPower BIのセマンティックモデルが完成した状態から、Power BIサービス上でCopilotがレポートの提案や作成を支援する機能について考察してみたいと思います。

今回紹介する内容は、以前執筆したSaaS分析シリーズのサンプルデータを基にしています。関連する情報を詳しく知りたい方は、下記シリーズ(計10回)もご覧いただければと思います(一部の箇所でDAXが出てくるため、難易度が少し上がるかもしれません)。

marshal115.hatenablog.com

Copilotの利用条件

Copilotは2023年11月末時点ではパブリックプレビューの状態ですが、こちらの公式記事により、利用するためにはPower BIでP1容量、もしくはFabricでF64容量が必要となります。

したがって、プレミアム環境を持たないPower BIのライセンスのみを利用しているユーザーは対象外であり、またFabricの無料試用版も対象外となります。さらに、条件を満たしていても、全ての顧客に一挙に展開することはできず、現在段階的に展開される予定です。

より詳細な要件については下記公式サイトをご確認ください。

learn.microsoft.com

Copilot for Power BI

Copilotは現時点、以下のワークロードでPublic Previewとなっています。このうち、Copilot for Data Factoryは前回見ましたので、今回はCopilot for Power BIについて見ていきたいと思います。

前提条件

セマンティックモデルは以前書いた記事のこちらのモデルを使用しています。

marshal115.hatenablog.com

データモデルは下図のようなスタースキーマとなっています。

下記図表におけるデータの配置は、年月を縦軸、顧客を横軸として、それぞれの顧客がサービスを使用した期間を示しています。期間中にサービスを使用した場合は、該当するセルに1が記され、そうでない場合は空白となっています。また、各期間における課金額は0円、1,090円/月、2,170円/月の3つの種類で表されています。

なお、1,090円と2,170円の課金額の違いに関しては、前者がスタンダードプランを利用している場合であり、後者はプレミアムプランを利用していることを意味しています。特に、1,090円から2,170円への変化が見られる場合、プランをアップグレードしたことを示しています。

このデータセットをベースに、リレーションシップが構築された後に、以下のようなDAXメジャーを記述しています。

各種指標

客数指標

  • 全顧客数(# Customers)
  • 有料サインアップ顧客数(# Customers_Signup)
  • CVR(Conversion Rate)
  • 新規顧客数(# New Customers)
  • 解約顧客数(# Lost Customers)
  • プレミアムプラン顧客数(# Customer_Premium)
  • プレミアム顧客割合(% Customer_Premium)
  • 維持顧客数(# Customer Retained)
  • 顧客リテンション率(Customer Retention)
  • 顧客チャーン率(Customer Churn)

収益指標

  • MRR(Total MRR - Monthly Recurring Revenue)
  • 新規顧客MRR(MRR from New Customers)
  • クイック・レシオ(Quick Ratio)
  • (中略)

今回、このサンプルデータを使用した背景は次のとおりです。

  1. データモデルがシンプルであるため、扱いやすい構造になっている
  2. すべてのデータが英語であるため、Copilotが最も理解しやすい形式になっている
  3. 意図的に難解なDAXメジャーを導入することで、よりリアルな結果が期待できる

単純な指標しかないセマンティックモデルよりも、少し複雑な指標があるものを使うことでCopilotがどんな興味深いレポートを生成してくれるのかを期待しています。

Copilotでレポートを作成

Power BIサービスにレポートを発行した後、以下のようにセマンティックモデル(インポートモード)にアクセスします。まずは「データ モデルを開く」を行える状態にします。

  • 管理ポータルを開く(管理者権限を持っている人はここをまず✅)
  • 以下のように、「データ モデルの設定」で「有効化」になっていることを確認。会社のポリシーに従う必要がありますが、ウェブ上でデータモデル(セマンティックモデル)を編集する必要がある場合、こちらを✅しておく必要があります
  • 発行されたFabricのワークスペースに戻り、・・・をクリックし、「ワークスペースの設定」より、「データモデルの設定」で✅が入っていることを確認
  • 対象となるセマンティックモデルを開く(注: Lakehouse経由で作られたセマンティックモデルではないため、「データ モデルを開く」をクリック可能)

    ウェブモデリングができることを確認

    メジャーをクリックすると、DAX式が見えることも確認

    構築済みのリレーションシップも確認可能
  • 「新しいレポート」をクリックし、新規タブから空白のレポートを作ります

    Copilotが有効になっている場合、Copilotのアイコンをクリックし、⑧の★をクリックして「What's in my dataset?」を選択し、送信ボタンをクリック

    ※ Copilotを有効にするには以下2つを会社のポリシーに従って有効にする必要があります

  • Copliotによるセマンティックモデル(データセット)の解説

    「What's in my dataset?」と送信すると、Copilotは指定されたセマンティックモデルについての解説を提供します。この解説は、モデルのメタデータ情報を元にしており、Copilotが可能な限り推測を行います。また、メジャー名に特定の指標が使用されていた場合、それらも推測された形で解説に含まれます。今回使用したサンプルはSaaS分析というものですので、ほぼその狙い通りの解説をしてくれたと思います。
  • 「Suggest content for this report」(このレポートの内容を提案する)を選択し、送信します
  • 候補が複数出現するため、一番最初のものを選択し「+ Create」をクリック

    ここで驚いたのは、Copilotが対象モデルを理解した上で、各テーブルの列情報を元にコンバージョンやリテンション、解約(チャーン)などの提案をしてくれたことです。
  • Power BIレポートの自動生成1

    素晴らしいレポートが作られました!と思いきや、最初のパイチャートと最後のラインチャートが非常に残念です。
    • パイチャート: 同じ色の中に2つの分類(PriceTypeがStandardとPremium)が存在しており、これであれば「積み上げ横棒グラフ」のほうが圧倒的に分かりやすい。なお、現在はCopilotに「パイチャートを積み上げ横棒グラフに変更」と命令しても直してくれませんので、こちらは手動作業になります。
    • ラインチャート: こちらでは、国別、OS別、年月別のMAU(Monthly Active Users)を可視化しようとしていますが、通常、ラインチャートは時間経過を示す横軸がメインとなる時系列チャートに使用されるため、この場合は非常に分かりにくくなっています。

      従って、こちらでは時間経過に基づいて、国別もしくはOS別に下記のように表示することが、より適切な可視化方法だと考えられます。

      最終的には、「Country」というスライサー(フィルター)があるため、OS別にすることで異なる観点から様々な動向を観測できます。そのため、下図のようにaとbのビジュアルに変更すると良いでしょう。

      他の部分では、他のビジュアルはかなり良い感じになっていますので、Copilotが素晴らしい仕事をしてくれたと思います。
  • Power BIレポートの自動生成2
    今度は別の提案を選択してみます。先ほどは「顧客セグメント」にフォーカスしたページでしたが、今度は「収益と成長の指標」について見ていきます。

    すると以下のレポートページが生成されました。

    ぱっと見、何ら問題がなさそうなレポートですが、細かい部分で引っ掛かるのがいくつかあります。
    1. 最初のグラフは地図ではなく、棒グラフのほうが良い
      国名をベースに地図チャートが作成されていますが、一部の国が可視化されていない状況です。積み上げ横棒グラフに変更することで、一目で比較できるようになりました。
    2. 横軸の年月がテキスト軸ではなく、日付型Date列のほうが良い
      チャートが小さいため、横軸を日付型の列に変更しても年月が出現しないことがありますが、斜め横にテキストがはみ出すチャートよりはマシでしょう。

    3. 4番目のチャート(YMによるNet Revenue Retention)は横軸に日付型Date列で作ったほうが分かりやすい

      最終的には以下のようなレポートページに仕上げるとより見栄えが良くなると思います。

      今回の重要なポイントは、最初のページとは異なる指標が使用されていることです。これらの指標はSaaSビジネスにおいて重要なKPIとなるため、初期段階でこれらを参考にすることは非常に有益だと考えられます。

  • 「説明」ビジュアルを使う
    ラインチャートを「説明」ビジュアルに変更し、「Copilot (プレビュー)」を選択


    「分析情報の箇条書きを作成する」をクリックし、説明ボックス内に命令文を挿入します。留意して頂きたいのは、この命令文は現在のページの中から得られた洞察をまとめたものとなります。

    作成をクリックすると、数秒で以下の説明を表示してくれます。ここでは全て英語になりますが、番号をクリックすると、説明の元となるチャートをハイライト表示してくれます。

    最初の説明は「Chinaが全ての国で最もMRRが高く、1/4以上の割合を占めている」となっていますが、ビジュアル内の文字を選択して日本語に翻訳することはできません。そのため、英語が苦手な人向けには「日本語で」という指示文を最初から追加する必要があります。

    これを行う前、気になる部分があるので最後の文章を見てみましょう。
    "The quick ratio indicates that the company is able to cover its current liabilities with its current assets."

    日本語訳: 「当座比率は、企業が現在の資産で現在の負債をカバーできることを示しています。」

    この文は、Quick Ratio(当座比率)について述べています。Quick Ratioは企業の財務状況を示す指標であり、企業が短期的な支払い義務を果たす能力を示します。しかし、SaaSビジネスにおけるQuick Ratioはビジネスの成長性を見極め、「顧客ロイヤリティ」を担保できているかの判断するものです。文脈から考えても明らかにこれは間違った指摘ですが、Copilotなどの自然言語処理ツールを使用する際には、その出力結果を適切に検証し、必要に応じて専門知識や文脈を考慮することが重要です。レポート開発者は、このような誤解を避けるために注意を払うべきです。

    ここから先程の命令文に「日本語で」を追加して、再度作成してみます。

    すると以下のような日本語版の説明文が生成されましたが、良く見ると英語の時と微妙に解説が違っているのが分かります。

    翻訳をしているわけではないため、Copilotは異なる視点から解説をしたことになるわけです。
    もう一つ見てみましょう。今度はリーダーシップ(経営層)から質問される可能性の高い質問についてCopilotが質問回答を考えてくれました。

    非常に長いので、日本語に翻訳したものを載せておきますが、めちゃくちゃそれらしい回答になっています。
    • 各国と時間軸を比較した場合、当社のARPUはどうなりますか?
      • 当社のARPUは国によって大きく異なり、2022年12月時点で最も高いARPUは中国の2.17Kであり、最も低いARPUアメリカの1.09Kです。
      • 当社のARPUは時間経過と共に全体的に上昇傾向を示し、2021年4月から2022年12月までに98.9%増加しました。最も高い月間成長率は2022年10月から2022年11月までの17.2%でした。
    • 当社のNRR(Net Revenue Retention)に影響を与えている要因と、それを改善する方法は何ですか?
      • 当社のNRRは71.39%から133.09%まで変動し、平均は100.6%です。これは、既存顧客からの売上減少がアップセルやクロスセルからの売上増加を上回る月があること、そして逆の傾向があることを示しています。
      • 当社のNRRに影響を与える可能性のある要因には、顧客満足度、製品品質、価格設定、競争、離脱率、拡大機会などがあります。最も価値のある顧客を維持すること、付加価値の高いサービスを提供すること、顧客ロイヤルティや紹介を増やすこと、顧客離脱を減らすことで、当社のNRRを向上できます。
    • 当社の総MRRは各国でどのように分布しており、時間と共にどのように変化していますか?
      • 当社の総MRRは中国が最も多く、2022年12月時点で総MRRの25.86%を占めています。中国の総MRRは98.99Kで最も高く、次いで韓国が89.13K、英国が88.09K、日本が72.89K、アメリカが33.7Kです。
      • 当社の総MRRは2021年4月から2022年12月までに290.13%成長し、98.1Kから382.8Kに増加しました。最も高い月間成長率は2021年10月から2021年11月までの33.82%でした。
  • 「説明」ビジュアルのデメリット(現時点)
    上記のように、説明ビジュアルは全体を把握する上で非常にパワフルな機能を有しますが、実際に前の例で「日本語で」を追加すると、以下のように機能しなくなります。

    文章が長すぎると途中で切れてしまう仕様のようですが、今後はローカル言語への対応が期待されます。

おまけ

既知のDAXメジャーを指定して関連項目を含むレポートを作ることも可能性。例えば、以下のような命令文を追加し、レポートを作ってみます。

create a page describing Total MRR(Total MRRを説明するページを作成)

失敗することもありますが、Copilotにより以下のようなページが生成されます。

こちら、悪くはないですが、前述したマップビジュアルやテキスト型の年月でチャートが作られてしまいました。

ここで以下の説明文を入れてもう一度作成してみます。

cretea a page describing Total MRR. Do not use YM but Date for time-series charts. (Total MRRの説明ページを作成。時系列チャートにはYMではなくDateを使用する

年月はYM(テキスト型)ではなく、Date(日付型)で作成されるようになり、時系列チャートが分かりやすく表示されるようになりました。しかし一方で、ビジュアルの切り口や配置が変わり、更にカードビジュアルが先程の4つから2つに減っているのが分かります。

もう1つ命令文を追加してみます。

cretea a page describing Total MRR. Do not use YM but Date for time-series charts. Do not use Map visual(Total MRRの説明ページを作成。時系列チャートにはYMではなくDateを使用する。マップビジュアルを使用しない

「マップビジュアルを使用しない」を追加していますが、結果は以下の通り。

確かに、マップビジュアルはなくなりましたが、現在は1つのカードビジュアルだけが表示されています。さらに、「YMのカウント」という意味不明な表記のカードビジュアルが混ざってしまいました。

この結果から、追加の命令文を増やすことで、期待通りのビジュアルが作成される可能性が高まる一方で、本来望ましい判断で作成されるべきビジュアルにも影響を与えるリスクがあるかもしれないことが分かりました。しかしながら、データモデルが複雑であることや、メジャー名や命名規則に完全に従っていないこと、そしてCopilot for Power BIが新しい技術であり、今後さらなる改善が見込まれる点を考慮すると、提示された結果が環境によって大きく異なる可能性があることを留意する必要があります。

なお、命名規則等に関するガイダンスは下記より参照できます。

learn.microsoft.com

留意点等

最後に、Copilot for Power BI(レポート作成)について、いくつかの留意点を記載しておきます。

  1. Copilot for Power BIは2023年12月時点、プレビュー状態であり、まだ日本語に対応していない

  2. 例え日本語の命令文でレポートを作成できたとしても、それは偶然の成果であると考えたほうが適切

  3. 「説明」ビジュアルを使用した場合、基本的には英語での返答が想定されます。従って日本語での表示を希望する場合は明確に「日本語で」というリクエストを追加する必要がある

  4. 同様に「説明」ビジュアルにおいて、英語での返答と「日本語で」のリクエストによる返答は、単純に英語から日本語への翻訳結果ではないことに留意が必要

  5. 日本語ベースの回答はすべて表示されるとは限らない

  6. 2023年12月時点、Copilotに同じような質問をすると、同じページ名が作成されることになる

更なる詳細については下記公式Docsも参考にされたい。

learn.microsoft.com

これらの留意点に加えて、データがどこを経由するかやセキュリティがどのように確保されるかなどの問題もありますが、詳細については公式サイトからご確認ください。

learn.microsoft.com

Copilotには制限がかなりありますが、セマンティックモデルに初めて接する場合でも、レポート作成の初期のオーバーヘッド(作業コスト)を軽減し、その後のデータに対する理解を「説明」ビジュアルとして提供してくれる点は、大きな付加価値があると考えています。