クラウド&データセンター完全ガイド:イベントレポート

“AIの民主化”を促すグーグルのML/DLサービス群とそれを支える最先端データセンター

クラウド&データセンターコンファレンス2018 Summer 特別講演レポート

弊社刊「クラウド&データセンター完全ガイド 2018年秋号」から記事を抜粋してお届けします。「クラウド&データセンター完全ガイド」は、国内唯一のクラウド/データセンター専門誌です。クラウドサービスやデータセンターの選定・利用に携わる読者に向けて、有用な情報をタイムリーに発信しています。
発売:2018年9月29日
定価:本体2000円+税

米グーグル(Google)にとってマシンラーニング(機械学習)やディープラーニング(深層学習)はもはや前提の技術だという。同社は「TensorFlow」や「Cloud ML APIs」「Cloud AutoML」といったサービスをクラウドで提供し、AIの適用範囲の拡大と“民主化”を推し進めている。2018年7月3日に開催されたクラウド&データセンターコンファレンス2018 Summer(主催:インプレス)の特別講演に登壇したグーグル合同会社 GCPデベロッパーアドボケイトの佐藤一憲氏が、有名な「TensorFlowによるキュウリの仕分け」や不良品検出などの事例を交え、「現場で使えるAI/ML/DL」の広がりを示した。 text:柏木恵子

マシンラーニングは万能ではなく、期待値制御が重要

写真1:グーグル合同会社 Google Cloud Platformデベロッパーアドボケイトの佐藤一憲氏

 クラウド&データセンターコンファレンス2018 Summerの特別講演に登壇したグーグル合同会社 GCPデベロッパーアドボケイト、佐藤一憲氏(写真1)は、AI(Artificial Intelligence:人工知能)、マシンラーニング、ディープラーニングといった昨今バズワードとなっている言葉の定義や背景の説明から入った。

 AIの領域は広く、グーグルが取り組んでいるのはいわゆる「弱いAI(用途特化型AI)」である。「既存のITシステムは論理的な推論を行うため、例えば画像のような“ふわっとした情報”を処理するのは非常に難しかった。当社はそれをマシンラーニングによって可能にすることに取り組んでいる」(佐藤氏)

 マシンラーニングでは、大量のデータを名称どおり学習することで、コンピュータが統計的な判断を行えるようにする。この手法自体はいわゆる回帰分析でExcelを使っても行えるが、そこにブレークスルーをもたらしているのがニューラルネットワークの活用だ。1940年代に発明された脳のニューロンを模した回路だが、昨今の膨大なコンピューティングパワーを使うと驚くべき振る舞いを見せることが2012年頃に発見された。

 「ただし、マシンラーニングは万能というわけではなく、判定精度が100%になることはない」と佐藤氏。

 マシンラーニング技術をビジネスで活用する際には、「どの程度の精度なら許容範囲か」「人間がやるより顕著に生産性が高いか」「マシンラーニングが間違ったときに、人間あるいはシステムがどうリカバリーするか」といったことを検討する必要があると説明、「期待値制御が重要」(同氏)だとした。

ニューラルネットワークとは「試行錯誤する関数」

 また、佐藤氏は「ニューラルネットワークとは試行錯誤する関数である」と述べ、次のように説明した。「関数ということは、入力に対して出力があるだけで、意思や常識を持つわけではない。初めのうちは判断を間違うが、学習を続けるうちに精度が上がってくる。こうした試行錯誤をすることになる」

 その例を示すのが図1のスライドだ。2色の渦巻き模様が描かれた面に新たな点が打たれたとき、どちらの色になるべきかというものだ。人間ならば直感的に判断できるが、コンピュータだと、初めは「上の方ならオレンジで下の方ならブルー」のような大雑把な判断しかできない。これが学習を続けると正解するようになっていくわけだ。

