適用対象:
Azure CLI ml 拡張機能 v1
Python SDK azureml v1
重要
この記事では、Azure Machine Learning SDK v1 の使用に関する情報を提供します。 SDK v1 は、2025 年 3 月 31 日の時点で非推奨です。 サポートは 2026 年 6 月 30 日に終了します。 SDK v1 は、その日付までインストールして使用できます。 SDK v1 を使用する既存のワークフローは、サポート終了日以降も引き続き動作します。 ただし、製品のアーキテクチャの変更が発生した場合に、セキュリティ リスクや破壊的変更にさらされる可能性があります。
2026 年 6 月 30 日より前に SDK v2 に移行することをお勧めします。 SDK v2 の詳細については、「 Azure Machine Learning CLI と Python SDK v2 とは」 および SDK v2 リファレンスを参照してください。
重要
この記事の Azure CLI コマンドの一部では、Azure Machine Learning 用に azure-cli-ml、つまり v1 の拡張機能を使用しています。 CLI v1 のサポートは 2025 年 9 月 30 日に終了しました。 Microsoft は、このサービスのテクニカル サポートや更新プログラムを提供しなくなります。 CLI v1 を使用する既存のワークフローは、サポート終了日以降も引き続き動作します。 ただし、製品のアーキテクチャの変更が発生した場合に、セキュリティ リスクや破壊的変更にさらされる可能性があります。
できるだけ早く ml (v2) 拡張機能に移行することをお勧めします。 v2 拡張機能の詳細については、Azure Machine Learning CLI 拡張機能と Python SDK v2 に関する記事を参照してください。
この記事は、Azure Machine Learning CLI と SDK の最初のバージョン (v1) に適用されます。 バージョン 2 (v2) については、「Azure Machine Learning のしくみ (v2)」を参照してください。
Azure Machine Learning のアーキテクチャおよび概念について説明します。 この記事では、コンポーネントについて概説し、これらが連携することにより、どのように機械学習モデルの構築、デプロイ、保守のプロセスに役立つかについて説明します。
ワークスペース
機械学習ワークスペースは、Azure Machine Learning の最上位レベルのリソースです。
ワークスペースを一元的な場所として使用して、次の操作を行います。
- コンピューティングなど、モデルのトレーニングとデプロイに使用するリソースを管理します
- Azure Machine Learning を使用するときに作成する、次のようなアセットを格納します。
ワークスペースには、使用する他の Azure リソースが含まれています。
- Azure Container Registry (ACR):トレーニング中およびモデルのデプロイ時に使用する Docker コンテナーを登録します。 コストを最小限に抑えるために、ACR は、デプロイ イメージが作成される時にだけ作成されます。
- Azure Storage アカウント: ワークスペースの既定のデータストアとして機能します。 Azure Machine Learning コンピューティング インスタンスで使用する Jupyter Notebook もここに格納されます。
- Azure Application Insights:モデルに関する監視情報を格納します。
- Azure Key Vault: コンピューティング 先で使用されるシークレットと、ワークスペースに必要なその他の機密情報を格納します。
他のユーザーとワークスペースを共有できます。
コンピューティング
コンピューティング先は、トレーニング スクリプトを実行したり、サービスのデプロイをホストしたりするために使用する、マシンまたはマシンのセットです。 コンピューティング先として、ローカル コンピューターまたはリモート コンピューティング リソースを使用できます。 コンピューティング先を使用することにより、ローカル コンピューターでトレーニングを開始し、その後トレーニング スクリプトを変更することなくクラウドにスケールアウトできます。
Azure Machine Learning には、機械学習タスク用に構成された以下の 2 つのフル マネージド クラウドベース仮想マシン (VM) が導入されています。
コンピューティング インスタンス: コンピューティング インスタンスは、機械学習用にインストールされた複数のツールと環境を含む VM です。 コンピューティング インスタンスは、主に開発ワークステーションとして使用します。 セットアップを行うことなく、サンプル ノートブックの実行を開始できます。 トレーニングジョブと推論ジョブのコンピューティングターゲットとしてコンピューティング インスタンスを使用します。
コンピューティング クラスター: コンピューティング クラスターは、マルチノード スケーリング機能を備えた VM のクラスターです。 コンピューティング クラスターは、大規模なジョブと運用環境のコンピューティング ターゲットとして適しています。 ジョブを送信すると、クラスターが自動的にスケールアップされます。 トレーニング コンピューティング ターゲットとして、または開発/テスト デプロイのために使用します。
トレーニング コンピューティング ターゲットの詳細については、「トレーニング コンピューティング ターゲット」を参照してください。 デプロイメント コンピューティング ターゲットの詳細については、「デプロイメント ターゲット」を参照してください。
データセットとデータストア
Azure Machine Learning Datasets によって、データへのアクセスと操作がより容易になります。 データセットを作成するときは、データ ソースの場所への参照とそのメタデータのコピーを作成します。 データは既存の場所に残るため、追加のストレージ コストは発生せず、データ ソースの整合性が損なわれることはありません。
詳細については、Azure Machine Learning Datasets の作成と登録に関するページを参照してください。 データセットのその他の使用例については、サンプル ノートブックを参照してください。
データセットは、ご使用の Azure ストレージ サービスに安全に接続するためにデータストアを使用します。 データストアは、認証資格情報と元のデータソースの整合性を損なうことなく、接続情報を格納します。 これらには、ワークスペースに関連付けられているキー コンテナー内のサブスクリプション ID やトークン承認のような接続情報が格納されるため、スクリプトでハードコーディングすることなく、ストレージに安全にアクセスできます。
環境
ワークスペース>環境
環境とは、機械学習モデルのトレーニングやスコアリングが行われる環境をカプセル化したものです。 環境では、トレーニングとスコアリングのスクリプトに関連する、Python パッケージ、環境変数、およびソフトウェア設定を指定します。
コード例については、環境の使用方法に関するページの「環境の管理」セクションを参照してください。
実験
ワークスペース>実験
実験は、指定されたスクリプトからの多くの実行のグループです。 実験は、常に 1 つのワークスペースに属します。 実行を送信するときは、実験名を指定します。 実行情報は、その実験の下に格納されます。 実験を送信するときに名前が存在しない場合は、新しい実験が自動的に作成されます。
実験の使用例については、「チュートリアル:最初のモデルをトレーニングする」を参照してください。
実行
実行とは、トレーニング スクリプトの 1 回の実行です。 通常、実験には複数の実行が含まれます。
Azure Machine Learning では、すべての実行を記録して、実験に次の情報を保存します。
- 実行に関するメタデータ (タイムスタンプ、期間など)
- スクリプトがログに記録するメトリック
- 実験が自動収集するファイル、または明示的にアップロードした出力ファイル
- 実行前の、スクリプトを含むディレクトリのスナップショット
スクリプトを送信してモデルをトレーニングすると、「ラン」が作成されます。 実行は、0 個以上の子実行を持つことができます。 たとえば、最上位レベルの実行には 2 つの子実行があり、それらの子実行はそれぞれ独自の子実行を持つ場合があります。
実行構成
実行構成では、指定したコンピューティング 先でスクリプトを実行する方法を定義します。 構成を使用して、スクリプト、コンピューティング 先、Azure Machine Learning 環境、分散ジョブ固有の構成、およびいくつかの追加プロパティを指定します。 実行のための構成可能なオプションのセット全体の詳細については、ScriptRunConfig に関する記事を参照してください。
実行構成は、トレーニング スクリプトを含むディレクトリ内のファイルに保存できます。 または、インメモリ オブジェクトとして作成し、それを使用して実行を送信することもできます。
実行構成の例については、トレーニングの実行の構成に関する記事を参照してください。
スナップショット
実行を送信するときに、Azure Machine Learning によって、スクリプトが含まれているディレクトリが zip ファイルとして圧縮され、コンピューティング先に送られます。 zip ファイルが抽出され、スクリプトがそこで実行されます。 Azure Machine Learning では、zip ファイルもスナップショットとして実行レコード内に格納されます。 ワークスペースにアクセスできるすべてのユーザーは、実行レコードを参照し、スナップショットをダウンできます。
ログ記録
Azure Machine Learning では、標準的な実行メトリックが自動的にログに記録されます。 ただし、Python SDK を使用して任意のメトリックをログに記録することもできます。
ログは、リアルタイムで実行状態を監視したり、完了後に結果を表示したりする複数の方法で表示できます。 詳細については、ML 実行ログの監視と表示に関する記事を参照してください。
注
不要なファイルがスナップショットに含まれないようにするには、無視ファイル (.gitignore または .amlignore) を作成します。 除外するファイルとディレクトリをこのファイルに追加します。 このファイル内で使用する構文の詳細については、 の.gitignoreを参照してください。
.amlignore ファイルでは同じ構文を使用します。 "両方のファイルが存在する場合は、.amlignore ファイルが使用され、.gitignore ファイルは使用されません。 "
Git の追跡と統合
トレーニング実行を開始し、ソース ディレクトリをローカル Git リポジトリに設定すると、実行履歴にはリポジトリに関する情報が格納されます。 この機能は、スクリプト実行構成または ML パイプラインを使用して送信する実行で機能します。 また、SDK または Machine Learning CLI から送信する実行でも機能します。
詳細については、「Azure Machine Learning との Git 統合」を参照してください。
トレーニング ワークフロー
モデルをトレーニングするための実験を実行すると、次の手順が行われます。 トレーニング ワークフロー図は、次の手順を示しています。
前のセクションで保存したコード スナップショットのスナップショット ID を使用して Azure Machine Learning を呼び出します。
Azure Machine Learning では、実行 ID (省略可能) と Machine Learning サービス トークンが作成されます。 Machine Learning コンピューティングや VM などのコンピューティング先では、このトークンを使用して Machine Learning サービスと通信します。
トレーニング ジョブを実行するには、Machine Learning コンピューティングなどのマネージド コンピューティング ターゲットか、VM などのアンマネージド コンピューティング ターゲットを選択します。 両方のシナリオのデータ フローを次に示します。
- VM と HDInsight は、Microsoft サブスクリプションのキー ボールトにある SSH 資格情報でアクセスされます。 Azure Machine Learning では、以下を行うコンピューティング先で管理コードを実行します。
- 環境を準備します (Docker は VM とローカル コンピューターのオプションです。Docker コンテナーで実験を行う方法については、Machine Learning コンピューティングに関する以下の手順を参照してください)
- コードをダウンロードします。
- 環境変数と構成を設定します。
- ユーザー スクリプト (前のセクションで説明したコード スナップショット) を実行します。
- Machine Learning コンピューティング。ワークスペース マネージド ID を使用してアクセスされます。 Machine Learning コンピューティングはマネージド コンピューティング ターゲット (つまり、Microsoft が管理) であるため、Microsoft サブスクリプションで実行されます。
- 必要に応じて、リモート Docker の構築を開始します。
- ユーザーの Azure Files 共有に管理コードを書き込みます。
- 初期コマンドを使用してコンテナーを開始します。 このコマンドは、前の手順で説明した管理コードです。
実行が完了すると、実行とメトリクスを照会できます。 フロー図では、この手順は、トレーニング コンピューティング ターゲットが Azure Cosmos DB データベースのストレージから Azure Machine Learning に実行メトリックを書き戻すときに発生します。 クライアントで、Azure Machine Learning を呼び出すことができます。 Machine Learning は、Azure Cosmos DB データベースからメトリックをプルし、クライアントに返します。
モデル
簡単に言うと、モデルとは入力を受け取って出力を生成するひとまとまりのコードです。 機械学習モデルの作成には、アルゴリズムの選択、アルゴリズムへのデータの提供、およびハイパーパラメーターのチューニングが含まれます。 トレーニングはトレーニング済みモデルを生成する反復的なプロセスであり、トレーニング プロセス中にモデルが学習した内容がカプセル化されています。
Azure Machine Learning の外部でトレーニングしたモデルを用意できます。 または、実験の実行を Azure Machine Learning のコンピューティング先に送信することにより、モデルをトレーニングすることもできます。 モデルを入手したら、ワークスペースにモデルを登録します。
Azure Machine Learning は、フレームワークに依存しません。 モデルを作成するときは、Scikit-learn、XGBoost、PyTorch、TensorFlow、Chainer などの任意の人気のある機械学習フレームワークを使用できます。
Scikit-learn を使用したモデルのトレーニングの例については、「チュートリアル: Azure Machine Learning でイメージ分類モデルをトレーニングする」を参照してください。
モデル レジストリ
ワークスペース>モデル
モデル レジストリにより、Azure Machine Learning ワークスペース内のすべてのモデルを追跡できます。
モデルは、名前とバージョンによって識別されます。 既存のモデルと同じ名前でモデルを登録するたびに、レジストリではそれが新しいバージョンと見なされます。 バージョンはインクリメントされ、新しいモデルは同じ名前で登録されます。
モデルを登録するときに、追加のメタデータ タグを指定し、モデルを検索するときにそのタグを使用することができます。
ヒント
登録済みモデルは、モデルを構成する 1 つまたは複数のファイルの論理コンテナーです。 たとえば、複数のファイルに格納されているモデルがある場合は、Azure Machine Learning ワークスペースに単一モデルとしてそれらを登録することができます。 登録後、登録済みモデルをダウンロードまたはデプロイし、登録したすべてのファイルを受け取ることができます。
アクティブなデプロイで使用される登録済みモデルは削除できません。
モデルの登録例については、Azure Machine Learning での画像分類モデルのトレーニングに関するページを参照してください。
デプロイ
登録済みのモデルをサービス エンドポイントとしてデプロイします。 次のコンポーネントが必要です。
- 環境。 この環境は、推論用モデルを実行するために必要な依存関係をカプセル化します。
- スコアリング コード。 このスクリプトは、要求を受け入れ、モデルを使用してその要求にスコアを付け、その結果を返します。
- 推論構成。 推論構成では、サービスとしてのモデルを実行するために必要な環境、エントリ スクリプト、およびその他のコンポーネントを指定します。
これらのコンポーネントの詳細については、「Azure Machine Learning を使用してモデルをデプロイする」を参照してください。
エンドポイント
ワークスペース>エンドポイント
エンドポイントは、クラウドでホストする Web サービスとしてのモデルのインスタンスです。
Web サービス エンドポイント
モデルを Web サービスとしてデプロイする場合は、Azure Container Instances または Azure Kubernetes Service にエンドポイントをデプロイできます。 モデル、スクリプト、および関連ファイルからサービスを作成します。 これらのファイルは、モデルの実行環境を含む基本コンテナー イメージに入ります。 このイメージには、Web サービスに送信されたスコアリング要求を受け取る負荷分散された HTTP エンドポイントがあります。
Web サービスを監視するために Application Insights テレメトリまたはモデルのテレメトリを有効にできます。 テレメトリ データに排他的にアクセスできます。 これは Application Insights とストレージ アカウント インスタンスに格納されます。 自動スケーリングを有効にすると、Azure によってデプロイが自動的にスケーリングされます。
次の図は、Web サービス エンドポイントとしてデプロイされているモデルの推論ワークフローを示しています。
これらについて詳しく説明します。
- モデルを登録するには、Azure Machine Learning SDK などのクライアントを使用します。
- モデル、スコア ファイル、およびその他のモデルの依存関係を使用して、イメージを作成します。
- Docker イメージを作成し、Azure Container Registry に格納します。
- 前の手順で作成したイメージを使用して、Web サービスをコンピューティング 先 (コンテナー インスタンスまたは AKS) にデプロイします。
- スコアリング要求の詳細は、サブスクリプション内の Application Insights に格納されます。
- テレメトリも Microsoft Azure サブスクリプションにプッシュされます。
モデルを Web サービスとしてデプロイする例については、モデルのトレーニングとデプロイのチュートリアル ページを参照してください。
リアルタイム エンドポイント
トレーニングされたモデルをデザイナーに配置すると、モデルをリアルタイム エンドポイントとして配置できます。 リアルタイム エンドポイントは、通常、REST エンドポイントを介して単一の要求を受信し、リアルタイムで予測を返します。 この方法は、複数の値を一度に処理し、完了後の結果をデータストアに保存するバッチ処理とは対照的です。
パイプライン エンドポイント
パイプライン エンドポイントを使用すると、REST エンドポイントを介して プログラムで ML パイプライン を呼び出します。 パイプライン エンドポイントによって、パイプライン ワークフローを自動化できます。
パイプライン エンドポイントは、発行されたパイプラインのコレクションです。 この論理組織では、同じエンドポイントを使用して複数のパイプラインを管理および呼び出すことができます。 パイプライン エンドポイントで公開されている各パイプラインは、バージョン管理されます。 エンドポイントの既定のパイプラインを選択するか、REST 呼び出しでバージョンを指定できます。
Automation
Azure Machine Learning CLI
Azure Machine Learning CLI v1 は Azure CLI への拡張機能であり、Azure プラットフォーム向けのクロスプラット フォームのコマンド ライン インターフェイスです。 この拡張機能には、機械学習アクティビティを自動化するためのコマンドが用意されています。
ML パイプライン
機械学習パイプラインを使用して、機械学習フェーズを結合するワークフローを作成および管理します。 たとえば、パイプラインには、データ準備、モデル トレーニング、モデル デプロイ、推論/スコアリングの各フェーズが含まれることが考えられます。 それぞれのフェーズには、複数のステップを含めることができ、各ステップは、さまざまなコンピューティング先において無人実行することができます。
パイプラインステップは再利用可能であり、これらのステップの出力が変更されなかった場合は、前の手順を再実行せずに実行できます。 たとえば、データが変更されなかった場合は、コストのかかるデータ準備手順を再実行することなく、モデルを再トレーニングできます。 また、パイプラインを使用すると、機械学習ワークフローの別の領域で作業しているときに、データ サイエンティストが共同作業することもできます。
監視およびログ記録
Azure Machine Learning で提供される監視およびログ記録機能は次のとおりです。
- "データ科学者" の場合、実験を監視し、トレーニングの実行から情報をログに記録することができます。 詳細については、次の記事を参照してください。
- "管理者" の場合、Azure Monitor を使用して、ワークスペース、関連する Azure リソース、およびリソースの作成や削除などのイベントに関する情報を監視できます。 詳細については、Azure Machine Learning を監視する方法に関する記事を参照してください。
- DevOps または MLOps の場合、Web サービスとしてデプロイされたモデルによって生成された情報を監視して、デプロイに関する問題を特定し、サービスに送信されたデータを収集できます。 詳細については、モデル データの収集および Application Insights での監視に関する記事を参照してください。
ワークスペースの操作
スタジオ
Azure Machine Learning Studio には、ワークスペース内のすべての成果物の Web ビューが用意されています。 データセット、実験、パイプライン、モデル、エンドポイントの結果と詳細を確認できます。 スタジオのコンピューティング リソースとデータストアを管理することもできます。
スタジオでは、Azure Machine Learning の一部である対話型ツールにアクセスすることもできます。
- コードを記述せずにワークフローの手順を行うための Azure Machine Learning デザイナー
- 自動機械学習の Web エクスペリエンス
- 統合された Jupyter ノートブック サーバーで独自のコードを作成して実行するための Azure Machine Learning ノートブック
- イメージまたはテキストをラベル付けするプロジェクトを作成、管理、および監視するためのデータのラベル付けプロジェクト
プログラミング ツール
重要
次の一覧でマークされているツール (プレビュー) は、現在パブリック プレビュー段階です。 プレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
- Azure Machine Learning SDK for Python を使用して、Python 環境でサービスを操作します。
- Azure Machine Learning デザイナーを使用して、コードを記述せずにワークフローの手順を行います。
- Azure Machine Learning CLI を自動化に使用します。
次のステップ
Azure Machine Learning の利用を開始するには、以下を参照してください。