どんな事でもお気軽にお問い合わせください
0120-803-656
24時間受付対応致します

GCPのBigDataやMachineLearning向けトレーニング「CPB100」に参加しました


インフラエンジニアの伊藤です。

最近クラウドでぐんぐん伸びて来ている(と個人で思っている)のが
Google Cloud Platform(GCP)です。

2016年12月にGoogle Cloud OnBoardというGCPのセミナーに参加したのですが、
その時は1,000人以上の参加者がいたようです。

Google Cloud OnBoardに参加しました | 株式会社ビヨンド

ここまでの広がりを日本で見せているのは、東京リージョンの登場ではないでしょうか。
東京の Google Cloud リージョン  |  Google Cloud Platform

たしか2016年10月か11月ぐらいだっと思います。

と、前置きが長くなったのですが、今回タイトルにあるように、
GCPのトレーニング「CPB100」に参加してきました。
主にビッグデータや機械学習に関するトレーニングになります。


Google Cloud Platform 無料トレーニングツアー | 株式会社トップゲート

BigData(ビッグデータ)について


今回のセミナーでは具体的な操作などはしなかったのですが、概要などを色々教えていただきました。

Googleのビッグデータのサービスといえば、やはり「BigQuery」になります。
BigQuery- アナリティクス データ ウェアハウス  |  Google Cloud Platform

OnBoardでもお話されていたことももちろんありました。

BigQueryは、100億行の正規表現の置換を10秒弱ぐらいで完了させる性能があります。
で、BigQueryの内部でどういう動作になっているかというと、
データを分割してそれぞれHDDに保存して、クエリを走らした際にデータを取り出し、それぞれコンテナを作っているそうです。
どうしてもクエリを走らした際にはディスクI/Oがネックになるので、たくさんのコンテナに分割して高速な分析を可能にしています。

そういえばBigQueryはインデックスを貼らないで、フルスキャンするそうです。
データが大きすぎるためにインデックスを貼るほうが難しいそう。

Google Cloud OnBoardに参加しました | 株式会社ビヨンド

他のサービス

GCP AWS 概要
Cloud Dataflow Amazon Elastic Map Reduce バッチ処理などのマネージドサービス
Cloud Dataproc Amazon Elastic Map Reduce SparkやHadoopのマネージドサービス
Cloud Pub/Sub Amazon Simple Notification Service シンプルなメッセージングサービス

この辺りがあります。
わかりやすくAWSのサービスとの比較をつけておきました。

流れとしてはこんな感じですかね。

  1. Compute Engineでデータを処理別に振り分ける
  2. CloudStorageにデータが保存される
  3. Pub/SubでCloudStorageのデータを受け取って、しかるべきところに投げる
  4. DataflowやDataprocでデータを処理する
  5. またCloudStorageに処理したデータを保存する

簡単なデータであればComputeEngineで終わらせれますが、
そこが単一障害点となってしまいます。
マネージドサービスをどうやってうまいこと使うかが、「クラウドを上手に使う」ってことにつながると思います。

MachineLearning(機械学習)について


機械学習は、Googleを使っていると何気ないところに存在します。

例えばGMail。今はまだ英語限定の機能なのですが、
文脈から推測して返信候補を出してくれるようになっていて、それには機械学習が使われています。

Computer, respond to this email: Introducing Smart Reply in Inbox by Gmail

また、Googleのデータセンターの冷却電力を機械学習で調整し、40%削減に成功しています。
ニュース – Googleがデータセンター冷却電力を40%削減、DeepMindのAIを活用:ITpro

いろんなAPI

Googleが今まで培って来たものをAPIとして提供してくれています。
Google翻訳ももちろん機械学習のAPI(Traslation API)を使っています。

例えばこれ。
Speech API – 音声認識  |  Google Cloud Platform

そのままですが、しゃべったものを文章に起こしてくれます。
GoogleのアプリやYoutubeでもこの機能はありますよね。

画像認識や文字認識はありますが、Google Cloud Next ’17では、こんなものが発表されたようです。
Cloud Video Intelligence – Video Content Analysis  |  Google Cloud Platform

ビデオ版画像認識ですね。パブリックベータなので、試したかったら申し込みが現段階では必要です。

自分で作る

既存のAPIであれば、人の画像を画像認識APIで通すと、「人」「男性」といった認識まではできますが、
「個人名」などはわからないですよね。

それは、既にGoogleが提供しているAPIでは個人名までは学習されていないからです。

結構有名な事例なのですが、TensorFlowというGoogleが提供する機械学習のライブラリがあるのですが、
それを使って「いいきゅうり」とか「大きなきゅうり」を振り分けた事例です。
Google Cloud Platform Japan 公式ブログ: キュウリ農家とディープラーニングをつなぐ TensorFlow

ざっくりというと、こんな流れが必要となります。
かなりゴリゴリと書いていかないといけないです。

  1. 学習用のデータを用意して、アルゴリズムを作成して、「学習済みのモデル」を作成する
  2. 学習済みのモデルを使う
  3. どんどん学習させて精度を高める

ただし、アルゴリズムを実装するにはかなり大変です。
そこをTensorFlowの登場になります。

TensorFlowはDeepLeraningの実装するためのライブラリ。
先ほども言った通り、「Googleが開発したものをGCPのサービスとして登場し、オープンソース化したもの」です。

C++とPythonのAPIが用意されています。

また、MachineLearningは学習するときに非常に高いリソース量が必要になります。
主にGPU、CPUなどですね。(画像認識とかするので)
そのための「Cloud Machine Learning Engine」が用意されています。
Machine Learningでリソースが必要なのは「学習するときだけ」なので、クラウドに非常に向いています。
GPUが使えるようになっていて、GPU特化のマシンが裏で大量に立ち上がる、という動きです。

Predictive Analytics – Cloud Machine Learning Engine  |  Google Cloud Platform

TensorFlowについて気になるかたは、TensorFlow User Groupがあるので、
そこでの勉強会に参加してみるのもいいと思います。
TensorFlow User Group Tokyo – connpass

ただし、すげー人気で、20人ぐらいの勉強会に対して200人の参加だったり…!!です。

まとめ

ここ以上の色々なお話がありましたが、それは参加した方のみということで。。

お昼はお弁当が提供されましたよ。うまかった。
もっとうまそうに写真撮れよって話はなしで。

あ、AWSとよく比較されるGCPですが、話を聞いててなるほどと思ったのが、以下の部分。

AWSでは、「既にオープンソースとして提供されているプロダクト(例:MemcachedとかElasticSearchとか)をAWS上に乗せてユーザーに使いやすい状態で提供」してくれますが、
GCPでは「自分たちで開発したプロダクトを使い込んで、
そのプロダクトをユーザー向けにGCPのサービスとして提供」
をしてくれます。

例えばGoogleが開発したMapReduceはDremelと進化を遂げてGCPの「BigQuery」としてリリースされていますし、MapReduceはHadoopとして今はオープンソースで使えるようになっています。

GCPは基本的にはAWSとは逆のアプローチなんですね。


お問い合わせ 採用情報 エンジニアブログ
ISO27001認証
Contact PageTop
株式会社ビヨンド

© beyond Co., Ltd. All rights reserved.

mautic is open source marketing automation