Model クラス

機械学習トレーニングの結果を表します。

"モデル" は、Azure Machine Learning トレーニングの Run または Azure の外部にある他のモデル トレーニング プロセスの結果です。 モデルは、生成方法に関係なく、ワークスペースに登録でき、名前とバージョンで表されます。 Model クラスを使用すると、Docker で使用するモデルをパッケージ化し、推論要求に使用できるリアルタイム エンドポイントとしてデプロイできます。

モデルの作成、管理、使用方法を示すエンドツーエンドのチュートリアルについては、Azure Machine Learning での MNIST データと scikit-learn を使用した画像分類モデルのトレーニングに関する記事をご覧ください。

モデル コンストラクター。

Model コンストラクターは、指定されたワークスペースに関連付けられている Model オブジェクトのクラウド表現を取得するために使用されます。 名前または ID を指定する必要があります。

継承
builtins.object
Model

コンストラクター

Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)

パラメーター

名前 説明
workspace
必須

取得するモデルが含まれるワークスペース オブジェクト。

name
str

取得するモデルの名前。 指定した名前を持つ最新のモデルが返されます (存在する場合)。

既定値: None
id
str

取得するモデルの ID。 指定した ID を持つモデルが返されます (存在する場合)。

既定値: None
tags

返された結果をフィルター処理するために使用されるタグのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']]

既定値: None
properties

返された結果をフィルター処理するために使用されるプロパティのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']]

既定値: None
version
int

返されるモデル バージョン。 name パラメーターと共に指定すると、指定した名前付きモデルの特定のバージョンが返されます (存在する場合)。 version を省略すると、モデルの最新バージョンが返されます。

既定値: None
run_id
str

返された結果をフィルター処理するために使用される ID (省略可能)。

既定値: None
model_framework
str

返された結果をフィルター処理するために使用されるフレームワーク名 (省略可能)。 指定した場合、指定したフレームワークに一致するモデルの結果が返されます。 使用できる値については、Framework に関するページを参照してください。

既定値: None
workspace
必須

取得するモデルが含まれるワークスペース オブジェクト。

name
必須
str

取得するモデルの名前。 指定した名前を持つ最新のモデルが返されます (存在する場合)。

id
必須
str

取得するモデルの ID。 指定した ID を持つモデルが返されます (存在する場合)。

tags
必須

返された結果をフィルター処理するために使用されるタグのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']]

properties
必須

返された結果をフィルター処理するために使用されるプロパティのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']]

version
必須
int

返されるモデル バージョン。 name パラメーターと共に指定すると、指定した名前付きモデルの特定のバージョンが返されます (存在する場合)。 version を省略すると、モデルの最新バージョンが返されます。

run_id
必須
str

返された結果をフィルター処理するために使用される ID (省略可能)。

model_framework
必須
str

返された結果をフィルター処理するために使用されるフレームワーク名 (省略可能)。 指定した場合、指定したフレームワークに一致するモデルの結果が返されます。 使用できる値については、Framework に関するページを参照してください。

expand

true の場合、実行、データセット、実験など、すべてのサブプロパティが設定されたモデルを返します。

既定値: True

注釈

Model コンストラクターは、指定されたワークスペースに関連付けられている Model オブジェクトのクラウド表現を取得するために使用されます。 モデルを取得するには、少なくとも名前または ID を指定する必要がありますが、タグ、プロパティ、バージョン、実行 ID、フレームワークなど、フィルター処理には他のオプションもあります。


   from azureml.core.model import Model
   model = Model(ws, 'my_model_name')

次のサンプルでは、モデルの特定のバージョンをフェッチする方法を示しています。


   from azureml.core.model import Model
   model = Model(ws, 'my_model_name', version=1)

モデルの登録により、モデルを構成する 1 つまたは複数のファイルの論理コンテナーが作成されます。 登録したモデルには、モデル ファイルそのものの内容に加えて、モデルのメタデータ (モデルの説明、タグ、フレームワーク情報) も格納されます。これは、ワークスペースのモデルを管理したりデプロイしたりする際に役立ちます。 たとえばワークスペース内のモデルを一覧表示するときであれば、タグを使用してモデルを分類し、フィルターを適用することができます。 登録後は、その登録済みモデルをダウンロードまたはデプロイして、登録されたすべてのファイルとメタデータを受信できます。

次のサンプルでは、タグと説明を指定してモデルを登録する方法を示します。


   from azureml.core.model import Model

   model = Model.register(model_path="sklearn_regression_model.pkl",
                          model_name="sklearn_regression_model",
                          tags={'area': "diabetes", 'type': "regression"},
                          description="Ridge regression model to predict diabetes",
                          workspace=ws)

