チュートリアル: コマンド ライン インターフェイスを使用して Iris を分類するTutorial: Classifying Iris using the command-line interface

Azure Machine Learning サービス (プレビュー) は、データ サイエンスと高度な分析をエンド ツー エンドで支援する統合ソリューションです。データの準備、実験の開発、モデルのデプロイをクラウド スケールで行うプロフェッショナルなデータ サイエンティストを対象としています。Azure Machine Learning services (preview) are an integrated, end-to-end data science and advanced analytics solution for professional data scientists to prepare data, develop experiments and deploy models at cloud scale.

このチュートリアルでは、Azure Machine Learning プレビュー機能でコマンド ライン インターフェイス (CLI) ツールを使って次のことを行う方法を説明します。In this tutorial, you learn to use the command-line interface (CLI) tools in Azure Machine Learning preview features to:

  • 実験アカウントを設定してワークスペースを作成するSet up an Experimentation account and create a workspace
  • プロジェクトの作成Create a project
  • 複数のコンピューティング ターゲットに実験を送信するSubmit an experiment to multiple compute targets
  • トレーニング済みのモデルを昇格させて登録するPromote and register a trained model
  • 新しいデータをスコア付けする Web サービスをデプロイするDeploy a web service to score new data

前提条件Prerequisites

このチュートリアルを完了するには、次のものが必要です。To complete this tutorial, you need:

  • Azure サブスクリプションへのアクセス権と、そのサブスクリプションにリソースを作成するアクセス許可があること。Access to an Azure subscription and permissions to create resources in that subscription.

    Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

  • Azure Machine Learning サービスのインストールと基本操作のクイック スタートの説明に従って Azure Machine Learning Workbench アプリケーションがインストールされていること。Azure Machine Learning Workbench application installed as described in Quickstart: Install and start Azure Machine Learning services.

    重要

    Azure Machine Learning サービス アカウントは作成しないでください。サービス アカウントの作成は、この記事の中で CLI を使用して行います。Do not create the Azure Machine Learning service accounts since you will do that using the CLI in this article.

使用の開始Getting started

Azure Machine Learning コマンド ライン インターフェイス (CLI) では、データ サイエンス ワークフローの開始から終了までに必要なすべてのタスクを実行することができます。Azure Machine Learning command-line interface (CLI) allows you to perform all tasks required for an end-to-end data science workflow. CLI ツールには次の方法でアクセスできます。You can access the CLI tools in the following ways:

方法 1.Option 1. Azure ML Workbench ログイン ダイアログ ボックスから Azure ML CLI を起動するlaunch Azure ML CLI from Azure ML Workbench log-in dialog box

Azure ML Workbench を初めて起動してログインするとき、実験アカウントへのアクセス権がまだない場合は、次の画面が表示されます。When you launch Azure ML Workbench and log in for the first time, and if you don't have access to an Experimentation Account already, you are presented with the following screen:

アカウントが見つかりませんでした

ダイアログ ボックスの [Command Line Window](コマンド ライン ウィンドウ) リンクをクリックして、コマンド ライン ウィンドウを起動します。Click on the Command Line Window link in the dialog box to launch the command-line window.

方法 2.Option 2. Azure ML Workbench アプリから Azure ML CLI を起動するlaunch Azure ML CLI from Azure ML Workbench app

実験アカウントへのアクセス権が既にある場合は、正常にログインすることができます。If you already have access to an Experimentation Account, you can log in successfully. その後、[ファイル] --> [コマンド プロンプトを開く] メニューをクリックして、コマンド ライン ウィンドウを開くことができます。And you can then open the command-line window by clicking on File --> Open Command Prompt menu.

方法 3.Option 3. 任意のコマンド ライン ウィンドウで Azure ML CLI を有効にするenable Azure ML CLI in an arbitrary command-line window

任意のコマンド ライン ウィンドウで Azure ML CLI を有効にすることもできます。You can also enable Azure ML CLI in any command-line window. その場合は、コマンド ウィンドウを開き、次のコマンドを入力してください。Do so by launching a command window, and enter the following commands:

# Windows Command Prompt
set PATH=%LOCALAPPDATA%\amlworkbench\Python;%LOCALAPPDATA%\amlworkbench\Python\Scripts;%PATH%

# Windows PowerShell
$env:Path = $env:LOCALAPPDATA+"\amlworkbench\Python;"+$env:LOCALAPPDATA+"\amlworkbench\Python\Scripts;"+$env:Path

