人工知能を活用したシステムの開発現場はどのようなものになるか

GIZMODEに、こんな記事が出ていました。

約1カ月、人間のフリをして気づかれず。

この春、ジョージア工科大学インタラクティブ・コンピューティング学部のオンライン講座に、ジル・ワトソンというティーチング・アシスタント(以下TA)がいました。学生は彼女にオンラインフォーラムで質問し、随時回答をもらっていました。ジルがじつは人工知能だとは知らずに。

オンライン講座に寄せられた約4万件の質問・回答データをIBMのWatsonに学習させ、ジル・ワトソンという名前で、学生からの質問に回答するようなシステムを作ったという話です。

私も最近、似たようなシステムの開発をやっているので、ジル・ワトソンプロジェクトがどのように進んだのか、この記事から追っかけてみようと思います。

どのような要件に向くのか

「オンラインクラスの秘密は、生徒が増えれば質問の件数は増えるものの、質問のバリエーションはそんなに増えないのです」とGoelさん。「学生は同じ質問を何度も何度も聞くものです。」この状況は、自然言語処理に長け、明確な答えのある質問への対応を得意とするワトソンのプラットフォームにはうってつけでした。

同じ質問が何度も何度も聞かれる。もしかしたら、Q&Aの世界にも80対20の法則があるのかもしれません(80%の質問は20%の回答でまかなえる)が、そうしたシチュエーションなら、人工知能は有効活用できます。重要な20%の回答に結びつく質問のバリエーションを学習しておけば良いのですから。

Watsonに学習させた4万件の質問・回答データの構成が分からないのですが、おそらく4万件の質問に対する4万件の回答という構成ではないと思います。同じ質問といっても、それは同じ回答になる質問という意味で、学生が投稿した質問文そのものは同じではないはずです。

多くの既存ナレッジベースは、類似の質問を1つにまとめるようなプロセスでデータを作っているでしょう。その方が閲覧者が見やすいし、データの管理もしやすいからです。ただ、人工知能に対する学習データという観点では、整理されすぎたナレッジベースは投入データとしては望ましくありません。それでは、人間が発する曖昧な表現に対する学習が出来ないからです。回答については整理しておくべきですが、質問についてはバリエーションが欲しいのです。

開発プロセスに「学習」というタスクが入る

通常のシステム開発プロジェクトでは、要件定義→設計→開発→テストといった開発プロセスが用いられます。人工知能を使った開発プロジェクトには、ここに「学習」というタスクが入ります。

「初期のジルの回答は、キーワードにこだわりすぎて不適切になることがありました」と、プロジェクトに参加した大学院生のLalith Polepeddiさんは言っています。「たとえば、ある学生が他の学生と一緒にビデオ講義を見る企画について質問したときです。それに対しジルは、ビデオ講義を補完する教科書をすすめるような回答を出してしまいました。たしかにキーワードは同じですが、文脈が違っていたのです。我々はこうした間違いから学び、ジルをだんだんと賢くしていったのです。」

人工知能を用いたプロジェクトでも、通常のプログラミングが必要です。WatsonはAPIとして提供されているため、ユーザとやり取りするための画面などのインタフェースとAPIをつなぐプログラムが必要となり、この部分は通常の開発プロジェクトと同様です。

さらに、Watsonに投入する学習データの準備や前処理が必要です。学習データには決まったフォーマットがあるので、それに変換する必要があります。また、ジル・ワトソンにより人間らしい回答をさせるには、回答データの言葉遣いや、前後の文脈に左右されない文章作りが必要になります。

ジル・ワトソンの回答に不適切なものがあったなら、学習データの作り直しが必要です。通常のプロジェクトならプログラムのアルゴリズムを見直しますが、人工知能の場合は学習データを見直します。(WatsonのAPIはいくつかあって、それをプログラムで組み合わせて回答を探していくので、そういう意味ではプログラムのアルゴリズムを見直す必要もあります。)

学習データの作り直しは、開発者がじっくり考えて作り直すこともありますし、ユーザとのやり取りの中から自動的に追加の学習データを作っていく強化学習の仕組みも必要になるでしょう。

最終的にジルはこの仕事をうまくこなせるようになり、3月には人手の確認なしで、フォーラムに直接回答をポストしても大丈夫と判断されました。

注目したいのはこの部分です。3月まではジル・ワトソンが回答する前に人手での確認が行われていたということです。そこで不適切があると判断されれば、その回答は行わず、学習データに反映するという作業が行われていたのだろうと想像できます。

このタスクが「学習」タスクといえ、テストを兼ねて一定の期間が必要になります。

ディープラーニングが進めば?

Watsonの質問回答機能は、ある意味では枯れた技術の上に機械学習を取り入れたものなので、「教師あり学習」となり、それなりの工数をかけて学習データを準備し、調整し、といったことが必要になります。

一方で、昨今話題になっているディープラーニングは基本的に「教師なし学習」が可能となるため、このような手間がかからなくなる可能性があります。ただ、それが(少なくともWatsonの質問回答機能レベルには)誰でも実用的につかえるようになるまでは、まだ時間がかかるのではないでしょうか。

当面は、このジル・ワトソンプロジェクトのような形での人工知能の導入が増えてくるものと思いますので、こうした開発プロセスに慣れていく必要があるでしょう。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。