ナビゲーションをスキップする

Azure Machine Learning service の一般公開に関するお知らせ: その具体的な内容

12月 4, 2018 に投稿済み

Group Program Manager, Microsoft Azure

本日、Azure Machine Learning service の一般公開についてお知らせします。

Azure Machine Learning service には、機械学習モデルの構築、トレーニング、デプロイに関して、プロセスの簡略化と短縮化を目的として設計された、多くの高度な機能が含まれています。自動化された機械学習機能により、どのスキル レベルのデータ サイエンティストであっても、適切なアルゴリズムとハイパーパラメーターをより迅速に特定できるようになります。PyTorch、TensorFlow、scikit-learn などの一般的なオープンソース フレームワークをサポートしているため、データ サイエンティストは好みのツールを使用できます。機械学習用の DevOps 機能は、実験の追跡と、クラウドやエッジにデプロイされたモデルの管理を可能にすることにより、さらなる生産性の向上を実現します。これらの機能すべてに、データ サイエンティストのワークステーションを含む、任意の場所で実行されている任意の Python 環境からアクセスできます。

Azure Machine Learning service は、お客様のニーズに寄り添ったものになるよう構築されています。何千人ものユーザーが、顧客サービスの向上、より質の高い製品の製作、操作の最適化のために、毎日このサービスを利用しています。そのようなケースのうち 2 つを、次にご紹介します。

TAL 社は、創業 150 年のオーストラリア最大手の生命保険会社で、品質保証とカスタマー エクスペリエンスの向上のために AI を採用しています。従来、TAL 社の品質保証チームがレビューできる事例は、ランダムに選択した 2 から 3 パーセントにすぎませんでした。Azure Machine Learning service を利用することにより、現在では、100 パーセントの事例をレビューできています。

「Azure Machine Learning を定期的に使うことで、TAL 社のデータ サイエンティストは数時間でモデルをデプロイできます。数週間や数か月も費やす必要はありません。このため、従来可能であったよりも迅速に結果を出すことができ、さらに多くのモデルをロールアウトできます。この点で Azure Machine Learning に匹敵するものは市場にありません。」

– Gregor Pacnik、TAL 社 Innovation Delivery Manager

Elastacloud 社は、ロンドンに本社を置くデータ サイエンス コンサルティング会社で、Azure Machine Learning service を利用して、Elastacloud Energy BSUoS Forecast というサービスの構築と運営を行なっています。このサービスは、代替エネルギー供給企業の需要予測と経費削減を支援する、AI を活用したソリューションです。

「Azure Machine Learning を利用することで、仮想マシンも管理が必要な機器も何もなく、BSUoS Forecast をサポートしています。弊社のサービスは高度に自動化されており、その複雑さはサーバーレスな筐体の中に隠されているのです。」 

– Andy Cross、Elastacloud 社 COO

Azure Machine Learning service の設計原則

機械学習の簡略化と短縮化を実現するため、Azure Machine Learning は次の設計原則に基づいて構築されています。各原則については、ブログの後半で詳しく説明します。

  • データ サイエンティストが使い慣れている、豊富なデータ サイエンス ツール セットを活用できるようにする。
  • 一般的な機械学習とディープ ラーニングのフレームワークを簡単に使用できるようにする。
  • エンド ツー エンドの機械学習ライフサイクル機能を提供して、価値実現に要する時間を短縮する。

使い慣れたデータ サイエンス ツール

データ サイエンティストは、複数のライブラリとフレームワークからなる Python エコシステム全体を使用して、自分のラップトップやワークステーション上でローカルにトレーニングできることを望んでいます。この分野で使用されているツールは多岐にわたりますが、大別すると、コマンド ライン インターフェイス、エディター、IDE、および Notebook のいずれかになります。Azure Machine Learning service は、これらすべてをサポートするように設計されています。Python SDK は、任意の Python 環境、Visual Studio Code (VS Code) や PyCharm などの IDE、Jupyter や Azure Databricks などの Notebook からアクセスできます。Azure Machine Learning service とこれらのツールのいくつかとの統合について、さらに掘り下げて見てみましょう。