# macOS Bash Shell
PATH=$HOME/Library/Caches/AmlWorkbench/Python/bin:$PATH

変更を永続的にするには、Windows では SETX を使うことができます。To make the change permanent, you can use SETX on Windows. macOS の場合は、setenv を使うことができます。For macOS, you can use setenv.

ヒント

前出の環境変数を設定することにより、好みのターミナル ウィンドウで Azure CLI を有効にできます。You can enable Azure CLI in your favorite terminal window by setting the preceding environment variables.

手順 1.Step 1. Azure にログインするLog in to Azure

最初に、AMLWorkbench アプリから CLI を開きます ([ファイル] > [Open Command Prompt](コマンド プロンプトを開く))。The first step is to open the CLI from the AMLWorkbench App (File > Open Command Prompt). 適切な Python 環境が存在していて ML CLI コマンドを利用できることが、これにより確認できます。Doing so ensures that you have the correct python environment and that the ML CLI commands are available.

次に、Azure リソースにアクセスして管理するための適切なコンテキストを CLI で設定する必要があります。Now, you can set the right context in your CLI to access and manage Azure resources.

# log in
$ az login

# list all subscriptions
$ az account list -o table

# set the current subscription
$ az account set -s <subscription id or name>

手順 2.Step 2. 新しい Azure Machine Learning 実験アカウントとワークスペースを作成するCreate a new Azure Machine Learning Experimentation Account and Workspace

この手順では、新しい実験アカウントと新しいワークスペースを作成します。In this step, you create a new Experimentation account and a new workspace. 実験アカウントとワークスペースについて詳しくは、「Azure Machine Learning の概念」をご覧ください。See Azure Machine Learning concepts for more details about experimentation accounts and workspaces.

注意

実験アカウントにはストレージ アカウントが必要です。ストレージ アカウントは、実験の実行の出力を格納するために使われます。Experimentation accounts require a storage account, which is used to store the outputs of your experiment runs. ストレージ アカウント名は、関連付けられる URL があるため、Azure 内でグローバルに一意である必要があります。The storage account name has to be globally unique in Azure because there is an url associated with it. 既存のストレージ アカウントを指定しない場合、実験用のアカウント名を使用して新しいストレージ アカウントを作成します。If you don't specify an existing storage account, your experimentation account name is used to create a new storage account. 必ず一意名を使ってください。一意でないと、"<storage_account_name> という名前のストレージ アカウントは既に取得されています" のようなエラーが発生します。Make sure to use a unique name, or you will get an error such as "The storage account named <storage_account_name> is already taken." または、--storage 引数を使って既存のストレージ アカウントを使うこともできます。Alternatively, you can use the --storage argument to supply an existing storage account.

# create a resource group 
$ az group create --name <resource group name> --location <supported Azure region>

# create a new experimentation account with a new storage account
$ az ml account experimentation create --name <experimentation account name> --resource-group <resource group name>

# create a new experimentation account with an existing storage account
$ az ml account experimentation create --name <experimentation account name>  --resource-group <resource group name> --storage <storage account Azure Resource ID>

# create a workspace in the experimentation account
az ml workspace create --name <workspace name> --account <experimentation account name> --resource-group <resource group name>

手順 2.a (省略可能) ワークスペースを同僚と共有するStep 2.a (optional) Share a workspace with co-worker

ここでは、ワークスペースへのアクセスを同僚と共有する方法を示します。Here you can explore how to share access to a workspace with a co-worker. 実験アカウントでもプロジェクトでも、アクセスを共有する手順は同じです。The steps to share access to an experimentation account or to a project would be the same. Azure リソース ID を取得する方法だけを更新する必要があります。Only the way of getting the Azure Resource ID would need to be updated.

# find the workspace Azure Resource ID
$az ml workspace show --name <workspace name> --account <experimentation account name> --resource-group <resource group name>

# add Bob to this workspace as a new owner
$az role assignment create --assignee bob@contoso.com --role owner --scope <workspace Azure Resource ID>

ヒント

前述のコマンドの bob@contoso.com は、現在のサブスクリプションが属するディレクトリで有効な Azure AD ID である必要があります。bob@contoso.com in the above command must be a valid Azure AD identity in the directory where the current subscription belongs to.

手順 3.Step 3. 新しいプロジェクトを作成するCreate a new project

次に、新しいプロジェクトを作成します。Our next step is to create a new project. 新しいプロジェクトを始めるにはいくつかの方法があります。There are several ways to get started with a new project.