完全なサンプルは、https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb から入手できます

次のサンプルでは、フレームワーク、入力と出力のデータセット、リソース構成を指定してモデルを登録する方法を示します。


   import sklearn

   from azureml.core import Model
   from azureml.core.resource_configuration import ResourceConfiguration


   model = Model.register(workspace=ws,
                          model_name='my-sklearn-model',                # Name of the registered model in your workspace.
                          model_path='./sklearn_regression_model.pkl',  # Local file to upload and register as a model.
                          model_framework=Model.Framework.SCIKITLEARN,  # Framework used to create the model.
                          model_framework_version=sklearn.__version__,  # Version of scikit-learn used to create the model.
                          sample_input_dataset=input_dataset,
                          sample_output_dataset=output_dataset,
                          resource_configuration=ResourceConfiguration(cpu=1, memory_in_gb=0.5),
                          description='Ridge regression model to predict diabetes progression.',
                          tags={'area': 'diabetes', 'type': 'regression'})

   print('Name:', model.name)
   print('Version:', model.version)

"変数" セクションには、クラウド Model オブジェクトのローカル表現の属性が一覧表示されます。 これらの変数は読み取り専用と見なされます。 値を変更しても、対応するクラウド オブジェクトには反映されません。

変数

名前 説明
created_by

Model を作成したユーザー。

created_time

Model が作成された日時。

azureml.core.Model.description

Model オブジェクトの説明。

azureml.core.Model.id

モデル ID。 <モデル名 >:<モデルのバージョン> の形式を取ります。

mime_type
str

Model の MIME の種類。

azureml.core.Model.name

Model の名前。

model_framework
str

Model のフレームワーク。

model_framework_version
str

Model のフレームワーク バージョン。

azureml.core.Model.tags

Model オブジェクトのタグの辞書。

azureml.core.Model.properties

Model のキー値プロパティの辞書。 これらのプロパティは登録後に変更することはできませんが、新しいキーと値のペアを追加することは可能です。

unpack

ローカル コンテキストにプルするときに、Model をアンパック (展開) する必要があるかどうか。

url
str

Model の url の場所。

azureml.core.Model.version

Model のバージョン。

azureml.core.Model.workspace

Model が含まれているワークスペース。

azureml.core.Model.experiment_name

Model を作成した実験の名前。

azureml.core.Model.run_id

Model を作成した実行の ID。

parent_id
str

Model の親 Model の ID。

derived_model_ids

この Model から派生した Model ID のリスト。

resource_configuration

この Model の ResourceConfiguration。 プロファイルに使用されます。

メソッド

add_dataset_references

指定されたデータセットをこの Model に関連付けます。

add_properties

このモデルのプロパティの辞書にキーと値のペアを追加します。

add_tags

このモデルのタグの辞書にキーと値のペアを追加します。

delete

関連付けられているワークスペースからこのモデルを削除します。

deploy

0 個以上の Model オブジェクトから Webservice をデプロイします。

結果として得られる Webservice は、推論要求に使用できるリアルタイム エンドポイントです。 Model 関数 deployWebservice クラスの deploy 関数に似ていますが、モデルは登録しません。 既に登録されているモデル オブジェクトがある場合は、Model 関数 deploy を使用します。

deserialize

JSON オブジェクトをモデル オブジェクトに変換します。

指定したワークスペースが、モデルが登録されているワークスペースではない場合、変換は失敗します。

download

ローカル ファイル システムのターゲット ディレクトリにモデルをダウンロードします。

get_model_path

モデルへのパスを返します。

この関数は、次の場所でモデルを検索します。

version が None の場合:

  1. リモートからキャッシュにダウンロードする (ワークスペースが提供されている場合)
  2. キャッシュ azureml-models/$MODEL_NAME/$LATEST_VERSION/ からロードする
  3. ./$MODEL_NAME

version が None ではない場合:

  1. キャッシュ azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/ からロードする
  2. リモートからキャッシュにダウンロードする (ワークスペースが提供されている場合)
get_sas_urls

ファイル名と対応する SAS URL を含むキーと値のペアの辞書を返します。

list

指定されたワークスペースに関連付けられているすべてのモデルのリストを (オプションでフィルター処理して) 取得します。

package

Docker イメージまたは Dockerfile ビルド コンテキストの形式でモデル パッケージを作成します。

print_configuration

ユーザー構成を出力します。

profile

モデルをプロファイルして、リソース要件に関する推奨事項を取得します。

これは実行時間の長い操作で、データセットのサイズに応じて最大 25 分かかる場合があります。

register

