2022年4月1日金曜日

自然言語による発話からスマホアプリを自動生成する!

 MIT App Inventorは、従来型のコーディング無しにブロックを編集する方式で、スマホアプリの開発を格段に容易にしました。MITでは、この「ノーコーディング」をさらに進化させるべく、作りたいアプリを(自然言語で)喋るだけで、それを実現するApp Inventorプログラムを自動生成するプロジェクトAptlyを進めています。

Aptly (次世代MIT App Inventor)では何ができるのか
 このAptlyは現時点ではそのコンセプトの実験実証が行われています。そこでは、一つの例が示されています。図1に示す言葉(文章)をスマホに向かって喋ると、それを実現するスマホアプリ(6カ国間の言語の自動翻訳アプリ)が自動的に生成されることを示しています!

 研究開発の意義や開発状況については、MIT App Inventorの創始者であり現在もチームのトップを務めるProf. Hal Abelsonが自身のブログにかなり詳しく書いています:
Mar 21, 2022 hal's Blog

人手でこの仕様のApp Inventorアプリを作成してみよう
 まず、これまで通り、人手によって、図1に示された仕様の「6カ国の言語間の自動翻訳アプリ」をMIT App Inventorで作成してみます。慣れている人ならば、標準機能だけを使って容易に作成できるはずです。実際、図2に示した動くアプリは、小生が(作成開始から実行まで)10分ほどで作り上げたものです。

 このように、現時点のMIT App Inventorは、作り易さにおいて十分に優れているのですが、それでも、初心者は、インターフェースのデザインと、処理ブロックの実装において、色々と戸惑うと思われます。Aptlyは、それをも解消しようとしています!

先進的な自然言語処理モデルGPT-3(Codex)の利用がその要
 Aptlyの処理の要は、自然言語処理モデルCodexの利用にあります。最近注目を集めているGPT-3は、BERTなどと同じくTransformers、Self-Attentionsをベースとしており、自然言語の文章から何らかの記号列への変換を得意とします。Codexは、その変換先がPythonなどのプログラミング言語となるようにGPT-3を特化したものです。

 AptlyはこのCodexの上で、App Inventorのブロックに対応できるように設計された(少しPythonに似た)言語の中間語コードを学習させています。実際、図1に示した自然言語の文章に対して、図3のような中間語コードが自動生成されるとのことです。ここまで来れば、App Inventorの本来のブロック図は生成できる気がしますね。上記のブログ記事には、図2と似たApp Inventorアプリの生成結果も載っています。

 [小生の感想]
 すごいことになってきた。しかし、疑問も....。BERTにせよGPT-3(Codex)にせよ、文章の内容を理解しているわけではありません。精密な構文解析や意味解析も行っていないでしょう。また、人間のような、プログラミングに関する知識も持ち合わせていません。膨大なコーパスを使って、ひたすら、高度な学習(訓練)によって、入力記号列から別の記号列を生成しているだけとも言えます。それでも、驚嘆すべき変換結果が得られるのだから、参ってしまう!
 だから、「生成しているだけ」という言い方は適切ではないでしょう。実際、学習によって、見事に、生成に必要な何らかの(完璧ではないにせよ)重要な規則を発見しているように見えます。

ノーコーディングを推進することの意義
 上に示したProf. Abelsonのブログ記事は、単に技術論にとどまらず、「ノーコーディング」を推進することの意義についても言及しており、大いに参考になります。詳細は、原文をお読みいただきたいのですが、概略、以下のように述べています:
  • コーディングの技術はIT教育の基本であると唱える人もいる。逆に、コーディングはComputational Thinkingにとって重要ではなく、どのコンピュータ言語でどのように表現されるかに関係なく、computingの概念的なアイデアに焦点を当てたいと考える人もいる。Aptlyは後者の見解に合致している。
  • 産業用アプリケーションの構築においても、専門的なプログラマーの必要性を減らそうとする動きにも注目すべき。コーディングの十分なトレーニングを受けた人でなくてもアイデアを実現できるよう、障壁を取り除くことが重要である。
  • ある程度経験のある学習者は、Aptlyを使ってアプリを自動作成し、生成されたブロックを編集して自分で機能を追加することもできる。Aptlyで作成されたアプリが意図通りに機能しない原因となるバグを見つける練習もできる。
  • 一方、Aptlyは、コンピュータサイエンスの課題解決に適用される最新の機械学習の驚くべき特徴を明らかにする。与えられた特定の命令を超えた判断をするという証拠も見られる。例えば、上記の翻訳アプリを作る際、特定の言語を指定していないにもかかわらず、Aptlyは学習結果に基づき、ターゲットとなる6つの言語(英語、仏語、日本語など)を独自に選択した。[小生の注:日本語が自動選択されたのは嬉しい!]
  • ノーコーデイングから連想されることだが、1970年代に導入された電卓は、教育現場での使用について議論を巻き起こし、50年経った今でも続いている。教育者の中には、電卓が算数の学習能力を損なうことを懸念して、電卓に抵抗する人もいる。逆に、電卓が算数だけでなく、より高度な数学の概念に向かうための踏み台になることを歓迎する人もいる。

0 件のコメント:

コメントを投稿