Alibaba Cloudの機械学習サービスPAI

CJNANです。久し振りに執筆を再開しました。
今日はAlibaba Cloudの機械学習プラットフォームPAIをご紹介致します。

現時点(2018年8月20日)では、日本サイトでまだリリースされていないサービスですが、近い時期にリリースする予定がありますので、先走って、ご紹介します。

この文章はあくまでも機械学習の歴史とPAIの技術全般の紹介であり、実際の操作や使い方については、下記のブログをご参照ください。

Deep Learning編

PAIで実現するImage Recognition

(今後も新しい応用編を追加する予定)

機械学習=人工知能?

人工知能って言うと、よく思い出すのが顔認証、チャットボット、レコメンデーションエンジンなどがありますね。機械学習も同じことができますが、人工知能とどんな関連性があるか。

AIとMLの関係を説明する例として、まず下記の画像を見てみましょう。

一言で言うと、人工知能は機械に知能を持たせる技術が定義であり、機械学習はそれを実現するための手段の一つとして使われています。勿論機械学習は人工知能(AI)だけではなく、BIでも重要な分析手法として活用されています。

機械学習の契機

近年、Deep Learningを代表として、機械学習の技術がかなり進化し、商用に使われていました。その裏には大きく3つの理由があります。

  1. データ:ネット上で毎日急激に発生するデータ(画像、音声、ビデオ、文章など)、そして、スマホだけではなくIoTブームによって、増えてきたセンサーデータなど、このようなデータが機械学習のデータとして活用できる。
  2. コンピューディグ:MapReduceによる分散構成、GPUによる並列演算。このような技術のおかげで、膨大なデータを処理する時間が格段に短縮できた。
  3. アルゴリズム:深層学習を体表とした学習理論(ReLu、Dropout、Lasso回帰など)の進化。ここでHinton,LeCun,Bengioを体表とした貢献者に敬意を捧げる。

この様な一連の契機で、人工知能は第三の春(ブーム)を迎えました。今も自動運転、画像処理、音声生成などでその存在を確認できます。

クラウドと機械学習

つまり、現在トレンドになっている機械学習パターンはデータ(ストレージやDBなど)、コンピューディグ(BigDataとGPU)、アルゴリズムツール(TensorFlow、Caffeなど)の組み合わせになります。

しかし、理論は分かりやすく美しいですが、それを現実に活かすためには、ハードの導入コスト、専門知識に詳しい人材体制、そして複雑なデータ処理にかかるリードタイムが結局ボトルネックになって、なかなか手出し辛いのが業務の共通課題になります。

そこで、Alibaba Cloudでは機械学習の導入課題を解決し、イノベーション創出に集中させるためのMLaaSサービスPAIを提供しました。

Machine Learning as a Service

MLaaSとも言われています。名前の通りにクラウドサービスの一部として機械学習のツールを提供するサービスの形です。一言でまとめると、機械学習を電気水道代のように必要な分をいつでも簡単に利用できるような演算サービスです。

クラウド業界でMLaaSの主なプレイヤーとして、Alibaba CloudのPAI以外にも、AWS ML、Azure ML Studio、GCP ML Platformなどがあります。そして、最近はこれらの他社サービスを統合し、一つのプラットフォームを窓口としてサービスを提供する製品を流行り始めています。

Platform of Artificial Intelligence

通称PAI、Alibaba CloudのMLaaSプラットフォーム。投稿時点(2018年8月20日)では、日本サイトではまだリリースされていませんが、中国か国際アカウントでは利用可能です。現在は中国、シンガポール、米国、東南アジアなどを含めた13リージョンでリリースされています。

PAIの基本構成として主に3つのレイアに分けることができます。ここでは、簡単な紹介とその特徴について紹介します。

  • Web UI層:分かりやすいDrag&Dropインターフェイスとジョブダッシュボード機能。DataWorks(BigDataのWebUIサービス)との連携も簡単に実現できるのがポイント。

  • Algorithm層:Input/Output、データ前処理、特徴処理、トレーニング、モデル評価などの一連を機能の約100個以上対応する。アルゴリズムをモジュール化して、最小限パラメータを設定するだけで、機械学習のコードレスを実現したのがポイント。(深層学習などの一部機能を除く)アルゴリズムの裏側ではAlibabaで精錬したノウハウがためているのもどんどん増えて行く。(詐欺判断や協調フィルタリングなど)最後にAPIとSDKの対応ができて、自分の開発関環境への繋がりも簡単にできる。

  • MaxCompute層:モジュール化されたアルゴリズムは裏側のMaxComputeのリソースを利用する。PAIの各Job Taskは自動にMapReduceにコンパイルされて、MaxComputeの分散処理で実行できるようになっている。こうすることで、TBやPBレベルの機械学習もビックデータプラットフォーム上で実現可能になるのがポイント。

(日本にリリースする時点で、一部の機能が対応しない可能性がある)

PAIならではのMLaaS

現時点でPAIには大きく2つの強みを挙げることができます。

  • MaxComputeによるBigData処理

まず一言でまとめると、PAIはビックデータができます。

MaxCompute層の上で、PAIはそのままリソースを共有し、ビックデータの処理が可能になります。つまり、データ量によるパフォーマンス低下の現象は改善できました。そして、分散処理の特性を活かして、モデル分割により、サブモデルのアンサンブルが実現可能になります。典型的な構成が下記の様な、分散型のパラメータサーバになります。

パラメータサービスの考え方は、データを分散するだけではなく、学習モデル自身も幾つかのノードにサブモデルを分割して、最終的にアンサンブル構成を作ることです。こうすることで機械学習クラスタの可用性を確保する一方、サブノード間の非同期イテレーション学習で学習効率も上げることができます。

  • GPUによるDeep Learning処理

PAIは深層学習(Deep Learning)の分散並列ができます。

Alibaba CloudはCaffeをベースにPlutoと呼ばれる、GPUの分散処理ができるMultiバージョンのCaffeを開発しました。

Plutoの原理はGPU処理の前に、データを分割し、各GPUは分割されたデータだけを処理することになりました。つまり、分散並列処理ができることになります。そしてGPUのジョブタスクはタスクマネジメント側で管理調達され、シングルノードの深層学習から、マルチノードの深層学習ができることになります。下記はPlutoの分散並列の性能比較になります。シングルGPUに比べて、8カードGPUが7倍の性能を見せていることが分かります。

現時点はTensorFlow、CaffeとMXNetを対応しています。

まとめ

この文章では、主に機械学習の背景とAlibaba Cloudの機械学習プラットフォームPAIの特徴を紹介しました。下記にPAIの特徴をまとめましたが、それ以外もたくさんの魅力がありますので、ご興味のある方はPAIが日本サイトにリリースしましたら、ぜひ試してください。

この記事をシェアする