指定されたワークスペースにモデルを登録します。

remove_tags

このモデルのタグの辞書から、指定したキーを削除します。

serialize

この Model を JSON シリアル化された辞書に変換します。

update

モデルのインプレース更新を実行します。

指定したパラメーターの既存の値が置き換えられます。

update_tags_properties

モデルのタグとプロパティの更新を実行します。

add_dataset_references

指定されたデータセットをこの Model に関連付けます。

add_dataset_references(datasets)

パラメーター

名前 説明
datasets
必須
list[tuple(<xref:str :> (Dataset または DatasetSnapshot))]

データセットの目的と Dataset オブジェクトのペアを表すタプルのリスト。

例外

説明

add_properties

このモデルのプロパティの辞書にキーと値のペアを追加します。

add_properties(properties)

パラメーター

名前 説明
properties
必須
dict(<xref:str : str>)

追加するプロパティの辞書。

例外

説明

add_tags

このモデルのタグの辞書にキーと値のペアを追加します。

add_tags(tags)

パラメーター

名前 説明
tags
必須
dict(<xref:{str : str}>)

追加するタグの辞書。

例外

説明

delete

関連付けられているワークスペースからこのモデルを削除します。

delete()

例外

説明

deploy

0 個以上の Model オブジェクトから Webservice をデプロイします。

結果として得られる Webservice は、推論要求に使用できるリアルタイム エンドポイントです。 Model 関数 deployWebservice クラスの deploy 関数に似ていますが、モデルは登録しません。 既に登録されているモデル オブジェクトがある場合は、Model 関数 deploy を使用します。

static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)

パラメーター

名前 説明
workspace
必須

Webservice を関連付ける Workspace オブジェクト。

name
必須
str

デプロイされたサービスに付ける名前。 ワークスペースに固有で、小文字、数字、またはダッシュのみで構成され、英字で始まり、3 文字から 32 文字の長さにする必要があります。

models
必須

モデル オブジェクトのリスト。 空のリストにすることができます。

inference_config

必須のモデル プロパティを決定するために使用される InferenceConfig オブジェクト。

既定値: None
deployment_config

webservice を構成するために使用される WebserviceDeploymentConfiguration。 指定されていない場合は、目的のターゲットに基づいて空の構成オブジェクトが使用されます。

既定値: None
deployment_target

Webservice をデプロイする ComputeTarget。 Azure Container Instances には関連付けられた ComputeTarget がないため、このパラメーターを None のままにして Azure Container Instances にデプロイします。

既定値: None
overwrite

指定した名前を持つサービスが既に存在する場合に、既存のサービスを上書きするかどうかを示します。

既定値: False
show_output

サービスのデプロイの進行状況を表示するかどうかを示します。

既定値: False

戻り値

説明

デプロイされた webservice に対応する Webservice オブジェクト。

例外

説明

deserialize

JSON オブジェクトをモデル オブジェクトに変換します。

指定したワークスペースが、モデルが登録されているワークスペースではない場合、変換は失敗します。

static deserialize(workspace, model_payload)

パラメーター

名前 説明
workspace
必須

モデルが登録されているワークスペース オブジェクト。

model_payload
必須

Model オブジェクトに変換する JSON オブジェクト。

戻り値

説明

指定された JSON オブジェクトの Model 表現。

例外

説明

download

ローカル ファイル システムのターゲット ディレクトリにモデルをダウンロードします。

download(target_dir='.', exist_ok=False, exists_ok=None)

パラメーター

名前 説明
target_dir
str

モデルをダウンロードするディレクトリのパス。 既定値は "." です。

既定値: .
exist_ok

ダウンロードしたディレクトリまたはファイル (存在する場合) を置き換えるかどうかを示します。 既定値は False です。

既定値: False
exists_ok

非推奨。 exist_ok を使用してください。

既定値: None

戻り値

説明
str

モデルのファイルまたはフォルダーのパス。

例外

説明

get_model_path

モデルへのパスを返します。

この関数は、次の場所でモデルを検索します。

version が None の場合:

  1. リモートからキャッシュにダウンロードする (ワークスペースが提供されている場合)
  2. キャッシュ azureml-models/$MODEL_NAME/$LATEST_VERSION/ からロードする
  3. ./$MODEL_NAME

version が None ではない場合:

  1. キャッシュ azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/ からロードする
  2. リモートからキャッシュにダウンロードする (ワークスペースが提供されている場合)
static get_model_path(model_name, version=None, _workspace=None)

パラメーター

名前 説明
model_name
必須
str

取得するモデルの名前。

version
int

取得するモデルのバージョン。 既定値は最新バージョンです。

