検索
ニュース

自然言語入力で簡易コードを自動生成、Microsoftが「Power Apps」のローコード開発機能を強化「GPT-3」などのAI技術でPower Fxを支援

Microsoftはプログラミング言語「Power Fx」の数式を、自然言語入力に基づいて自動生成できるようにする。OpenAIが開発した自然言語AIモデル「GPT-3」のファインチューニングによるものだ。さらに自社のローコード開発プラットフォーム「Power Apps」で、GPT-3や他のMicrosoft AI技術を「Power Apps Studio」に直接追加する。

Share
Tweet
LINE
Hatena

 Microsoftは2021年5月25日(米国時間)、自社のローコード開発プラットフォーム「Power Apps」において、オープンソースプログラミング言語「Power Fx」の数式を、自然言語入力に基づいて自動生成できるようにすると発表した。

 最も高度な自然言語AIモデルの一つであるOpenAIの「GPT-3」のファインチューニング(パラメーターの微調整による既存モデルの追加学習)によって実現する。

 さらにアプリケーションメーカーが必要なアプリケーションを迅速に作成し、そのプロセスで高度な概念を簡単に学習できるよう支援するために、GPT-3や他のMicrosoft AI技術を、「Power Apps Studio」に直接追加することも明らかにした。

 Power Fxは「Microsoft Excel」の数式をベースにしたローコード言語だ。Power Apps Studioは、Power Appsでキャンバスアプリケーションの作成に使われるアプリデザイナーだ。キャンバスアプリケーションは、Power Appsで作成できる3種類のアプリケーションの1種であり、ドラッグ&ドロップで作成できる。

どのようにアプリケーションを開発できるのか

 Microsoftによると、Power Appsで目的の機能を自然言語で記述すると、一連の数式が説明とともに表示される。その中から1つを選ぶことで、アプリケーションにロジックを適用できるようになる。例えば、「show me customers from the US whose subscription expired」(サブスクリプションが終了した米国の顧客を表示)といった記述で指定することが可能だ。

 さらにMicrosoftは、「Program Synthesis using Examples」(PROSE)と呼ばれるAI技術を利用して、“サンプルによるプログラミング”機能を、Power Apps Studioの「Ideas」機能に統合する。

 例えば、ギャラリー(Power Appsで作成されるアプリケーションのコントロールの一つ)の中で、人名をフルネームで表示するのではなく、ラストネームを頭文字にして表示したいとしよう。Power Appsに「Samantha B.」といったサンプルを1つ示すだけで、Ideasがギャラリー内の全人名の文字列を変換する適切な数式を提案するようになる。

 2021年3月に発表されたPower Fxでは、Excelのスキルを持つ多くの人が、高度なロジックをアプリケーションに追加できる。だが、Power Fxを使い込んでいるユーザーでも、複雑な数式の検索や学習、デバッグには多大な時間がかかる。AIベースのIdeasがPower Apps Studioに直接組み込まれることにより、始めたてのユーザーからベテランの開発者まで、誰もがこれまでより迅速に、アプリケーションを作成できるようになると、Microsoftは述べている。

自然言語入力に基づくPower Fxの数式生成とは

 MicrosoftはGPT-3の開発元であるOpenAIと戦略的な協業関係を構築しており、GPT-3をPower Appsのような製品に適用できる。

 GPT-3をファインチューニングし、Power Fxの数式の構造を理解させることで、Microsoftは、Power Appsを使用するメーカーがロジックを自然言語で記述し、適切な数式をアプリケーションに追加できるようにする。


PowerAppsがユーザーの自然言語入力に基づいて、Power Fxの数式を生成しているところ(出典:Microsoft、クリックで再生)

 例えば、ユーザーが電子商取引ベンダーに勤務していて、アプリケーションのギャラリーでベビーカーの注文を購入日で並べ替え、新しいものから順に10件を表示したいとしよう。

 複雑な数式を覚えて記述する代わりに、次のように、自然言語の文を入力すれば済む。

Show 10 orders that have “stroller” in the product name and sort by purchase date with newest on the top
(商品名に「ベビーカー」を含む10件の注文を表示し、購入日を基準にして、新しいものから順に並べ替える)
自然言語入力
FirstN(Sort(Search(‘BC Orders’, “stroller”, “aib_productname”), ‘Purchase Date’, Descending)
AIが生成したコード

サンプルによるプログラミングはどの程度有望なのか

 サンプルによるプログラミング(PBE)は、AIの新たなフロンティアであり、ユーザーが入出力サンプルからスクリプトを作成できるようにする。

 ユーザーはAIベースのPBEにより、元の値のパターンや数式を応用して、ギャラリーやデータテーブル内のデータを簡単に管理、操作できる。


PowerAppsがサンプルに基づいて、Power Fxの数式を生成しているところ(出典:Microsoft、クリックで再生)

 例えば、ユーザーが電子商取引ベンダーに勤務していて、データテーブル内の顧客名の表示を、ファーストネームとラストネームから、ファーストネームとラストネームの頭文字に変更したいとしよう(例えば、「John Smith」から「John S.」へ変更)。

 数式を使う代わりに、サンプルを示すだけで済み、プロセスを大幅に簡素化して時間を節約できる。

John S.
サンプル入力
Concatenate(Text(First(Split(ThisItem.’Account Name’, ” “)).Result), ” “, Left(Text(Last(Split(ThisItem.’Account Name’, ” “)).Result), 1))
AIが生成したコード出力

 これらの新機能は、2021年6月からプレビュー版が提供されて、Power Appsでギャラリーとデータテーブルに対して利用できるようになる予定だ。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る