図1:正解を教え続けることで判断の精度が上がる(出典:グーグル)

 この例の場合、人間がプログラムコードで、ここだったらブルー、ここだったらオレンジと書いたほうが断然速い。「でも、それをあえてやらずに、コンピュータに試行錯誤させて、探させる。それによって今のブレークスルーが実現している。なぜなら、人間がプログラムコードを書いたら、人間の想定を超えることはできないからだ」(佐藤氏)

 図1ではオレンジとブルーの2種類のデータを用いているが、これを2次元のデータと呼ぶ。「マシンラーニングの面白いところは、2次元でできたことを、n次元、つまりどれだけ多次元のデータでも扱えることである」と佐藤氏。それによって、人間では判別できないほどの詳しい判断が可能になっていく。「単純なニューラルネットワークも階層を重ねると驚くべきことが起きる。これがいわゆるディープニューラルネットワーク、ディープラーニングと呼ばれるものだ」(佐藤氏)

Google CloudのML/DLクラウドサービス群

 マシンラーニングは、すでにグーグルのさまざまなサービスに適用されている。まず、Google検索における検索結果の順位づけにはさまざまなアルゴリズムが用いられているが、2015年以降はディープラーニングによるアルゴリズムが非常に重要な役割を果たしているという。また、メールサービスの「Gmail」、メールアプリケーション「Inbox」では、返信が自動生成され、「Google Photo」では画像にラベルを付けなくても写っているもので分類や検索が行えるが、これらもディープラーニングによるものだ。

 佐藤氏はデータセンター分野での活用についても言及した。「グーグルのデータセンター冷暖房設備のコントロールを、センサー情報を元にしたディープラーニングベースの自動化を施した。これによって冷却コストを40%削減することができた」(同氏)という大きな成果が出ている。

 グーグル社内において、開発プロジェクトでマシンラーニング/ディープラーニングを活用することはもはや前提的になっているという(図2)。そんな同社が社外に向けてGoogle Cloudのサイトからクラウドで提供しているディープラーニングサービスには3種類あり、佐藤氏はそれぞれの概要を説明した。

図2:グーグルでは2014年よりディープラーニングプロジェクトが急増している。件数はニューラルネットモデル記述ファイルを含むディレクトリ数(出典:グーグル)

①Cloud ML API

 マシンラーニングに着手したいと思ったとき、最も手軽に利用できるのが、APIサービス群として提供されている「Cloud ML API」で、「Cloud Translate API」「Cloud Speech API」「Cloud Natural Language API」「Cloud Video Intelligence」「Cloud Vision API」「Cloud Jobs API」といった機能ごとのAPIが用意されている。

 例えば、Cloud Vision APIは画像認識サービスで、手元の画像をアップロードしてどのように認識されるかをここで試すことができる。その際マシンラーニングの知識は不要だ(図3)。

図3:「Cloud Vision API」による物体の画像認識(出典:グーグル)

②Cloud AutoML

 上述のCloud ML APIでは学習済みのAIが提供される。「MRIやCTの医用画像をがん発見の手がかりにする」「工場でライン上を流れる製品で傷や不良を見つける」「クレジットカードの不正利用を検知する」といった個別のケースには応えられないが、それを対応可能にするのが、マシンラーニングをカスタマイズできる「Cloud AutoML」で、まず「Cloud AutoML Vision」がリリースされた。手元の画像をアップロードすると、グーグル側で学習して独自のマシンラーニングモデルを作成してくれる。

