Azure Machine Learning でコンピューティング リソースを使用する

クラウドの主な利点の 1 つは、スケーラブルなオンデマンドのコンピューティング リソースを使用して、大規模なデータのコスト効率の高い処理を実現できることです。

この演習では、Azure Machine Learning でクラウド コンピューティングを使用して、実験と運用コードを大規模に実行する方法について学習します。

開始する前に

管理レベルのアクセス権を持つ Azure サブスクリプションが必要です。

Azure Machine Learning ワークスペースをプロビジョニングする

Azure Machine Learning ‘‘ワークスペース’’ では、モデルのトレーニングと管理に必要なすべてのリソースと資産を管理するための中心的な場所が提供されます。** Azure Machine Learning ワークスペースは、スタジオ、Python SDK、Azure CLI を使用して操作できます。

Azure Machine Learning ワークスペースを作成するには、Azure CLI を使用します。 実行するために必要なすべてのコマンドがシェル スクリプトにグループ化されます。

  1. ブラウザーで、Azure portal (https://portal.azure.com/) を開き、Microsoft アカウントでサインインします。
  2. ページ上部の検索ボックスの右側にある [>_] (Cloud Shell) ボタンを選びます。 これにより、ポータルの下部に Cloud Shell ペインが開きます。
  3. メッセージが表示されたら、 [Bash] を選択します。 Cloud Shell を初めて開いたときに、使用するシェルの種類 (Bash または PowerShell) を選択するように求められます。
  4. 正しいサブスクリプションが指定されていることと、[ストレージ アカウントは不要] が選択されていることを確認します。 適用を選択します。
  5. 以前のバージョンとの競合を回避するには、ターミナルでこのコマンドを実行して、ML CLI 拡張機能 (バージョン 1 と 2 の両方) を削除します。

     az extension remove -n azure-cli-ml
     az extension remove -n ml
    

    コピーしたコードを Cloud Shell に貼り付けるには、SHIFT + INSERT を使用します。

    拡張機能がインストールされていないことを示す (エラー) メッセージは無視します。

  6. 次のコマンドを使用して、Azure Machine Learning (v2) 拡張機能をインストールします。

     az extension add -n ml -y
    
  7. リソース グループを作成する。 近くの場所を選択します。

     az group create --name "rg-dp100-labs" --location "eastus"
    
  8. ワークスペースを作成します。

     az ml workspace create --name "mlw-dp100-labs" -g "rg-dp100-labs"
    
  9. コマンドが完了するまで待ちます。通常、約 5 分から 10 分かかります。

    トラブルシューティングのヒント: ワークスペース作成エラー

    CLI を使用してワークスペースを作成するときにエラーが発生した場合は、リソースを手動でプロビジョニングする必要があります。

    1. Azure portal のホーム ページで、[+ リソースの作成] を選択します。
    2. machine learning を検索し、Azure Machine Learning を選択します。 [作成] を選択します
    3. 次の設定を使用して新しい Azure Machine Learning リソースを作成します。
      • [サブスクリプション]:"ご自身の Azure サブスクリプション"
      • リソース グループ: rg-dp100-labs
      • ワークスペース名: mlw-dp100-labs
      • [リージョン]: "最も近い地理的リージョンを選択します"
      • [ストレージ アカウント]: "ワークスペース用に作成される既定の新しいストレージ アカウントに注目します"
      • [キー コンテナー]: ワークスペース用に作成される既定の新しいキー コンテナーです
      • [Application Insights]: ワークスペース用に作成される既定の新しい Application Insights リソースです
      • [コンテナー レジストリ]: なし (コンテナーにモデルを初めてデプロイするときに、自動的に作成されます)
    4. [確認および作成] を選択し、ワークスペースとそれに関連付けられているリソースが作成されるまで待ちます。通常、これには約 5 分かかります。
    5. </ol> </details>

コンピューティング セットアップ スクリプトを作成する

Azure Machine Learning ワークスペース内でノートブックを実行するには、コンピューティング インスタンスが必要です。 セットアップ スクリプトを使用して、作成時にコンピューティング インスタンスを構成できます。

  1. Azure portal で、mlw-dp100-labs という名前の Azure Machine Learning ワークスペースに移動します。
  2. Azure Machine Learning ワークスペースを選択し、その [概要] ページで [スタジオの起動] を選択します。 ブラウザーで別のタブが開き、Azure Machine Learning スタジオが開きます。
  3. スタジオに表示されるすべてのポップアップを閉じます。
  4. Azure Machine Learning スタジオ内で、 [ノートブック] ページに移動します。
  5. [ファイル] ペインで、ファイルを追加するための ⨁ アイコンを選択します。
  6. Create new file を選択します。
  7. ファイルの場所が *Users/ <自分のユーザー名>*** であることを確認します。
  8. ファイルの種類を [Bash (*.sh)] に変更します。
  9. ファイル名を compute-setup.sh に変更します。
  10. 新しく作成した compute-setup.sh ファイルを開き、以下をその内容に貼り付けます。

     #!/bin/bash
    
     # clone repository
     git clone https://github.com/MicrosoftLearning/mslearn-azure-ml.git azure-ml-labs
    
  11. compute-setup.sh ファイルを保存します。

コンピューティング インスタンスを作成する

コンピューティング インスタンスを作成するために、スタジオ、Python SDK、または Azure CLI を使用できます。 スタジオを使用して、先ほど作成したセットアップ スクリプトでコンピューティング インスタンスを作成します。

  1. 左側のメニューを使用して、 [コンピューティング] ページに移動します。
  2. [コンピューティング インスタンス] タブで、 [新規] を選択します。
  3. 次の設定を使用してコンピューティング インスタンスを構成します (まだ作成しないでください)。
    • [コンピューティング名]: “一意の名前を入力します
    • 仮想マシンの種類: CPU
    • 仮想マシンのサイズ: Standard_DS11_v2
  4. [次へ] を選択します。
  5. [スケジュールの追加] を選択し、毎日 18 時または午後 6 時にコンピューティング インスタンスを停止するようにスケジュールを構成します。
  6. [次へ] を選択します。
  7. セキュリティ設定を確認しますが、選択しないでください:
    • SSH アクセスの有効化: “これを使って、SSH クライアントを使用した仮想マシンへの直接アクセスを有効にすることができます。”**
    • 仮想ネットワークの有効化: “通常、これをエンタープライズ環境で使用してネットワーク セキュリティを強化します。”**
    • 他のユーザーへ割り当て: “これを使用して、コンピューティング インスタンスを別のデータ サイエンティストに割り当てることができます。”**
  8. [次へ] を選択します。
  9. [作成スクリプトを使用したプロビジョニング] の切り替えを選択します。
  10. 前に作成した compute-setup.sh スクリプトを選択します。
  11. [確認と作成] を選択してコンピューティング インスタンスを作成し、インスタンスが起動し、その状態が 実行中 に変わるのを待ちます。
  12. コンピューティング インスタンスが実行されている場合は、 [ノートブック] ページに移動します。 [ファイル] ペインで、 [↻] をクリックしてビューを更新し、新しい **Users/<自分のユーザー名>/mslearn-dp100** フォルダーが作成されていることを確認します。**

コンピューティング インスタンスを構成する

コンピューティング インスタンスを作成したら、そこで Notebooks を実行できます。 必要なコードを実行するには、特定のパッケージをインストールする必要がある場合があります。 セットアップ スクリプトにパッケージを含めたり、ターミナルを使用してそれらをインストールしたりできます。

  1. [コンピューティング インスタンス] タブで、コンピューティング インスタンスを見つけて、 [ターミナル] アプリケーションを選択します。
  2. ターミナルで、次のコマンドを実行して、コンピューティング インスタンスに Python SDK をインストールします。

     pip uninstall azure-ai-ml
     pip install azure-ai-ml
    

    パッケージがインストールされなかったことを示す (エラー) メッセージは無視します。

  3. パッケージがインストールされたら、タブを閉じてターミナルを終了できます。

コンピューティング クラスターを作成する

ノートブックは、実験中の開発や反復作業に最適です。 実験するときは、コンピューティング インスタンスでノートブックを実行して、コードをすばやくテストして確認する必要があります。 運用環境に移行するときは、コンピューティング クラスターでスクリプトを実行する必要があります。 Python SDK を使ってコンピューティング クラスターを作成してから、それを使用してスクリプトをジョブとして実行します。

  1. Labs/04/Work with compute.ipynb ノートブックを開きます。

    [認証] を選択し、認証を求める通知が表示されたら、必要な手順に従います。

  2. ノートブックで Python 3.8 - AzureML カーネルが使用されていることを確認します。
  3. ノートブック内のすべてのセルを実行します。

Azure リソースを削除する

Azure Machine Learning を調べ終わったら、不要な Azure のコストを避けるために作成したリソースを削除する必要があります。

  1. [Azure Machine Learning スタジオ] タブを閉じて、Azure portal に戻ります。
  2. Azure portal の [ホーム] ページで、[リソース グループ] を選択します。
  3. rg-dp100-labs リソース グループを選択します。
  4. リソース グループの [概要] ページの上部で、[リソース グループの削除] を選択します。
  5. リソース グループ名を入力して、削除することを確認し、[削除] を選択します。