Azure Machine Learning とは

Azure Machine Learning は、機械学習 (ML) プロジェクトのライフサイクルを加速および管理するためのクラウド サービスです。 ML のプロフェッショナル、データ科学者、エンジニアが日常のワークフローでこれを使用して、モデルのトレーニングおよびデプロイや、機械学習の運用 (MLOps) の管理を行うことができます。

Machine Learning でモデルを作成したり、PyTorch、TensorFlow、scikit-learn などのオープンソース プラットフォームで構築されたモデルを使用したりできます。 MLOps ツールを使用すると、モデルの監視、再トレーニング、および再デプロイを行うことができます。

ヒント

無料試用版 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。 無料版または有料版の Azure Machine Learning をお試しください。 Azure サービスを使用するクレジットを取得できます。 このクレジットを使い切った後に、アカウントを保持して、無料の Azure サービスを使用できます。 明示的に設定を変更して課金を了承しない限り、クレジット カードに課金されることはありません。

Azure Machine Learning の対象ユーザー

Machine Learning は、組織内で MLOps を実装し、安全で監査可能な運用環境に ML モデルを導入できるようにする個人やチームを対象としています。

データ科学者や ML エンジニアには、日常のワークフローを高速化および自動化するツールを使用できます。 アプリケーション開発者は、モデルをアプリケーションやサービスに統合するためのツールを使用できます。 プラットフォーム開発者は、高度な ML ツールを構築するための、持続性のある Azure Resource Manager API によって支えられた、堅牢なツール セットを使用できます。

Microsoft Azure クラウドで業務を行っている企業は、インフラストラクチャに対して使い慣れたセキュリティとロール ベースのアクセス制御 (RBAC) を使用できます。 保護されたデータおよび限定された操作へのアクセスを拒否するようにプロジェクトを設定できます。

チームの全員の生産性

ML プロジェクトでは、多くの場合、構築と保守を行うためにさまざまなスキル セットを持つチームが必要です。 Machine Learning には、以下のことを可能にするのに役立つツールがあります。

  • 共有されたノートブック、コンピューティング リソース、サーバーレスコンピューティング、データ、環境を通じてチームと共同作業する

  • 系列と監査のコンプライアンス要件を満たすために、公平性と説明性、追跡、監査可能性のためのモデルを開発する

  • 大規模に ML モデルを迅速かつ簡単にデプロイし、MLOps を使って効率的に管理および制御する

  • 組み込みのガバナンス、セキュリティ、コンプライアンスを使って、任意の場所で機械学習ワークロードを実行する

ニーズを満たすクロス互換プラットフォーム ツール

ML チームの誰でも、好みのツールを使ってジョブを完了できます。 短時間の実験、ハイパーパラメーターの調整、パイプラインの構築、推論の管理のいずれを行う場合でも、次のような使い慣れたインターフェイスを使用できます。

Machine Learning 開発サイクルの残りの部分を通してモデルを調整し、他のユーザーと共同作業を行う際に、Machine Learning スタジオ UI でプロジェクトの資産、リソース、メトリックを共有して見つけることができます。