③TensorFlow

 上述した個別のケースで活用すべく、マシンラーニングの仕組みをゼロから構築したいというニーズに答えるのがTensorFlowだ。グーグル社内で開発に用いているツールが、TensorFlowのWebサイト(https://www.tensorflow.org/)でオープンソースソフトウェアとして公開されている。

 「スケーラビリティとポータビリティがTensorFlowのメリット」と佐藤氏。自社で大量のデータを学習させる場合、GPUサーバーやInfiniBandネットワークが必要になるが、TensorFlowは同等の環境をクラウドで提供している。また、学習済みのニューラルネットワークのモデルは、数十MBから100MB程度とサイズがコンパクトで、組み込みデバイスやタブレットなどに実装することも可能だ。

 佐藤氏は、TensorFlowの活用事例として一躍有名になった、静岡県の小池誠氏による「キュウリ農家」の実践をあらためて紹介した。この農家では収穫後のキュウリの選別に手間がかかることが課題だった。そこで、小池誠氏がTensorFlowを使って、母親が選別した9000枚のキュウリの画像とラベルを、3層の畳み込みニューラルネットワークで学習させる仕組みを構築し、きゅうりの自動選別機を製作したというものだ。

 キュウリを載せると、超小型コンピュータの「Raspberry Pi」がカメラで写真を撮り、機械学習の結果に基づいて選別、仕分けする(写真2)。これを使えば、この分野で未経験の学生バイトでも仕分けが可能だ。また、市販の選果システムは非常に高価で一軒の農家で導入するのは不可能だが、このケースでは約15万円で選別機を完成させている。

写真2:TensorFlowを用いて製作したキュウリの自動選別機(出典:YouTube/佐藤一憲氏「TensorFlow powered cucumber sorter by Makoto Koike」)

大規模演算処理を支える「DC as a Computer」

 上述したように、マシンラーニングやディープラーニングを本格的に始めるには、大規模なコンピューティングパワーが必要だ。高い演算処理能力をグラフィックス分野以外の用途に転用するGPGPU(General Purpose Computing on Graphics Processing Units)は高速演算を可能にした一方、排熱も大きい。そこでグーグルのデータセンターでは、設計レベルでその解決を試みている。佐藤氏は、「グーグルのデータセンターは「Datacenter as a Computer(DC as a Computer)」のコンセプトで、データセンター全体が1つの巨大な超並列計算機として動くように設計されています」と説明した。

 DC as a Computerを支えているのが、グーグルが開発したコンテナクラスタ管理システム「Google Borg」だ。Borgによって、部門や用途ごとにサーバーラックを立てるのではなく、「1万台単位でディスクアクセスやCPU利用、メモリ利用を全体最適する」(佐藤氏)ことを実現している。計算ノードもGPUではなくTPU(Tensor Processing Unit)という、行列演算専用のLSIをASICで作り込んだ専用プロセッサを自社開発している(写真3)。排熱が大きいため、最新のものは水冷方式を採用し、スイッチファブリックも自社製だ。このような開発の成果が、AIのクラウドサービスとして提供されている。

写真3:グーグルが独自開発したTensor処理専用プロセッサ「Google TPU」(出典:グーグル)

 それを活用した先行事例も紹介された。1つはNTTドコモの「ドコモのAIタクシー」で、携帯電話ネットワークによる人口統計、タクシー運行データ、気象データ、周辺施設データをかけ合わせ、TensorFlowによるディープラーニングによってタクシーの需要予測モデルを作成し、リアルタイムに動く人口統計データを利用している。

 もう1つは、大手食品メーカーであるキユーピーの事例で、ベビーフード製品の不良品の仕分けにTensorFlowを用いている。このケースでは、不良品が少なく学習用データが十分に揃わないため、発想を逆転して正規品を学習させ、それにマッチしない外れ値を検知する仕組みを整えた(写真4)。

 こうしてグーグルのマシンラーニングサービスは、スーパーコンピュータ並みのネットワークとコンテナ技術、並列処理に最適化されたデータセンターによって実現されている。そんな最先端のディープラーニングを「簡単に、低コストで利用できるようにクラウドサービスとして提供している」(佐藤氏)ことは、標榜するAIの民主化に大きく貢献していると言える。

写真4:キユーピーはベビーフード製品の不良品の仕分けにTensorFlowを活用(出典:YouTube/佐藤一憲氏「TensorFlowuse case at Kewpie corp」)