既定値: None
_workspace

モデルの取得元となるワークスペース。 リモートで使用することはできません。 指定しない場合は、ローカル キャッシュのみが検索されます。

既定値: None

戻り値

説明
str

モデルへのディスク上のパス。

例外

説明

get_sas_urls

ファイル名と対応する SAS URL を含むキーと値のペアの辞書を返します。

get_sas_urls()

戻り値

説明

ファイル名と対応する SAS URL を含むキーと値のペアの辞書

例外

説明

list

指定されたワークスペースに関連付けられているすべてのモデルのリストを (オプションでフィルター処理して) 取得します。

static list(workspace, name=None, tags=None, properties=None, run_id=None, latest=False, dataset_id=None, expand=True, page_count=255, model_framework=None)

パラメーター

名前 説明
workspace
必須

モデルの取得元となるワークスペース オブジェクト。

name
str

指定した場合、指定した名前を持つモデル (存在する場合) のみを返します。

既定値: None
tags

指定されたリストに基づいて、'key' または '[key, value]' でフィルター処理します。 例: ['key', ['key2', 'key2 value']]

既定値: None
properties

指定されたリストに基づいて、'key' または '[key, value]' でフィルター処理します。 例: ['key', ['key2', 'key2 value']]

既定値: None
run_id
str

指定された実行 ID に基づいてフィルター処理します。

既定値: None
latest

true の場合、最新バージョンのモデルのみを返します。

既定値: False
dataset_id
str

指定されたデータセット ID に基づいてフィルター処理します。

既定値: None
expand

true の場合、実行、データセット、実験など、すべてのサブプロパティが設定されたモデルを返します。 これを false に設定すると、多くのモデルがある場合に list() メソッドが完了するまでの時間が短縮されます。

既定値: True
page_count
int

1 ページに取得する項目の数。 現在、サポートされる最大値は 255 です。 既定値は 255 です。

既定値: 255
model_framework
str

指定した場合、指定したフレームワークを持つモデル (存在する場合) のみを返します。

既定値: None

戻り値

説明

(オプションでフィルター処理された) モデルのリスト。

例外

説明

package

Docker イメージまたは Dockerfile ビルド コンテキストの形式でモデル パッケージを作成します。

static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)

パラメーター

名前 説明
workspace
必須

パッケージを作成するワークスペース。

models
必須

パッケージに含める Model オブジェクトのリスト。 空のリストにすることができます。

inference_config

モデルの操作を構成する InferenceConfig オブジェクト。 これには Environment オブジェクトが含まれる必要があります。

既定値: None
generate_dockerfile

イメージをビルドする代わりにローカルで実行できる Dockerfile を作成するかどうか。

既定値: False
image_name
str

イメージをビルドするときの、結果のイメージの名前。

既定値: None
image_label
str

イメージをビルドするときの、結果のイメージのラベル。

既定値: None

戻り値

説明

ModelPackage オブジェクト。

例外

説明

print_configuration

ユーザー構成を出力します。

static print_configuration(models, inference_config, deployment_config, deployment_target)

パラメーター

名前 説明
models
必須

モデル オブジェクトのリスト。 空のリストにすることができます。

inference_config
必須

必須のモデル プロパティを決定するために使用される InferenceConfig オブジェクト。

deployment_config
必須

webservice を構成するために使用される WebserviceDeploymentConfiguration。

deployment_target
必須

Webservice をデプロイする ComputeTarget

例外

説明

profile

モデルをプロファイルして、リソース要件に関する推奨事項を取得します。

これは実行時間の長い操作で、データセットのサイズに応じて最大 25 分かかる場合があります。

static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)

パラメーター

名前 説明
workspace
必須

モデルをプロファイルするワークスペース オブジェクト。

profile_name
必須
str

プロファイル実行の名前。

models
必須

モデル オブジェクトのリスト。 空のリストにすることができます。

inference_config
必須

必須のモデル プロパティを決定するために使用される InferenceConfig オブジェクト。

input_dataset
必須

プロファイルの入力データセット。 入力データセットには 1 つの列が必要であり、サンプル入力は文字列形式である必要があります。

cpu

最大のテスト インスタンスで使用する CPU コアの数。 現在、サポートされている最大値は 3.5 です。

既定値: None
memory_in_gb

最大のテスト インスタンスで使用するメモリの量 (GB 単位)。 10 進数を指定できます。 現在、サポートされている最大値は 15.0 です。

既定値: None
description
str

プロファイル実行に関連付けられる説明。

既定値: None

戻り値

説明

例外

説明
<xref:azureml.exceptions.WebserviceException>, <xref:azureml.exceptions.UserErrorException>