空のプロジェクトを新しく作成するCreate a new blank project

# create a new project
$ az ml project create --name <project name> --workspace <workspace name> --account <experimentation account name> --resource-group <resource group name> --path <local folder path>

既定のプロジェクト テンプレートで新しいプロジェクトを作成するCreate a new project with a default project template

既定のテンプレートで新しいプロジェクトを作成することができます。You can create a new project with a default template.

$ az ml project create --name <project name> --workspace <workspace name> --account <experimentation account name> --resource-group <resource group name> --path <local folder path> --template

クラウド Git リポジトリに関連付けられた新しいプロジェクトを作成するCreate a new project associated with a cloud Git repository

VSTS (Visual Studio Team Service) Git リポジトリに関連付けられた新しいプロジェクトを作成できます。You can create a new project associated with a VSTS (Visual Studio Team Service) Git repository. 実験を送信するたびに、プロジェクト フォルダー全体のスナップショットがリモートの Git リポジトリにコミットされます。Every time an experiment is submitted, a snapshot of the entire project folder is committed to the remote Git repo. 詳しくは、「Azure Machine Learning Workbench プロジェクトでの Git リポジトリの使用」をご覧ください。See Using Git repository with an Azure Machine Learning Workbench project for more details.

注意

Azure Machine Learning は、VSTS で作成された空の Git リポジトリのみをサポートしています。Azure Machine Learning only supports empty Git repos created in VSTS.

$ az ml project create --name <project name> --workspace <workspace name> --account <experimentation account name> --resource-group <resource group name> --path <local folder path> --repo <VSTS repo URL>

ヒント

"Repository url might be invalid or user might not have access" (リポジトリの URL が正しくないか、ユーザーにアクセス権がない可能性があります) というエラーが発生する場合は、VSTS でセキュリティ トークンを作成し ([セキュリティ][Add personal access tokens](個人用アクセス トークンを追加) メニュー)、プロジェクトを作成するときに --vststoken 引数を使うことができます。If you are getting an error "Repository url might be invalid or user might not have access", you can create a security token in VSTS (under Security, Add personal access tokens menu) and use the --vststoken argument when creating your project.

サンプルから新しいプロジェクトを作成するCreate a new project from a sample

この例では、テンプレートとしてサンプル プロジェクトを使用して新しいプロジェクトを作成します。In this example, you create a new project using a sample project as a template.

# List the project samples, find the Classifying Iris sample
$ az ml project sample list

# Create a new project from the sample
az ml project create --name <project name> --workspace <workspace name> --account <experimentation account name> --resource-group <resource group name> --path <local folder path> --template-url https://github.com/MicrosoftDocs/MachineLearningSamples-Iris

プロジェクトを作成したら、cd コマンドを使用してプロジェクト ディレクトリを入力します。Once your project is created, use cd command to enter the project directory.

手順 4. トレーニング実験を実行するStep 4 Run the training experiment

次の手順では、Iris サンプルのプロジェクトがあるものとします (「オンライン サンプルから新しいプロジェクトを作成する」を参照)。The following steps assume that you have a project with the Iris sample (see Create a new project from an online sample).

環境を準備するPrepare your environment

Iris サンプルでは、matplotlib をインストールする必要があります。For the Iris sample, you must install matplotlib.

$ pip install matplotlib

実験を送信するSubmit the experiment

# Execute the file
$ az ml experiment submit --run-configuration local iris_sklearn.py

正則化項を降順にして実験を繰り返すIterate on your experiment with descending regularization rates

少し工夫すれば、異なる正則化項で実験を送信する Python スクリプトと組み合わせることは簡単です With some creativity, it's simple to put together a Python script that submits experiments with different regularization rates. (ファイルを編集して、適切なプロジェクト パスをポイントすることが必要になる場合があります)。(You might have to edit the file to point to the right project path.)

$ python run.py

手順 5.Step 5. 実行履歴を表示するView run history

次のコマンドは、以前のすべての実行を一覧表示します。Following command lists all the previous runs executed.

$ az ml history list -o table

上のコマンドを実行すると、このプロジェクトに属しているすべての実行の一覧が表示されます。Running the preceding command displays a list of all the runs belonging to this project. 精度と正則化項のメトリックも表示されます。You can see that accuracy and regularization rate metrics are listed too. これにより、一覧から最善の実行を簡単に識別できます。This makes it easy to identify the best run from the list.

