画像はイメージです original image: Sergey / stock.adobe.com
AIと「会話」しながらプログラミングが実現!弁護士やカウンセラーもAIへ
2020.06.13
Updated by Ryo Shimizu on June 13, 2020, 15:03 pm JST
画像はイメージです original image: Sergey / stock.adobe.com
2020.06.13
Updated by Ryo Shimizu on June 13, 2020, 15:03 pm JST
Facebookなどが支援するOpenAIが、OpenAI APIのβテストを発表し、waiting listへの登録が可能になった。
これに伴って、OpenAIの提供するAPIの利用イメージも公開されたが、これがちょっと衝撃的な内容なので非常に興奮した。
OpenAIといえば、あまりに精巧な文章が生成できるために危険を感じて公開を差し止めたという言語AIであるGPT-2が有名だが、今回公開されたOpenAI APIはこれをさらに改良したGPT-3に基づくモデルということになる。
そこで実現される機能は様々だが、ほとんどの人々の想像を遥かに上回る可能性を示してくれた。
たとえば、Wikipediaを「検索」するのではなく、Wikipediaについて「質問」することができる「セマンティック検索」機能。
「パンはどうしてやわらかいのか」と質問すると、Wikipedia上の文章が要約されて出てくる。
かと思えば、AIが自動的にファンタジー風世界観のテーブルトークRPG(古い言い方をすればテキストアドベンチャーゲームのZORK的な)を展開してくれる「AIダンジョン」
さらには、Excelのプラグインとして例えば「技術系企業の一覧」が欲しい、と書けばそのとおりの内容が埋め込まれるようなものまである。
しかも、「テクノロジー企業」書くと、MicrosoftやAppleが筆頭だったのだが、それを一度消して、TwitterとFacebookだけを冒頭に書いてから「Complete Table(表を完成させる)」ボタンを押すと、ネット系企業に書き換わるという離れ技まで披露されている。
さらは、弁護士にするような法律的知識に関する質問に答えたり、心理カウンセラーの代わりにカウンセリングしたりという例がデモとともに示されている。
もちろんすべて人間並とまではいかないが、これまでは「可能性」すら感じることが出来なかったのが、ここまで来て「もうちょっとで人間の弁護士やカウンセラーと同等レベルになるかもしれない」という可能性を十分感じさせるものに仕上がってきた。
個人的にはその可能性を最も強く感じるのが、「AI支援プログラミング」である。
こちらのデモでは、人間が関数名を書いてコメントに関数の機能を書くと、AIが自動的にプログラムを書くというものになっている。ちなみにpalindromeとは「回文」のことで、たとえば「abcba」のようにひっくり返しても文字の並びが変わらないものを言う。
ショッピングサイトのようなものをプログラミングする例で、人間がアイテム(商品)とオーダー(注文)のクラスを作り、「すべての商品価格を集計し、品物の名前が回文だったら割引する」というコメントを入力すると、勝手にプログラムが生成される。
このプログラムでも基本的に意味はあってるが、「回文割引」では商品価格を20%にしてしまう。そもそも「回文割引」という世にも奇妙な概念なので、AIも人間がどのようにしたいのかわからないのでこのように書いたわけだ。
しかし、意図としては「回文割引」は20%引きなので、人間がプログラムを修正する。
するとAIはプログラマーの意図を理解して、プログラムの続きを書いてくれる。
まさに人馬一体。人間の想像力をAIが拡張し、人間とAIによる共同作業によってプログラミングがなされるという世界が実現するのである。
もちろんこれらのデモは、「一番いいケース」について言及しているに過ぎないので実際に触ってみないとなんとも言えない。しかしOpenAI APIの持つ可能性の果てしなさが少しは
伝わっただろうか。
さらにスゴイことに、OpenAI APIはものすごく簡単につかうことができる。
実際にOpenAI APIを使って、「自然言語シェル」を作る、というライブコーディングのデモもあるのだが、実際のコードは画面一枚に収まるくらい簡単なものだ。
たったこれだけで自然言語でコンピュータに指示するシェルを作れるのだ。
これの動作も衝撃的で、こんな感じの会話ができる。
イメージしやすいように日本語との対訳で追いかけてみよう。
nlsh> what day is it?(今日って何?)
>>> Run: date +%A [Y/n]:
Wednesday (水曜日)
nlsh> no, I mean the full date(ちがう。ちゃんと日付って意味)
>>> Run: date +%F [Y/n]:
2020-06-10 (2020年6月10日)
nlsh> could you print them both together?(一緒に表示できる?)
>>> Run: date +%A %F [Y/n]:
date: illegal time format
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
nlsh> I think you forgot the quotes (君、クォートを忘れてるよ)
>>> Run: date '+%A %F' [Y/n]:
Wednesday 2020-06-10 (水曜日 2020年6月10日)
まさにコンピュータと「会話」してる!!!
正直、このデモは衝撃的だった。
本当にこんなことができるのだろうか。
こんなことができるとすれば、世の中のすべてのことは変わってしまう。
日本語に対応する日もそう遠くないだろう。
これだけのユースケースを引っさげて、OpenAI APIが登場するというのは非常に期待が高まるし、こうしたものに刺激を受けて世界中の人々が想像力を働かせるだろう。
GPT-2を日本語に適用した例としては、以前本欄でも紹介したひびのべるという小説生成botがあるが、どうも世界はとんでもない方向へ進化しているようだ。
おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)
登録はこちら新潟県長岡市生まれ。1990年代よりプログラマーとしてゲーム業界、モバイル業界などで数社の立ち上げに関わる。現在も現役のプログラマーとして日夜AI開発に情熱を捧げている。