[スタジオ](#tab/azure-studio)

Machine Learning スタジオでは、プロジェクトの種類と過去の ML エクスペリエンスのレベルに応じて、何もインストールしなくても、複数の作成エクスペリエンスが提供されます。

  • ノートブック: スタジオに直接統合されているマネージド Jupyter Notebook サーバーで独自のコードを記述して実行します。

  • 実行メトリックを視覚化する: 視覚化を使用して実験を分析および最適化します。

    Screenshot that shows metrics for a training run.

  • Azure Machine Learning デザイナー: デザイナーを使用して、コードを記述せずに ML モデルをトレーニングしてデプロイします。 ML パイプラインを作成するには、データセットとコンポーネントをドラッグ アンド ドロップします。

  • 自動機械学習の UI: 使いやすいインターフェイスで、自動 ML 実験を作成する方法を理解します。

  • データのラベル付け: Machine Learning のデータのラベル付けを使用して、画像のラベル付けまたはテキストのラベル付けのプロジェクトを効率的に調整します。

エンタープライズ対応とセキュリティ

Machine Learning は、ML プロジェクトのセキュリティを高めるために、Azure クラウド プラットフォームと統合されています。

セキュリティの統合には次が含まれます。

  • ネットワーク セキュリティ グループを使用した Azure Virtual Network。
  • ストレージ アカウントのアクセス情報などの、セキュリティ シークレットを保存できる Azure Key Vault。
  • 仮想ネットワークの背後に設定された Azure Container Registry。

詳細については、チュートリアル: セキュリティ保護されたワークスペースの設定に関する記事を参照してください。

完全なソリューションのための Azure の統合

その他の Azure サービスとの統合により、ML プロジェクト全体がサポートされます。 これには次のようなものがあります。

重要

Azure Machine Learning では、デプロイ先のリージョンを越えてデータが格納されたり処理されたりすることはありません。

機械学習プロジェクトのワークフロー

通常、モデルは、1 つの目的と複数の目標を持つプロジェクトの一部として開発されます。 多くの場合、プロジェクトには複数の人が関与します。 データ、アルゴリズム、およびモデルを実験する場合、開発は反復的です。

プロジェクトのライフサイクル

プロジェクトのライフサイクルは、プロジェクトによって異なることがありますが、多くの場合、次の図のようになります。

Diagram that shows the machine learning project lifecycle

ワークスペースによってプロジェクトが整理され、多くのユーザーが共通の目的に取り組むためにコラボレーションできます。 ワークスペース内のユーザーは、実験からの実行結果をスタジオ ユーザー インターフェイスで簡単に共有できます。 または、環境やストレージの参照などのジョブにバージョン管理された資産を使用できます。

詳細については、Azure Machine Learning ワークスペースの管理に関するページを参照してください。

プロジェクトを運用化する準備が整ったら、ユーザーの作業を ML パイプラインで自動化し、スケジュールまたは HTTPS 要求でトリガーすることができます。

リアルタイムとバッチの両方のデプロイでマネージド推論ソリューションにモデルをデプロイできます。これにより、モデルのデプロイに通常は必要なインフラストラクチャ管理が取り除かれます。

モデルをトレーニングする

Azure Machine Learning では、トレーニング スクリプトをクラウドで実行することも、モデルを最初から作成することもできます。 多くの場合、お客様は、オープンソース フレームワーク内で構築およびトレーニングしたモデルを導入し、クラウドで運用化できるようにします。

オープン性と相互運用性

データ科学者は、次のような一般的な Python フレームワークで作成された Azure Machine Learning のモデルを使用できます。

  • PyTorch
  • TensorFlow
  • scikit-learn
  • XGBoost
  • LightGBM

その他の言語とフレームワークもサポートされています。

  • R
  • .NET

オープンソースと Azure Machine Learning との統合に関するページを参照してください。

特徴量化とアルゴリズムの選択の自動化

従来の ML の反復的な時間のかかる処理では、データ科学者が過去の経験と直感を使用して、トレーニングのための適切なデータの特徴量化とアルゴリズムを選択します。 自動 ML (AutoML) により、このプロセスが高速化されます。 これは、Machine Learning スタジオ UI または Python SDK を使用して利用できます。

詳細については、自動機械学習に関する記事を参照してください。

ハイパーパラメーターの最適化

ハイパーパラメーターの最適化 (ハイパーパラメーターの調整) は、面倒な作業になる可能性があります。 Machine Learning では、ジョブ定義をほとんど変更することなく、任意のパラメーター化コマンドに対してこのタスクを自動化できます。 結果は、スタジオで視覚化されます。

詳細については、「ハイパーパラメーターを調整する」を参照してください。

マルチノード分散トレーニング

ディープ ラーニングと、場合によっては古典的機械学習のトレーニング ジョブに対するトレーニング効率が、マルチノード分散トレーニングで大幅に改善される可能性があります。 Azure Machine Learning コンピューティング クラスターとサーバーレスコンピューティングは、最新の GPU オプションを備えています。

Azure Machine Learning Kubernetes、Azure Machine Learning コンピューティング クラスター、およびサーバーレスコンピューティングを介して以下がサポートされています。

  • PyTorch
  • TensorFlow
  • MPI

Horovod またはカスタム マルチノード ロジックには MPI 分散を使用できます。 Apache Spark は、Azure Synapse Analytics Spark クラスターを利用する、サーバーレス Spark コンピューティングと、接続された Synapse Spark プールを介してサポートされます。

詳細については、「Azure Machine Learning を使用した分散トレーニング」を参照してください。

驚異的並列トレーニング

ML プロジェクトのスケーリングでは、驚異的並列モデル トレーニングのスケーリングが必要になる場合があります。 このパターンは、モデルが多くの店舗向けにトレーニングされる場合がある需要予測のようなシナリオで一般的です。

モデルをデプロイする

モデルを運用環境に移行するには、そのモデルをデプロイします。 Azure Machine Learning のマネージド エンドポイントにより、バッチまたはリアルタイム (オンライン) の両方のモデル スコアリング (推論) に必要なインフラストラクチャが抽象化されます。

リアルタイム スコアリングとバッチ スコアリング (推論)

"バッチ スコアリング" (または "バッチ推論") には、データの参照によるエンドポイントの呼び出しが含まれます。 バッチ エンドポイントでは、ジョブが非同期的に実行され、コンピューティング クラスターでデータを並列処理し、詳細な分析に向けてデータが格納されます。

"リアルタイム スコアリング" ("オンライン推論") には、1 つ以上のモデル デプロイによるエンドポイントの呼び出しと、HTTPS 経由のほぼリアルタイムの応答の受信が含まれます。 トラフィックは複数のデプロイに分割できるため、最初に一部のトラフィックを転送し、新しいモデルに対する信頼が確立されたらトラフィックを増加して、新しいモデル バージョンをテストできます。

詳細については、以下を参照してください:

MLOps: 機械学習のための DevOps

ML モデル用の DevOps は、通常 MLOps と呼ばれ、運用環境向けのモデルを開発するためのプロセスです。 トレーニングからデプロイまでのモデルのライフサイクルは、再現できないとしても、監査できる必要があります。

ML モデルのライフサイクル

Diagram that shows the machine learning model lifecycle * MLOps.

Azure Machine Learning での MLOps に関する詳細を参照してください。

MLOps を有効にする統合

Machine Learning は、モデルのライフサイクルを考慮して構築されています。 特定のコミットと環境までモデルのライフサイクルを監査できます。

MLOps を有効にする主な機能には、次のようなものがあります。

  • git の統合
  • MLflow の統合。
  • 機械学習パイプラインのスケジュール設定。
  • カスタムのトリガーのための Azure Event Grid の統合。
  • GitHub Actions や Azure DevOps などの CI/CD ツールでの使いやすさ。

また、Machine Learning には、次のものを監視および監査するための機能があります。

  • コード スナップショット、ログ、その他の出力などのジョブ成果物。
  • コンテナー、データ、コンピューティング リソースなど、ジョブと資産の間の系列。

Apache Airflow を使用するのであれば、airflow-provider-azure-machinelearning パッケージは、Apache AirFlow から Azure Machine Learning にワークフローを送信できるようにするプロバイダーです。

次のステップ

Azure Machine Learning の使用を開始します。