Azure Machine Learning とは
Azure Machine Learning は、機械学習プロジェクトのライフサイクルを加速および管理するためのクラウド サービスです。 機械学習のプロフェッショナル、データ科学者、エンジニアが、このサービスを日常のワークフロー (モデルのトレーニングとデプロイ、MLOps の管理など) に利用できます。
Azure Machine Learning でモデルを作成したり、Pytorch、TensorFlow、scikit-learn などのオープンソース プラットフォームで構築されたモデルを使用したりすることができます。 MLOps ツールを使用すると、モデルの監視、再トレーニング、および再デプロイを行うことができます。
ヒント
無料試用版 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。 無料版または有料版の Azure Machine Learning をお試しください。 Azure サービスを使用するクレジットを取得できます。 このクレジットを使い切った後に、アカウントを保持して、無料の Azure サービスを使用できます。 明示的に設定を変更して課金を了承しない限り、クレジット カードに課金されることはありません。
Azure Machine Learning の対象ユーザー
Azure Machine Learning は、組織内で MLOps を実装し、安全で監査可能な運用環境に機械学習モデルを導入できるようにする個人やチームを対象としています。
データ科学者や ML エンジニア向けには、日常のワークフローを高速化および自動化するツールが用意されています。 アプリケーション開発者向けには、モデルをアプリケーションやサービスに統合するためのツールが用意されています。 プラットフォーム開発者向けには、高度な ML ツールを構築するための、持続性のある Azure Resource Manager API によって支えられた、堅牢なツール セットが用意されています。
Microsoft Azure クラウドを導入している企業向けには、インフラストラクチャのための使い慣れたセキュリティとロール ベースのアクセス制御 (RBAC) が用意されています。 保護されたデータおよび限定された操作へのアクセスを拒否するようにプロジェクトを設定できます。
チームの全員の生産性
機械学習プロジェクトでは、多くの場合、チームがさまざまなスキル セットを構築して維持する必要があります。 Azure Machine Learning には、以下のことを可能にするのに役立つツールがあります。
共有されたノートブック、コンピューティング リソース、サーバーレスコンピューティング (プレビュー) 、データ、環境を通じてチームとの共同作業
系列と監査のコンプライアンス要件を満たすために、公平性と説明性、追跡、監査可能性のためのモデルを開発する
大規模に ML モデルを迅速かつ簡単にデプロイし、MLOps を使って効率的に管理および制御する
組み込みのガバナンス、セキュリティ、コンプライアンスを使って、任意の場所で機械学習ワークロードを実行する
ニーズを満たすクロス互換プラットフォーム ツール
ML チームの誰でも、好みのツールを使ってジョブを完了できます。 短時間の実験、ハイパーパラメーターの調整、パイプラインの構築、推論の管理のいずれを行う場合でも、次のような使い慣れたインターフェイスを使用できます。
Machine Learning 開発サイクルの残りの部分を通してモデルを調整し、他のユーザーと共同作業を行う際に、Azure Machine Learning スタジオ UI でプロジェクトの資産、リソース、メトリックを共有して見つけることができます。
スタジオ
Azure Machine Learning スタジオでは、プロジェクトの種類と過去の ML エクスペリエンスのレベルに応じて、何もインストールしなくても、複数のオーサリング エクスペリエンスが提供されます。
ノートブック: スタジオに直接統合されているマネージド Jupyter Notebook サーバーで独自のコードを記述して実行します。
実行メトリックを視覚化する: 視覚化を使用して実験を分析および最適化します。
Azure Machine Learning デザイナー: デザイナーを使って、コードを書くことなく、機械学習モデルをトレーニングしてデプロイします。 ML パイプラインを作成するには、データセットとコンポーネントをドラッグ アンド ドロップします。
自動化された機械学習の UI: 使いやすいインターフェイスで、自動化された ML 実験を作成する方法を学習します。
データのラベル付け: Azure Machine Learning のデータのラベル付けを使って、画像のラベル付けまたはテキストのラベル付けプロジェクトを効率的に調整します。
エンタープライズ対応とセキュリティ
Azure Machine Learning は、ML プロジェクトにセキュリティを追加するために、Azure クラウド プラットフォームと統合されています。
セキュリティの統合には次が含まれます。
- ネットワーク セキュリティ グループを使用した Azure Virtual Network (VNet)
- ストレージ アカウントのアクセス情報などの、セキュリティ シークレットを保存できる Azure Key Vault
- VNet の背後に設定された Azure Container Registry
セキュリティで保護されたワークスペースの設定のチュートリアルに関するページを参照してください。
完全なソリューションのための Azure の統合
その他の Azure サービスとの統合により、機械学習プロジェクト全体がサポートされます。 これには次のようなものがあります。
- Spark を使用してデータの処理とストリーミングを行う Azure Synapse Analytics
- Kubernetes 環境で Azure サービスを実行できる Azure Arc
- Azure SQL Database、Azure Storage Blob などのストレージとデータベースのオプション
- ML を利用したアプリをデプロイおよび管理できるようにする Azure App Service
- Microsoft Purview を使用すると、組織全体でデータ アセットを検出してカタログ化できます
重要
Azure Machine Learning では、デプロイ先のリージョンを越えてデータが格納されたり処理されたりすることはありません。
機械学習プロジェクトのワークフロー
通常、モデルは、目的と目標を持つプロジェクトの一部として開発されます。 多くの場合、プロジェクトには複数の人が関与します。 データ、アルゴリズム、およびモデルを試す場合、開発は反復的になります。
プロジェクトのライフサイクル
プロジェクトのライフサイクルは、プロジェクトによって異なることがありますが、多くの場合、次のようになります。
ワークスペースによってプロジェクトが整理され、多くのユーザーが共通の目的に取り組むためにコラボレーションできます。 ワークスペース内のユーザーは、実験からの実行結果をスタジオ ユーザー インターフェイスで簡単に共有できます。また、環境やストレージ参照などのジョブで、バージョン管理された資産を使用することもできます。
詳細については、Azure Machine Learning ワークスペースの管理に関するページを参照してください。
プロジェクトを運用化する準備が整ったら、ユーザーの作業を機械学習パイプラインで自動化し、スケジュールまたは HTTPS 要求でトリガーすることができます。
モデルは、リアルタイムとバッチの両方のデプロイのために、マネージド推論ソリューションに配置できます。これにより、通常モデルのデプロイに必要なインフラストラクチャ管理が取り除かれます。
モデルをトレーニングする
Azure Machine Learning では、トレーニング スクリプトをクラウドで実行することも、モデルを最初から作成することもできます。 多くの場合、顧客はクラウドで運用化できるように、オープンソース フレームワークで構築およびトレーニングされたモデルを取り込みます。
オープン性と相互運用性
データ科学者は、次のような一般的な Python フレームワークで作成された Azure Machine Learning のモデルを使用できます。
- PyTorch
- TensorFlow
- scikit-learn
- XGBoost
- LightGBM
他にも次のような言語やフレームワークがサポートされています。
- R
- .NET
「オープンソースと Azure Machine Learning プロジェクトとの統合」を参照してください。
特徴量化とアルゴリズムの選択の自動化 (AutoML)
古典的機械学習の反復的な時間のかかる処理では、データ科学者が過去の経験と直感を使用して、トレーニングのための適切なデータの特徴量化とアルゴリズムを選択します。 このプロセスを高速化する自動化された ML (AutoML) を、スタジオ UI または Python SDK で使用できます。
「自動機械学習 (AutoML) とは」を参照してください。
ハイパーパラメーターの最適化
ハイパーパラメーターの最適化 (ハイパーパラメーターの調整) は、面倒な作業になる可能性があります。 Azure Machine Learning では、ジョブ定義をほとんど変更することなく、任意のパラメーター化コマンドに対してこのタスクを自動化できます。 結果は、スタジオで視覚化されます。
ハイパーパラメーターを調整する方法に関するページを参照してください。
マルチノード分散トレーニング
ディープ ラーニングと、場合によっては古典的機械学習のトレーニング ジョブに対するトレーニング効率が、マルチノード分散トレーニングで大幅に改善される可能性があります。 Azure Machine Learning コンピューティング クラスターと サーバーレスコンピューティング (プレビュー) は、最新の GPU オプションを備えています。
Azure Machine Learning Kubernetes と Azure Machine Learning コンピューティング クラスター、およびサーバーレスコンピューティング (プレビュー) では次がサポートされています:
- PyTorch
- TensorFlow
- MPI
MPI 分散は、Horovod またはカスタム マルチノード ロジックに使用できます。 さらに、Azure Synapse Analytics Spark のクラスター (プレビュー) を使用して Apache Spark がサポートされます。
重要
Azure Synapse Analytics Spark のクラスターを使用した Apache Spark の使用は、パブリック プレビュー段階です。 プレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
「Azure Machine Learning を使用した分散トレーニング」を参照してください。
驚異的並列トレーニング
機械学習プロジェクトのスケーリングでは、驚異的並列モデル トレーニングのスケーリングが必要になる場合があります。 このパターンは、モデルが多くの店舗に対してトレーニングされる可能性がある需要予測のようなシナリオで一般的です。
モデルをデプロイする
モデルは、運用環境に導入するためにデプロイされます。 Azure Machine Learning のマネージド エンドポイントにより、バッチまたはリアルタイム (オンライン) の両方のモデル スコアリング (推論) に必要なインフラストラクチャが抽象化されます。
リアルタイム スコアリングとバッチ スコアリング (推論)
"バッチ スコアリング" (または "バッチ推論") には、データの参照によるエンドポイントの呼び出しが含まれます。 バッチ エンドポイントでは、ジョブが非同期的に実行され、コンピューティング クラスターでデータを並列処理し、詳細な分析に向けてデータが格納されます。
"リアルタイム スコアリング" (または "オンライン推論") には、1 つ以上のモデル デプロイによるエンドポイントの呼び出しと、HTTP 経由のほぼリアルタイムの応答の受信が含まれます。 トラフィックは複数のデプロイに分割できるため、最初に一部のトラフィックを転送し、新しいモデルに対する信頼度が確立されたらトラフィックを増加して、新しいモデル バージョンをテストできます。
参照トピック
MLOps: 機械学習のための DevOps
械学習モデル用の DevOps は、通常 MLOps と呼ばれ、実稼働モデルを開発するためのプロセスです。 トレーニングからデプロイまでのモデルのライフサイクルは、再現できないとしても、監査できる必要があります。
ML モデルのライフサイクル
Azure Machine Learning での MLOps に関する詳細を参照してください。
MLOps を有効にする統合
Azure Machine Learning は、モデルのライフサイクルを考慮して構築されています。 特定のコミットと環境までモデルのライフサイクルを監査できます。
MLOps を有効にする主な機能には、次のようなものがあります。
git
統合- MLflow の統合
- 機械学習パイプラインのスケジュール設定
- カスタムのトリガーのための Azure Event Grid の統合
- GitHub Actions や Azure DevOps などの CI/CD で簡単に使用できるツール
また、Azure Machine Learning には、監視と監査のための次の機能が含まれています。
- コード スナップショット、ログ、その他の出力などのジョブ成果物
- コンテナー、データ、コンピューティング リソースなど、ジョブと資産間のデータ系列
次の手順
Azure Machine Learning の使用を開始します。