register

指定されたワークスペースにモデルを登録します。

static register(workspace, model_path, model_name, tags=None, properties=None, description=None, datasets=None, model_framework=None, model_framework_version=None, child_paths=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)

パラメーター

名前 説明
workspace
必須

モデルを登録するワークスペース。

model_path
必須
str

モデル資産が配置されているローカル ファイル システム上のパス。 1 つのファイルまたはフォルダーへの直接ポインターにすることができます。 フォルダーを指している場合、child_paths パラメーターを使用して、フォルダーの内容全体を使用するのではなく、Model オブジェクトとしてバンドルする個々のファイルを指定できます。

model_name
必須
str

モデルを登録する名前。

tags
dict(<xref:{str : str}>)

モデルに割り当てるキー値のタグの辞書 (省略可能)。

既定値: None
properties
dict(<xref:{str : str}>)

モデルに割り当てるキー値のプロパティの辞書 (省略可能)。 これらのプロパティはモデルの作成後に変更することはできませんが、新しいキーと値のペアを追加することは可能です。

既定値: None
description
str

モデルのテキストの説明。

既定値: None
datasets

最初の要素がデータセットとモデルのリレーションシップを記述し、2 番目の要素がデータセットであるタプルのリスト。

既定値: None
model_framework
str

登録されるモデルのフレームワーク。 Framework クラスからシステムでサポートされている定数を使用すると、一部の一般的なフレームワークのデプロイを簡略化できます。

既定値: None
model_framework_version
str

登録されるモデルのフレームワーク バージョン。

既定値: None
child_paths

フォルダーへの model_path と組み合わせて指定した場合、指定したファイルだけが Model オブジェクトにバンドルされます。

既定値: None
sample_input_dataset

登録されるモデルのサンプル入力データセット。

既定値: None
sample_output_dataset

登録されるモデルのサンプル出力データセット。

既定値: None
resource_configuration

登録されるモデルを実行するリソース構成。

既定値: None

戻り値

説明

登録済みのモデル オブジェクト。

例外

説明

注釈

登録したモデルには、モデル ファイルそのものの内容に加えて、モデルのメタデータ (モデルの説明、タグ、フレームワーク情報) も格納されます。これは、ワークスペースのモデルを管理したりデプロイしたりする際に役立ちます。 たとえばワークスペース内のモデルを一覧表示するときであれば、タグを使用してモデルを分類し、フィルターを適用することができます。

次のサンプルでは、タグと説明を指定してモデルを登録する方法を示します。


   from azureml.core.model import Model

   model = Model.register(model_path="sklearn_regression_model.pkl",
                          model_name="sklearn_regression_model",
                          tags={'area': "diabetes", 'type': "regression"},
                          description="Ridge regression model to predict diabetes",
                          workspace=ws)

完全なサンプルは、https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb から入手できます

実験の実行の結果として生成されたモデルがある場合は、それを最初にローカル ファイルにダウンロードすることなく、実行オブジェクトから直接登録できます。 これを行うには、Run クラスに記載されているように register_model メソッドを使用します。

remove_tags

このモデルのタグの辞書から、指定したキーを削除します。

remove_tags(tags)

パラメーター

名前 説明
tags
必須

削除するキーのリスト

例外

説明

serialize

この Model を JSON シリアル化された辞書に変換します。

serialize()

戻り値

説明

この Model の JSON 表現

例外

説明

update

モデルのインプレース更新を実行します。

指定したパラメーターの既存の値が置き換えられます。

update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)

パラメーター

名前 説明
tags
dict(<xref:{str : str}>)

モデルの更新に使用するタグの辞書。 これらのタグは、モデルの既存のタグを置き換えます。

既定値: None
description
str

モデルに使用する新しい説明。 この名前は、既存の名前を置き換えます。

既定値: None
sample_input_dataset

登録されるモデルに使用するサンプル入力データセット。 このサンプル入力データセットは、既存のデータセットを置き換えます。

既定値: None
sample_output_dataset

登録されるモデルに使用するサンプル出力データセット。 このサンプル出力データセットは、既存のデータセットを置き換えます。

既定値: None
resource_configuration

登録されるモデルの実行に使用するリソース構成。

既定値: None

例外

説明

update_tags_properties

モデルのタグとプロパティの更新を実行します。

update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)

パラメーター

名前 説明
add_tags
dict(<xref:{str : str}>)

追加するタグの辞書。

既定値: None
remove_tags

削除するタグ名のリスト。

既定値: None
add_properties
dict(<xref:{str : str}>)

追加するプロパティの辞書。

既定値: None

例外

説明