Jupyter Notebook は、Python で作業をするデータ サイエンティストに広く使われている開発環境です。Azure Machine Learning service は、ローカルのノートブックとホストされているノートブック (Azure Notebooks など) の双方に信頼性の高いサポートを提供します。また、次の図に示すように、データ サイエンティストがほぼリアルタイムでトレーニング ジョブの進捗を視覚的に監視できる組み込みウィジェットも提供します。Azure Databricks で機械学習を行うお客様は、Azure Databricks ノートブックを同様にご利用いただけます。

Jupyter Notebook

Visual Studio Code は、軽量でありながら強力なソース コード エディターです。これはデスクトップで使用でき、Windows、macOS、Linux に対応しています。Visual Studio Code 用の Python 拡張機能を使用すると、Jupyter Notebook の機能と Visual Studio Code の機能を合わせて使用できます。これにより、データ サイエンティストは、Notebook で行うように実験を段階的に実施できると同時に、IntelliSense、組み込みデバッガー、Live Share など、Visual Studio Code による生産性向上に役立つ機能も、次の図に示すようにすべて利用できます。

Visual Studio Code 用の Python 拡張機能

広く使われているフレームワークのサポート

フレームワークは、モデルを構築するためにデータ サイエンティストが使用する最も重要なライブラリです。Azure Machine Learning service は、Python ベースのフレームワークをすべてサポートしています。中でも最も広く使われている scikit-learn、PyTorch、TensorFlow は Estimator クラスとして使用できるため、単一ノード上か GPU クラスターをまたぐ分散トレーニングであるかを問わず、トレーニング コードのリモート コンピューティングへの送信を簡略化できます。さらに、これは機械学習フレームワークに限定されません。膨大な Python エコシステムの任意のパッケージを使用できます。

当社では、お客様が複数のフレームワークを使用してモデルを構築し、それらをさまざまなハードウェアや OS プラットフォームにデプロイしようとする時に、しばしば課題に直面していることに気が付きました。その原因は、フレームワークが互換的な使用を意図して設計されていないことと、ハードウェアや OS プラットフォームに合わせて特定の最適化が必要であることです。これらの問題に対処するため、Microsoft は、ハードウェア会社だけでなく、Facebook や AWS などの業界最大手企業と協働して、オープンな標準フォーマットで機械学習モデルを記述するための Open Neural Network Exchange (ONNX) 仕様を開発しました。Azure Machine Learning service は ONNX をサポートしているので、ONNX モデルのデプロイ、管理、監視を簡単に実行できます。さらに、ONNX モデルをクラウドやエッジ全体で実行する一貫性のあるソフトウェア プラットフォームを提供するため、ONNX ランタイムのオープン ソース化をここに発表いたします。コミュニティおよび ONNX プロジェクトへの皆さんのご参加を歓迎いたします。

エンド ツー エンドの機械学習ライフサイクル

Azure Machine Learning は、Azure サービスとシームレスに統合し、データ準備、実験、モデル トレーニング、モデル管理、デプロイ、監視を含む機械学習ライフサイクルのためのエンド ツー エンド機能を提供します。

データ準備

Azure Databricks などの、Azure の豊富なデータ プラットフォーム機能を使用して、機械学習のためにデータの管理と準備を行うことができます。DataPrep SDK は、Azure Machine Learning Python SDK の付属品として入手でき、データ変換を簡略化するものです。

トレーニング

Azure Machine Learning service は、シームレスな分散コンピューティング機能を提供します。これにより、データ サイエンティストは、ローカル ラップトップやワークステーションからクラウドにトレーニングをスケールアウトできます。このコンピューティングはオンデマンドです。ユーザーは、コンピューティング時間に対して課金されるのみで、GPU や CPU クラスターを維持管理する必要はありません。

Azure Machine Learning のコード サンプル

既に Apache Spark に投資してきたデータ プロフェッショナルの皆様には、Azure Databricks クラスターでのトレーニングをお勧めします。Azure Machine Learning service SDK は、Azure Databricks 環境と統合されており、実験、モデル デプロイ、管理のために、シームレスに拡張できます。

実験

