ブログ

入るを量りて出ずるを為す – 下町ディープラーニング #17

下町ディープラーニング

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

 閑話を挟み、これまではdottで作ってきたAIの機能について、どのような課題があり、それについてどう制作してきたかというお話をしてきました。

 今回からは、いわゆるAIの機能を運用する上で、運用のコストをどのように考えているのかという話をしようと思います。AIの機能の開発というのは、目的や規模、内容によって様々ですが、作ったとしてその後はどんな費用がかかるのかという点を説明していきたいと思います。

AIはどこで動くのか

 改めておさらいをすると、このブログで「AI」と表現してきたものは、いわゆるディープラーニングによる機械学習を行なって作成したものを使って課題の解決を行う機能のことです。

 通常のシステムを動かす時にもサーバーの費用などが掛かりますが、AIを動かす時にはどんなところで動くのかという話はあまり馴染みのないことだと思います。

 Webサイトであれば、なんとなく「サーバー」というものの費用を払った経験などがあり、おおよそそこで何かが動いているというイメージはもう一般的になっているのではないでしょうか。

 ではAIはどこで動いているのでしょうか。

学習と実際の処理

 ちょっとどこで動くかを考える前に、「ディープラーニングは大量の計算をする必要がある」というフワッとしたイメージについて整理しておきたいと思います。

 高性能のGPU(グラフィックボード、グラボ)で処理を行うようなイメージがあるディープラーニングですが、それは主に「学習」の段階で求められるものです。ディープラーニングは大量のデータを煩雑な計算で学習して機能を獲得しますから、その学習工程には一般的なPCよりもかなり高性能なマシンが用いられます。普通のPCでも学習ができないということはないですが、何日も学習に時間がかかったりします。

 一方で実際に機能を動作させる時は普通のPCでも、まぁよほどひどくなければ問題ありません。

 それもそのはずで、学習は何万、何千万という膨大なデータを使用して行われますが、実際の業務でその機能を使用するときは、入力されるデータはそんなに多くないはずです。

 なので、今回は運用の話ですから、学習を終えて実際に業務を実行する時の話という前提のもとに進めていきます。

AIもただの計算

 AIといってもコンピューターで計算処理を行なっていることには変わりませんから、それをWebサイトやPC・スマホアプリに置き換えて考えても全く問題がありません。つまりみなさんのPCやスマホでも、Googleのデータセンターでも動かすことができるようになっています。

 PCやスマホで動くアプリケーションであれば、どれだけ使用しても電池が減るだけで使うこと自体にお金はかかりません。しかしサーバーは最近だと動いている時間だけ課金されたり、月額で借りるようなサーバーであればその料金が発生します。

 そのため運用しようとしているAIをどこで動かすのかを考えることは、初期の設計段階でもとても大切なことです。

 ではサーバー上で動かす場合は、Webサイトを置いておくサーバーと同じように費用を考えておけばいいでしょうか?

あなたのコアは、いくつですか?

 実はWebサイトを表示するだけのサーバーだったり、それよりももっとブログのようなシステムを動かすサーバーだったり、そういうものは皆さんが今使っているスマホやPCよりもかなり性能が低いものでも十分に動きます。

 最近ではブラウザ上で文章を編集できたり、様々な機能を持ったWebアプリも多くなっていますが、表面上の動作に関するほとんどの計算はブラウザで行われています。Webサーバーはアクセスした人にファイルを配信するだけなので、YouTubeで動画をアップして変換するような機能がない限りは、ほとんどマシンに負担がかからないからです。

 CPUが2コアでメモリが4GBもあれば、僕の感覚としては「それは結構立派なサーバーだなぁ」という感じがします。(※高負荷になった時はたくさんのサーバーが自動起動する方法がdottでは標準的に用いられるので、特に一つ一つのサーバーが高性能な必要がないということもあります)

 皆さんのPCと比べてどうでしょうか?

ただの計算とはいえ

 先ほどはAIもただの計算と言いましたが、Webサーバーのような低スペックなマシンでは厳しいものもあります。なのでこれまでのWebサイトを運用するようなイメージよりは、ちょっと多めに予算を考えておくといいと思います。

 特にdottで得意としているBERTを用いた機能を動かそうとすると、普段はCPU1コア・メモリ256MBで動いているシステムを前提で考えると、大体さっきの「2コア・4GB」の立派なサーバーを用意します。単純に考えてCPUの料金が2倍、メモリは16倍ですから費用もそれだけ大きくなります。

 そのため、やはりAIを動かすにはお金が少しかかってしまうというのが実情です。

下町のインフラ事情

 しかし工夫を凝らしてやりくりするのが、下町ディープラーニング工場のインフラ事情です。

 目標を達成するために必要最小限のお金で運用することを目標として、一体どんなことができるのでしょうか。

 それはまた、次回の記事で。