Michaelです。
今回から複数回にわたり、新しくなったAzure Machine Learning (Azure ML)について紹介していきます。初回は、Azure MLに追加された新サービス「Azure Machine Learning Services」の概要について紹介します。
Azure MLの新サービス
9/25から9/29に行われたマイクロソフトのイベント「Ignite 2017」において、いくつかの新サービス、機能拡張が発表されました。その中でAzure MLにも新サービス「Azure Machine Learning Services (以下Azure ML Services)」が追加され、従来のAzure MLは、「Azure Machine Learning Studio (以下Azure ML Studio)」というサービス名に変更されました。
Azure ML Servicesの背景
従来のAzure ML (現Azure ML Studio)は、ブラウザ上のGUIで機械学習の実験・モデル作成からAPI化まで可能なクラウドサービスとして提供されてきました。GUIのためツールとして非常に使い勝手の良いサービスですが、クラウドサービスという性質上、特に以下のような制約についての改善要望が多かったようです。
・マシンスペックが変更できない…GPGPUのような高速コンピューティングが利用できない
・Web APIしか利用できない…社内規制でクラウドに出せないデータを扱えない
・Deep Learningに対応していない…カスタムで扱えなくもないが、Azure ML Studioへの導入は面倒
Azure ML Servicesは、これらの要望に対し、AIの統合開発環境を提供する形で応えたものとなります。Azure ML Servicesでは、Azure ML Studioよりも柔軟にAIモデルを開発するために、AI開発・運用で必要な「データ加工」、「モデル作成」、「デプロイ・運用」の作業を一元的に管理でき、かつAIモデルのデプロイ先も自由に選択できるように設計されています。
Azure ML Servicesのコンポーネント
Azure ML Servicesは、「Workbench」、「Experimentation service」、「Model management service」の3つのコンポーネントで構成されており、それぞれの機能としての位置づけは以下のようになります。
Workbenchは、デスクトップアプリケーションとして提供され、データ加工からモデル作成までを行います。開発は、Azure ML StudioのようなGUIではなく、コーディングベースとなりますが、以下のような多様な環境、言語、フレームワークに対応しています。
項目 | 対応環境 |
OS | Windows 10、Windows Server 2016、macOS Sierra、macOS High Sierra |
言語 | Python、R |
フレームワーク | Microsoft Cognitive Toolkit(CNTK)、Tensorflow、Chainer、Spark ML、Caffe2、PyTorch他 |
連携可能IDE | Visual Studio、Visual Studio Code、Jupyter Notebook、PyCharm他 |
Experimentation serviceは、モデルの学習環境や履歴を管理するためのサービスで、モデル作成を実行する環境や学習済みモデルの精度等のパラメータを容易に比較、参照できるようになっています。学習済みモデル自体が個々に保存、管理されるため、過去に作成されたモデルが最適であった場合でも再学習することなく、再現性のあるモデルを選択できるようになっています。
Model management serviceは、作成されたモデルをデプロイし、管理・運用するためのサービスです。作成したモデルをLinux ベースのDockerコンテナーとしてデプロイでき、対応する環境であればAzure環境だけでなく、オンプレミス環境やIoTのようなエッジデバイスにも適応することができます。運用する上でのモデルのバージョン管理や再学習の自動化といったこともできるため、モデルを実運用に展開した後の管理も非常に簡単に行うことができます。
まとめ
Azure ML Servicesは、ディープラーニング対応やオンプレミス、エッジデバイスでの運用など、従来からのAzure ML Studioではできなかった柔軟なAI運用が可能となります。
Azure ML Studio のようなGUIベースではないため、誰でも簡単に使えるというようなものではありませんが、広く使われ、ナレッジも多い「CNTK」や「TensorFlow」、「Chainer」といったフレームワークが使用できるため、始めるにあたっての障壁もそれほど大きくはないのではないでしょうか。
次回は、Azure ML Services を実際に使用していくためのAzureでの設定を紹介します。
お楽しみに。