データ サイエンティストは、実験というプロセスを経てモデルを作成し、そのモデルから必要な結果が得られるまでデータとトレーニング コードを何度も反復処理します。Azure Machine Learning service は、データ サイエンティストの生産性を向上する強力な機能を提供すると同時に、モデル開発プロセスにおけるガバナンス、再現性、コラボレーションも強化します。

1.データ サイエンティストは、自動機械学習を使用して、データセットとシナリオ (回帰、分類、または予測) を特定できます。また、自動機械学習は高度な技術を使用して、特徴エンジニアリング、アルゴリズムの選択、ハイパーパラメーターのスイープを実行することにより、新しいモデルを提案します。

2.既存のモデルをハイパーパラメーターで調整することにより、ハイパーパラメーターを高速かつインテリジェントに探索することができ、非効率なトレーニング ジョブを早期終了してモデルの精度を向上できます。

3.データ サイエンティストは、Machine Learning パイプラインを使用することにより、モデル トレーニングをデータ移動、データ変換、特徴抽出、トレーニング、評価などの別個のステップにモジュール化できます。Machine Learning パイプラインは、モデルの自動化、共有、再現を目的としたメカニズムです。それらは、データ サイエンティストがモデル開発内部ループで反復処理をする際に中間出力をキャッシュすることにより、パフォーマンスも向上させます。

Machine Learning パイプライン

4.最後に、実行履歴は毎回のトレーニング実行、モデルのパフォーマンス、および関連するメトリックをキャプチャします。モデルをトレーニングする際に使用される、コード、計算、データセットが追跡されます。データ サイエンティストは各実行を比較し、問題を記述するのに最も適したモデルを選択できます。選択されたモデルは Model レジストリに登録され、これによって運用環境におけるモデルの監査機能 (来歴など) が提供されます。

デプロイ、モデル管理、監視

データ サイエンティストがモデル開発を完了すると、それらを運用環境に移し、管理と監視を行う作業が必要になります。Azure Machine Learning service のモデル レジストリには、モデルとそれらのバージョン履歴が、モデルの系列や成果物と共に記録されます。 

Azure Machine Learning service は、クラウドとエッジの双方にデプロイする機能を提供し、お客様のニーズに合わせてリアルタイムのバッチ スコアリングを実行します。クラウドでは、Azure Machine Learning service は、Azure Kubernetes Service (AKS) を使用してプロビジョニング、負荷分散、Kubernetes クラスターのスケールを実行するか、お客様自身の AKS クラスターにアタッチします。これにより、運用環境に複数のモデルをデプロイできるようになります。クラスターは、その負荷を使用して自動スケールします。モデル管理アクティビティは、Python SDK や UX を使って実行することも、Azure DevOps から呼び出すことができるコマンド ライン インターフェイス (CLI) や REST API を使って実行することもできます。これらの機能により、モデル ライフサイクルとお客様の残りのアプリ ライフサイクルが完全に統合されます。

コード サンプル

Azure IoT Edge サービス (プレビュー段階) との統合により、レジストリ内のモデルをエッジ デバイスにデプロイすることもできます。

モデルが運用環境に移行されると、このサービスはアプリケーション テレメトリとモデル テレメトリの両方を収集し、操作とモデルの正確さに関して運用環境にあるモデルを監視できるようにします。推論中にキャプチャされたデータは、データ サイエンティストに戻され、このデータに基づいて、モデルのパフォーマンス、データのドリフト、モデルの質の低下を判別できます。

超高速かつ低コストで推論を実行するため、Azure Machine Learning service では、FPGA を利用してビジョン モデル アクセラレーションを実現する Hardware Accelerated Models (プレビュー段階) が提供されます。この機能は Azure Machine Learning service 専用で、オフライン処理ジョブのコストとトランザクションを改善するとともに、待機時間についても最上級の効果をもたらします。

参加する

Azure Machine Learning service の構想、作成、提供が可能になったのは、弊社のお客様およびパートナーである皆様のご協力のおかげです。最もオープンで、生産性が高く使いやすいクラウド機械学習プラットフォームを提供することにより、皆様の機械学習プロセスの簡略化と短縮化を支援できることをうれしく思っております。

ファースト ステップ ガイド」をご覧になり、この胸躍る旅にぜひご参加ください。