Azure Machine Learning でデータを使用できるようにする

ローカル ファイル システム上のデータを操作することはかなり一般的ですが、エンタープライズ環境では、複数のデータ サイエンティストと機械学習エンジニアがアクセスできる中央の場所にデータを格納する方が効果的です。

この演習では、Azure Machine Learning でのデータ アクセスを抽象化するために使用される主なオブジェクトであるデータストアデータ資産について学びます。

開始する前に

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

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

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

Azure CLI を使用してワークスペースと必要なリソースをプロビジョニングする、シェル スクリプトを使用します。 次に、Azure Machine Learning スタジオのデザイナーを使用して、モデルのトレーニングと比較を行います。

ワークスペースとコンピューティング リソースを作成する

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. ターミナルで次のコマンドを入力して、このリポジトリをクローンします。

     rm -r azure-ml-labs -f
     git clone https://github.com/MicrosoftLearning/mslearn-azure-ml.git azure-ml-labs
    

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

  6. リポジトリがクローンされたら、次のコマンドを入力してこのラボ用のフォルダーに移動し、そこに含まれている setup.ps1 スクリプトを実行します。

     cd azure-ml-labs/Labs/03
     ./setup.sh
    

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

  7. スクリプトが完了するまで待ちます。通常、約 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. [リソースに移動] を選択して、リソースの [概要] ページで [スタジオの起動] を選択します。 ブラウザーで別のタブが開き、Azure Machine Learning スタジオが開きます。
    6. スタジオに表示されるすべてのポップアップを閉じます。
    7. Azure Machine Learning スタジオ内で、[コンピューティング] ページに移動し、[コンピューティング インスタンス] タブの [+ 新規] を選択します。
    8. コンピューティング インスタンスに一意の名前を付けたあと、仮想マシンのサイズとして Standard_DS11_v2 を選択します。
    9. [確認および作成] を選択し、次に [作成] を選択します。
    10. 次に、[コンピューティング クラスター] タブを選択し、[+ 新規] を選択します。
    11. ワークスペースを作成したリージョンと同じリージョンを選択し、仮想マシンのサイズとして Standard_DS11_v2 を選択します。 [次へ] を選択します
    12. クラスターに一意の名前を付け、[作成] を選択します。
    13. </ol> </details>

既定のデータストアを探索する

Azure Machine Learning ワークスペースを作成すると、ストレージ アカウントが自動的に作成され、ワークスペースに接続されます。 ストレージ アカウントの接続方法について説明します。

  1. Azure portal で、rg-dp100-… という名前の新しいリソース グループに移動します。
  2. リソース グループ内のストレージ アカウントを選択します。 多くの場合、名前はワークスペースに指定した名前 (ハイフンなし) で始まります。
  3. ストレージ アカウントの [概要] ページを確認します。 [概要] ペインと左側のメニューに表示されるように、ストレージ アカウントには [データ ストレージ] のいくつかのオプションがあることに注意してください。
  4. [コンテナー] を選択して、ストレージ アカウントの BLOB ストレージ部分を探索します。
  5. azureml-blobstore-… コンテナーに注目します。 データ資産の既定のデータストアでは、このコンテナーを使用してデータが保存されます。
  6. 画面の上部にある + [コンテナー] ボタンを使用して、新しいコンテナーを作成し、training-data という名前を付けます。
  7. 左側のメニューから [ファイル共有] を選択して、ストレージ アカウントのファイル共有の部分を探索します。
  8. code-… ファイル共有に注目します。 ワークスペース内のすべてのノートブックがここに保存されます。 ラボの資料を複製した後、このファイル共有のファイルを **code-…/Users/<自分のユーザー名>/azure-ml-labs** フォルダー内に見つけることができます。**

アクセス キーをコピーする

Azure Machine Learning ワークスペースにデータストアを作成するには、何らかの資格情報を入力する必要があります。 BLOB ストレージへのアクセス権をワークスペースに付与する簡単な方法は、アカウント キーを使用することです。

  1. ストレージ アカウントで、左側のメニューから [アクセス キー] タブを選択します。
  2. key1 と key2 の 2 つのキーが用意されていることに注意してください。 それぞれのキーの機能は同じです。
  3. [key1][キー] フィールドで [表示] を選択します。
  4. [キー] フィールドの値をメモ帳にコピーします。 後でこの値をノートブックに貼り付ける必要があります。
  5. ページの上部からストレージ アカウントの名前をコピーします。 名前は mlwdp100storage.. で始まる必要があります。この値も後でノートブックに貼り付ける必要があります。

: 自動大文字化 (Word で実行される) を回避するために、アカウント キーと名前はメモ帳にコピーします。 キーは大文字と小文字が区別されます。

ラボの資料をクローンする

Python SDK を使用してデータストアとデータ資産を作成するには、ラボの資料をワークスペースに複製する必要があります。

  1. Azure portal で、mlw-dp100-labs という名前の Azure Machine Learning ワークスペースに移動します。
  2. Azure Machine Learning ワークスペースを選択し、その [概要] ページで [スタジオの起動] を選択します。 ブラウザーで別のタブが開き、Azure Machine Learning スタジオが開きます。
  3. スタジオに表示されるすべてのポップアップを閉じます。
  4. Azure Machine Learning スタジオ内で、 [コンピューティング] ページに移動し、前のセクションで作成したコンピューティング インスタンスとクラスターが存在することを確認します。 コンピューティング インスタンスが実行中である必要があります。クラスターはアイドル状態で、0 個のノードが実行中であるはずです。
  5. [コンピューティング インスタンス] タブで、コンピューティング インスタンスを見つけて、 [ターミナル] アプリケーションを選択します。
  6. ターミナルで、次のコマンドを実行して、コンピューティング インスタンスに Python SDK をインストールします。

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

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

  7. 次のコマンドを実行して、ノートブック、データ、その他のファイルを含む Git リポジトリをワークスペースにクローンします。

     git clone https://github.com/MicrosoftLearning/mslearn-azure-ml.git azure-ml-labs
    
  8. コマンドが完了したら、 [ファイル] ペインで [↻] をクリックしてビューを更新し、新しい **Users/<自分のユーザー名>/azure-ml-labs** フォルダーが作成されていることを確認します。**

必要に応じて、別のブラウザー タブで Microsoft Azure portal に戻ります。 ストレージ アカウントでファイル共有 code-… をもう一度探し、新しく作成された azure-ml-labs フォルダーで、複製されたラボの資料を見つけます。

データストアとデータ資産を作成する

Python SDK を使用してデータストアとデータ資産を作成するコードが、ノートブックで提供されています。

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

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

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

省略可能: データ資産を調べる

必要に応じて、関連付けられているストレージ アカウントにデータ資産を保存する方法を調べることができます。

  1. Azure Machine Learning スタジオの [データ] タブに移動して、データ資産を探索します。
  2. diabetes-local というデータ資産名を選択して、その詳細を確認します。

    diabetes-local データ資産の [データ ソース] に、ファイルがどこにアップロードされたかが表示されます。 LocalUpload/… で始まるパスは、ストレージ アカウント コンテナー azureml-blobstore-.. 内のパスを示しています。Azure portal でそのパスに移動することで、ファイルが存在することを確認できます。

Azure リソースを削除する

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

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