今年の春に開催された Microsoft Build では、Power Apps Ideas という機能を今後搭載し、自然言語で求めている仕様を記入するだけで関数が自動で生成されるAIを搭載するということを発表していました。本日、この機能は一般パブリックプレビューとして公開されました。

昨日の概要

アプリをより活用できるようにし、フォームの保存機能や、検索、ボタン操作による画面表示などを行うためには Power Fx 関数を用いる必要があります。Power Fx 関数を使うにはプロの開発者である必要はありませんが、関数を書くにはやはり関数を覚えたりとExcel で関数を勉強するのと同じような時間が必要でした。例えば、検索ボックスで記入された文字をもとに、連絡先テーブルを検索し、最新の登録日時順にするには以下のような関数が必要になります。

つまり、この関数を理解するには最低限、以下を理解する必要があります:

  • Search()関数が何をでき、どういう構文か
  • Sort()関数が何をでき、どういう構文か
  • テキスト入力の文字列を Power Fx でどのように利用するか
  • Dataverse でのフルネームのシステム名の特定

本日リリースされた Power Apps Ideas により、普通の人が考えるような「search Contacts with Full Name in TextSearchBox1 and sort results by Created On latest on top」 と入力するだけで自動で関数が生成されます。
(日本語訳では、 TextSearchBox1 から Contacts を フルネームを基に検索し、結果を作成日時で最新から順にする)
※この機能は現在英語にのみ対応しており、日本語には対応していません。
この結果、テキストボックスをPower Fx で利用する方法を勉強することなく、Search()やSort()関数も勉強せずに使えます。

自然言語を Power Fx 関数へ変換する機能には AIモデル「GPT-3」を採用

175億パラメータという膨大なパラメータ数で学習された GPT-3 は高度な自然言語機械学習モデルで、人間が考えるような自然言語の文字列を理解し、生成することもできます。マイクロソフトは戦略的提携をこのGPT-3の開発者であるOpenAIと結んでおり、今回 Power Apps のような製品に機械学習モデルを適用することができました。

GPT-3 を微調整することで Power Fx の関数をどのようにコーディングするかを GPT-3が理解し、すでに学習モデルが理解している自然言語の強みと組み合わせ、Power Apps の作成者が普段同僚や友人に伝えるかのような形で求めている結果を入力することで自動で適切な関数をアプリに搭載することができるようになりました。

それでは上記で説明した例をもう少し深く説明します。求めている結果を入力し、その後「Get Ideas」を押すと、AIモデルにその入力内容が送信されます。入力内容、アプリにどのテーブルを利用されているか、どんなコントロールがスクリーンに搭載されているかなどの情報を基に、AIモデルは自動で最適な関数を生成します。また、Power Apps 側でも生成後に関数として成り立たないものを除外します。更に、生成された関数がどういう処理を行っているのかを説明するように自然言語での説明文も表示され、始めたばかりのノーコードの人も、プロの開発者でも関数を理解しやすくなります。

Power Apps Ideas を使ってみましょう

お使いの環境が「United States」/米国リージョンであれば、ギャラリーかデータテーブルを選択した際に画面右側に新しく「Ideas」タブが追加されています。Ideas タブをクリックし、表示される手順に沿って入力してみてください。詳細の利用方法はこちらにあります。

現在、この機能は米国リージョンで、表示言語が「en-us」になっており、英語が入力された場合にのみGPT-3が動作します。将来どのリージョンでどの言語に対応するかは今後の発表をお待ちください。

制約事項

現在この機能は以下の関数に対応しています:

  • Search()
  • Sort()
  • SortByColumns()
  • Filter()
  • FirstN()
  • LastN()
  • StartsWith()
  • EndsWith()
  • DateDiff()
  • DateAdd()など

利用できるコントロールはギャラリーまたはデータテーブルで可能です。入力する内容がよりシンプルで明確であればあるほど、より精度の高い関数が候補として表示されます。実際にどのようなものが使えるかは例として画面に表示されるものもお試しください。

現段階ではプレビュー機能として、様々な制約事項があるため、詳細はこちらをご覧ください。

  • データソース:Dataverse のみに対応しています
  • データ型:テキスト、整数、日時、日付のみ、小数点
  • リレーション:単体のテーブルのみ対応しています。今後、参照にも対応する予定です

今後の予定

まだまだ現段階では制約事項は多く、今後より多くの関数やコントロール、データ型や地域と言語に対応していく予定です。