【Azure Machine Learning入門】ワークスペースとコンピューティングインスタンスを作成する
この記事の内容
- Azure Machine Learningの公式チュートリアル「Python作業の開始(1日目)」に沿って環境構築を行います
- Azure Machine Learning Studioでワークスペースを作成する手順を解説します
- Jupyterノートブックでコードを書くための「コンピューティングインスタンス」を作成します
- 大規模なモデルトレーニングに使う「コンピューティングクラスター」を作成します
- クォータ制限など、チュートリアルでつまずきやすいポイントも紹介します
はじめに
今回はAzure Machine Learningを使ってPythonでAIを動かすチュートリアルに取り組みます。初学者向けの内容として、Microsoftの公式ドキュメントに掲載されている「チュートリアル:Python作業の開始(1日目)」を実際に進めていきます。
このチュートリアルは以下の3部構成になっています。
- Pythonスクリプトを実行する
- モデルをトレーニングする
- 独自のデータを使用する
本記事ではその前段として、チュートリアルを進めるために必要な環境構築(ワークスペース・コンピューティングインスタンス・コンピューティングクラスターの作成)を扱います。
チュートリアルを進める際の注意点
公式ドキュメントのチュートリアルは、サービスのバージョンや環境の状態に依存することが多く、古い記事だと現在では動かない場合があります。Azure Machine Learning自体も継続的にアップデートされているため、画面や手順が異なる場合があります。
チュートリアルが途中でうまく進まなくなった場合は、無理に進めようとせず、別の新しいチュートリアルを探すことをおすすめします。特に初学者の方は、最後まで完走できるチュートリアルを見つけることが第一歩として重要です。
前提条件
このチュートリアルを進めるには、以下が必要です。
- Azureのアクティブなサブスクリプション(無料アカウントで作成可能)
Azureアカウントをお持ちでない方は、先にアカウントを作成してからお進みください。
ステップ1:ワークスペースを作成する
ワークスペースはAzure Machine Learningにおける最上位のリソースです。機械学習モデルのトレーニング・デプロイ・自動化・管理などに使用できる、あらかじめ構成されたクラウドベースの環境を提供します。
Azure Machine Learning Studioへのサインイン
ml.azure.com にアクセスしてAzure Machine Learning Studioにサインインします。
初回アクセス時はディレクトリの選択を求められる場合があります。自分が所属しているディレクトリを選択してください。ディレクトリが1つしかない場合はそのまま進めます。
言語設定が英語になっている場合は、設定からリージョン・フォーマットを「日本語」に変更すると日本語表示になります(変更後はF5でページを更新してください)。
ワークスペースの作成
ワークスペースが存在しない場合は、新規作成します。以下の情報を入力します。
| 項目 | 設定内容 |
|---|---|
| ワークスペース名 | 任意の名前 |
| サブスクリプション | 使用するAzureサブスクリプション |
| リソースグループ | 新規作成または既存のものを選択 |
| リージョン | ユーザーのデータやリソースに最も近い場所(日本在住の場合は Japan East または Japan West を推奨) |
入力後、「作成」を選択します。しばらく待つとワークスペースが正常にプロビジョニングされます。
ステップ2:コンピューティングインスタンスを作成する
ワークスペースが作成できたら、次はコンピューティングインスタンスを作成します。
コンピューティングインスタンスとは、PythonとJupyterノートブックがあらかじめインストールされたオンラインの開発環境です。自分のPCにPython環境を用意しなくても、ブラウザ上でコードの記述・実行ができます。
作成手順
- 左側のメニューから「コンピューティング」を選択します
- 「コンピューティングインスタンス」タブを開き、「新規」をクリックします
- 以下の設定を行います
| 項目 | 設定内容 |
|---|---|
| コンピューティング名 | 任意の名前 |
| 仮想マシンの種類 | CPU |
| 仮想マシンのサイズ | Standard_DS11_v2(推奨オプション) |
その他の項目はデフォルト値のままで問題ありません。「作成」を選択すると、しばらくしてコンピューティングインスタンスが「実行中」の状態になります。
作成が完了すると、JupyterやJupyterLabなどのアプリケーションが利用可能になります。
ステップ3:コンピューティングクラスターを作成する
コンピューティングインスタンスが開発環境であるのに対し、コンピューティングクラスターは大規模なモデルトレーニングに使用するリソースです。
このチュートリアルでは、最小0ノード・最大4ノードの間で自動スケールするクラスターを作成します。ノード数が0のときは課金されないため、使用していない時間帯のコストを抑えることができます。
作成手順
- 「コンピューティング」から「コンピューティングクラスター」タブを開き、「新規」をクリックします
- 1ページ目:仮想マシンの設定(デフォルト値のままで次へ進む)
| 項目 | 設定内容 |
|---|---|
| 場所 | ワークスペースと同じリージョン(自動設定) |
| 仮想マシンの優先度 | 専用(Dedicated)または低優先度(Low Priority) |
| 仮想マシンの種類 | CPU |
補足: 低優先度の仮想マシンは価格が安い分、他のワークロードに割り込まれる可能性があります。コストを抑えたい場合は低優先度を選ぶとよいでしょう。
- 2ページ目:クラスターの設定
| 項目 | 設定内容 |
|---|---|
| コンピューティング名 | cpu-cluster(チュートリアルに合わせた名前) |
| 最小ノード数 | 0 |
| 最大ノード数 | 4(リソース節約のため1でも可) |
| スケールダウンまでのアイドル時間 | 2100秒 |
「作成」を選択すると、クラスターが作成されます。ジョブを投入していない初期状態ではノード数は0のままです。
クォータ制限について
コンピューティングクラスターの作成時に「サブスクリプションのクォータが不十分です」というエラーが表示される場合があります。これはAzureのサブスクリプションで利用できる仮想マシンのファミリーに上限が設定されているためです。
クォータの引き上げを要求するには、以下の手順で申請します。
- 「クォータ」画面で対象のVMファミリーを確認する
- 「サポートリクエスト」から増加申請を送信する
- メールで連絡先を設定し、申請内容を送信する
クォータの引き上げが承認されるかどうかは、サブスクリプションの状況や使用状況によって異なります。申請が通らない場合は、最大ノード数を少なくするなど設定を調整して進めましょう。
Azure Machine Learning Studioの主な機能
ワークスペースとコンピューティングリソースの準備が整ったところで、Studioの主要機能を確認しておきましょう。
| 機能 | 説明 |
|---|---|
| ノートブック | JupyterノートブックやPythonスクリプトを作成・実行できる |
| 自動ML | コードを書かずに画面の指示に従って機械学習モデルを作成できる |
| デザイナー | ドラッグ&ドロップでモデルのパイプラインを構築できる |
| ジョブ | 実行したジョブの履歴やアセットを追跡できる |
| モデル | トレーニングしたモデルを管理できる |
| エンドポイント | デプロイしたモデルのエンドポイントを管理できる |
| コンピューティング | コンピューティングインスタンス・クラスターを管理できる |
まとめ
今回はAzure Machine Learningのチュートリアルを始めるにあたって必要な環境構築を行いました。
- ワークスペース:Azure Machine Learningのすべてのリソースの起点となる最上位のリソースです。リージョンを適切に選択して作成します。
- コンピューティングインスタンス:Jupyterノートブックを使った開発環境として使用します。自分のPCにPythonをインストールしなくてもコードを実行できます。
- コンピューティングクラスター:大規模なモデルトレーニングに使用します。最小ノード数を0にすることで、使用していない時間の課金を抑えられます。
チュートリアルは公式ドキュメントの更新状況や環境によって内容が変わる場合があります。途中でうまくいかなくなった場合は、新しいチュートリアルを探して切り替えることも大切な判断です。次のステップでは、実際にHello WorldのPythonスクリプトを実行するところに進んでいきます。