手順 5.a 特定の実行によって作成された添付ファイルを表示するStep 5.a View attachment created by a given run

特定の実行に関連付けられている添付ファイルを表示するには、実行履歴の info コマンドを使います。To view the attachment associated with a given run, you can use the info command of run history. 前述の一覧から、特定の実行の実行 ID を見つけます。Find a run ID of a specific run from the preceding list.

$ az ml history info --run <run id> --artifact driver_log

実行からアーティファクトをダウンロードするには、次のコマンドを使います。To download the artifacts from a run, you can use below command:

# Stream a given attachment 
$ az ml history info --run <run id> --artifact <artifact location>

手順 6.Step 6. 実行のアーティファクトを昇格させるPromote artifacts of a run

相対的に AUC の優れている実行が 1 つあるので、運用環境にデプロイするスコア付け Web サービスを作成する際は、その実行を使うことになります。One of the runs has a better AUC, so this is the one to use when creating a scoring web service to deploy to production. そのためには最初に、アーティファクトを資産に昇格させる必要があります。In order to do so, you first need to promote the artifacts into an asset.

$ az ml history promote --run <run id> --artifact-path outputs/model.pkl --name model.pkl

これで、プロジェクト ディレクトリの assets フォルダーと model.pkl.link ファイルが作成されます。This creates an assets folder in your project directory with a model.pkl.link file. このリンク ファイルは、プロンプトに表示された資産を参照するために使用されます。This link file is used to reference a promoted asset.

手順 7.Step 7. 運用可能にするファイルをダウンロードするDownload the files to be operationalized

昇格させたモデルを使って予測 Web サービスを作成できるように、そのモデルをダウンロードします。Download the promoted model so you can use them to create a prediction web service.

$ az ml asset download --link-file assets\pickle.link -d asset_download

手順 8.Step 8. モデル管理環境を設定するSet up your model management environment

Web サービスをデプロイするための環境を作成します。Create an environment to deploy web services. Docker を使ってローカル コンピューターで Web サービスを実行できます。You can run the web service on the local machine using Docker. または、高スケールの運用には ACS クラスターにデプロイします。Or deploy it to an ACS cluster for high-scale operations.

# Create new local operationalization environment
$ az ml env setup -l <supported Azure region> -n <env name>
# Once setup is complete, set your environment for current context
$ az ml env set -g <resource group name> -n <env name>

手順 9.Step 9. モデル管理アカウントを作成するCreate a model management account

運用環境にモデルをデプロイして追跡するには、モデル管理アカウントが必要です。A model management account is required to deploy and track your models in production.

$ az ml account modelmanagement create -n <model management account name> -g <resource group name> -l <supported Azure region>

手順 10.Step 10. Web サービスの作成Create a web service

デプロイしたモデルを使って予測を返す Web サービスを作成します。Create a web service that returns a prediction using the model you deployed.

$ az ml service create realtime -m asset_download/model.pkl -f score_iris.py -r python –n <web service name>

手順 11.Step 11. Web サービスを実行するRun the web service

前の手順で出力された Web サービス ID を使うことで、Web サービスを呼び出してテストします。Using the web service ID from the output of the previous step, call the web service and test it.

# Get web service usage infomration
$ az ml service usage realtime -i <web service id>

# Call the web service with the run command:
$ az ml service run realtime -i <web service id> -d <input data>

手順 12.Step 12. すべてのリソースを削除するDeleting all the resources

学習を続ける場合を除き、最後に、作成したすべてのリソースを削除します。Let's complete this tutorial by deleting all the resources that were created, unless you want to keep working on it.

それらのリソースが属しているリソース グループを削除すれば、そのようにすることができます。To do so, delete the resource group holding the resources.

az group delete --name <resource group name>

次の手順Next Steps

このチュートリアルでは、Azure Machine Learning を使って以下のことを行う方法を学習しました。In this tutorial, you have learned to use the Azure Machine Learning to:

  • 実験アカウントを設定してワークスペースを作成するSet up an experimentation account, creating workspace
  • プロジェクトを作成するCreate projects
  • 複数のコンピューティング ターゲットに実験を送信するSubmit experiments to multiple compute target
  • トレーニング済みのモデルを昇格させて登録するPromote and register a trained model
  • モデル管理用のモデル管理アカウントを作成するCreate a model management account for model management
  • Web サービスをデプロイするための環境を作成するCreate an environment for deploying web services
  • Web サービスをデプロイして新しいデータでスコア付けするDeploy a web-service and score with new data