ブログ

AI十里 – 下町ディープラーニング #18

下町ディープラーニング

 皆さんこんにちは、dottの清水です。

 前回「入るを量りて出ずるを為す」では、AIを運用する時のインフラの環境の話をしました。

 多くの計算を必要とする学習時に比べれば、AIで答えを出すときに必要な計算は少ないのですが、Webサーバーのようなマシンと比べると、それなりのサーバーを用意する必要があるよ、というお話でした。

 今回は、そんな中でも問題を解決する時にはどんな方法が効率的なのかを考えることで、必要最小限の資源で済むようにしようというお話です。

いつ自動化が必要なのか

 「OK、例のあの人」と呼んだらすぐに答えてくれるものばかりがAIではありません。このブログでは、機械学習だったりディープラーニングによって人間の仕事を自動化できる、またはサポートできる機能のことをAIと呼んでいますが、例えばそのAIが必要なシチュエーションを考えてみましょう。

 世界規模で運営されている大手のECサイトがユーザーにおすすめを表示するための機能、それはもしかしたらリアルタイムで常に使用できる状態である必要がありそうです。

 しかし1日に1回発行される新聞の記事から特定のカテゴリの情報だけを抽出して表示するような機能の場合はどうでしょうか?

 この場合は1日に1回の発行に合わせて、情報にカテゴリの情報を付与することができれば良いので、常に起動している必要はなさそうです。

情報がどれだけ変化するか

 一度登録されてしまえば変化のないような情報、例えばニュースとかこのブログのような記事では、必要な情報を事前に計算させておくことができます。反対に、常に変化するような情報、例えばECサイトの購入動向だとか交通情報から売り上げを予測するようなシステムでは、常に計算ができる状態になっていた方が良さそうです。

 つまり、機能を使うユーザーやシステムが、その答えを出そうとした時に、改めて情報を最新のものにして、答えを計算する必要があるかどうかによって変わってくると言えます。

 1日に1回とか、1時間に1回とかの計算ですむAIは、その時だけ起動する構成にすることで費用を安く済ませることができます。AIが1日にどれだけ歩くのかを考えておく必要がありそうです。

どんなふうに使うのか

 AIと聞くと、常に最新情報から状況を判断し、なんだか素晴らしい結果を計算するすごいもののような気がしますが、実はそんなに贅沢に計算を行わなくても済むことも多くあると思います。ただでさえ高価になりがちなインフラの費用ですが、計算するタイミングや利用方法を工夫することで、Webサーバーを常時起動するよりも安く抑えることができます。

 なので設計をするときに「どのようなAIを作りたいか」を考えるのと同じくらい大切なことは「どのようにAIを利用するか」ということです。ただ不思議なことに、この「どのように使うか」ということを考えることが人間は苦手なようで、「どんな機能の機械が欲しいか」という視点に集中しがちです。特に昨今のAIがより人間の脳に近いなんて言葉が一人歩きしてしまっているおかげで、人間がやることを真似させるように、機能を考えてしまうからかもしれません。

 紙をデジタル化するときに、人類はペンをキーボードに切り替えてきましたが、それと同じように、作業をデジタル化(今流行りの言葉で言えばDXですかね)する時には、より効率的なやり方に寄り添って考える必要があるということですね。

AIを作る前に考えること

 これまで見てきたように、学習する時と機能を使うときで、必要な計算量にかなりの違いがあり、機能を使う時も常時なのか1日に一回なのかによって、インフラを支える費用にはかなりの違いが出てくるという話をしました。

 では実際にどれくらい違うのか、今回も話が長くなってきたのでそれはまた、次回の記事で。