Model クラス
機械学習トレーニングの結果を表します。
"モデル" は、Azure Machine Learning トレーニングの Run または Azure の外部にある他のモデル トレーニング プロセスの結果です。 モデルは、生成方法に関係なく、ワークスペースに登録でき、名前とバージョンで表されます。 Model クラスを使用すると、Docker で使用するモデルをパッケージ化し、推論要求に使用できるリアルタイム エンドポイントとしてデプロイできます。
モデルの作成、管理、使用方法を示すエンドツーエンドのチュートリアルについては、Azure Machine Learning での MNIST データと scikit-learn を使用した画像分類モデルのトレーニングに関する記事をご覧ください。
モデル コンストラクター。
Model コンストラクターは、指定されたワークスペースに関連付けられている Model オブジェクトのクラウド表現を取得するために使用されます。 名前または ID を指定する必要があります。
- 継承
-
builtins.objectModel
コンストラクター
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
取得するモデルが含まれるワークスペース オブジェクト。 |
name
|
取得するモデルの名前。 指定した名前を持つ最新のモデルが返されます (存在する場合)。 規定値: None
|
id
|
取得するモデルの ID。 指定した ID を持つモデルが返されます (存在する場合)。 規定値: None
|
tags
|
返された結果をフィルター処理するために使用されるタグのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']] 規定値: None
|
properties
|
返された結果をフィルター処理するために使用されるプロパティのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']] 規定値: None
|
version
|
返されるモデル バージョン。
規定値: None
|
run_id
|
返された結果をフィルター処理するために使用される ID (省略可能)。 規定値: None
|
model_framework
|
返された結果をフィルター処理するために使用されるフレームワーク名 (省略可能)。 指定した場合、指定したフレームワークに一致するモデルの結果が返されます。 使用できる値については、Framework に関するページを参照してください。 規定値: None
|
workspace
必須
|
取得するモデルが含まれるワークスペース オブジェクト。 |
name
必須
|
取得するモデルの名前。 指定した名前を持つ最新のモデルが返されます (存在する場合)。 |
id
必須
|
取得するモデルの ID。 指定した ID を持つモデルが返されます (存在する場合)。 |
tags
必須
|
返された結果をフィルター処理するために使用されるタグのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']] |
properties
必須
|
返された結果をフィルター処理するために使用されるプロパティのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']] |
version
必須
|
返されるモデル バージョン。
|
run_id
必須
|
返された結果をフィルター処理するために使用される ID (省略可能)。 |
model_framework
必須
|
返された結果をフィルター処理するために使用されるフレームワーク名 (省略可能)。 指定した場合、指定したフレームワークに一致するモデルの結果が返されます。 使用できる値については、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
|
Model の MIME の種類。 |
azureml.core.Model.name
|
Model の名前。 |
model_framework
|
Model のフレームワーク。 |
model_framework_version
|
Model のフレームワーク バージョン。 |
azureml.core.Model.tags
|
Model オブジェクトのタグの辞書。 |
azureml.core.Model.properties
|
Model のキー値プロパティの辞書。 これらのプロパティは登録後に変更することはできませんが、新しいキーと値のペアを追加することは可能です。 |
unpack
|
ローカル コンテキストにプルするときに、Model をアンパック (展開) する必要があるかどうか。 |
url
|
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
|
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 関数 |
deserialize |
JSON オブジェクトをモデル オブジェクトに変換します。 指定したワークスペースが、モデルが登録されているワークスペースではない場合、変換は失敗します。 |
download |
ローカル ファイル システムのターゲット ディレクトリにモデルをダウンロードします。 |
get_model_path |
モデルへのパスを返します。 この関数は、次の場所でモデルを検索します。
|
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
必須
|
データセットの目的と Dataset オブジェクトのペアを表すタプルのリスト。 |
例外
型 | 説明 |
---|---|
add_properties
このモデルのプロパティの辞書にキーと値のペアを追加します。
add_properties(properties)
パラメーター
名前 | 説明 |
---|---|
properties
必須
|
dict(<xref:str : str>)
追加するプロパティの辞書。 |
例外
型 | 説明 |
---|---|
add_tags
このモデルのタグの辞書にキーと値のペアを追加します。
add_tags(tags)
パラメーター
名前 | 説明 |
---|---|
tags
必須
|
dict(<xref:{str : str}>)
追加するタグの辞書。 |
例外
型 | 説明 |
---|---|
delete
deploy
0 個以上の Model オブジェクトから Webservice をデプロイします。
結果として得られる Webservice は、推論要求に使用できるリアルタイム エンドポイントです。 Model 関数 deploy
は Webservice クラスの 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
必須
|
デプロイされたサービスに付ける名前。 ワークスペースに固有で、小文字、数字、またはダッシュのみで構成され、英字で始まり、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
|
モデルをダウンロードするディレクトリのパス。 既定値は "." です。 規定値: .
|
exist_ok
|
ダウンロードしたディレクトリまたはファイル (存在する場合) を置き換えるかどうかを示します。 既定値は False です。 規定値: False
|
exists_ok
|
非推奨。
規定値: None
|
戻り値
型 | 説明 |
---|---|
モデルのファイルまたはフォルダーのパス。 |
例外
型 | 説明 |
---|---|
get_model_path
モデルへのパスを返します。
この関数は、次の場所でモデルを検索します。
version
が None の場合:
- リモートからキャッシュにダウンロードする (ワークスペースが提供されている場合)
- キャッシュ azureml-models/$MODEL_NAME/$LATEST_VERSION/ からロードする
- ./$MODEL_NAME
version
が None ではない場合:
- キャッシュ azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/ からロードする
- リモートからキャッシュにダウンロードする (ワークスペースが提供されている場合)
static get_model_path(model_name, version=None, _workspace=None)
パラメーター
名前 | 説明 |
---|---|
model_name
必須
|
取得するモデルの名前。 |
version
|
取得するモデルのバージョン。 既定値は最新バージョンです。 規定値: None
|
_workspace
|
モデルの取得元となるワークスペース。 リモートで使用することはできません。 指定しない場合は、ローカル キャッシュのみが検索されます。 規定値: None
|
戻り値
型 | 説明 |
---|---|
モデルへのディスク上のパス。 |
例外
型 | 説明 |
---|---|
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
|
指定した場合、指定した名前を持つモデル (存在する場合) のみを返します。 規定値: None
|
tags
|
指定されたリストに基づいて、'key' または '[key, value]' でフィルター処理します。 例: ['key', ['key2', 'key2 value']] 規定値: None
|
properties
|
指定されたリストに基づいて、'key' または '[key, value]' でフィルター処理します。 例: ['key', ['key2', 'key2 value']] 規定値: None
|
run_id
|
指定された実行 ID に基づいてフィルター処理します。 規定値: None
|
latest
|
true の場合、最新バージョンのモデルのみを返します。 規定値: False
|
dataset_id
|
指定されたデータセット ID に基づいてフィルター処理します。 規定値: None
|
expand
|
true の場合、実行、データセット、実験など、すべてのサブプロパティが設定されたモデルを返します。 これを false に設定すると、多くのモデルがある場合に list() メソッドが完了するまでの時間が短縮されます。 規定値: True
|
page_count
|
1 ページに取得する項目の数。 現在、サポートされる最大値は 255 です。 既定値は 255 です。 規定値: 255
|
model_framework
|
指定した場合、指定したフレームワークを持つモデル (存在する場合) のみを返します。 規定値: 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
|
イメージをビルドするときの、結果のイメージの名前。 規定値: None
|
image_label
|
イメージをビルドするときの、結果のイメージのラベル。 規定値: 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
必須
|
プロファイル実行の名前。 |
models
必須
|
モデル オブジェクトのリスト。 空のリストにすることができます。 |
inference_config
必須
|
必須のモデル プロパティを決定するために使用される InferenceConfig オブジェクト。 |
input_dataset
必須
|
プロファイルの入力データセット。 入力データセットには 1 つの列が必要であり、サンプル入力は文字列形式である必要があります。 |
cpu
|
最大のテスト インスタンスで使用する CPU コアの数。 現在、サポートされている最大値は 3.5 です。 規定値: None
|
memory_in_gb
|
最大のテスト インスタンスで使用するメモリの量 (GB 単位)。 10 進数を指定できます。 現在、サポートされている最大値は 15.0 です。 規定値: None
|
description
|
プロファイル実行に関連付けられる説明。 規定値: 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
必須
|
モデル資産が配置されているローカル ファイル システム上のパス。 1 つのファイルまたはフォルダーへの直接ポインターにすることができます。 フォルダーを指している場合、 |
model_name
必須
|
モデルを登録する名前。 |
tags
|
dict(<xref:{str : str}>)
モデルに割り当てるキー値のタグの辞書 (省略可能)。 規定値: None
|
properties
|
dict(<xref:{str : str}>)
モデルに割り当てるキー値のプロパティの辞書 (省略可能)。 これらのプロパティはモデルの作成後に変更することはできませんが、新しいキーと値のペアを追加することは可能です。 規定値: None
|
description
|
モデルのテキストの説明。 規定値: None
|
datasets
|
最初の要素がデータセットとモデルのリレーションシップを記述し、2 番目の要素がデータセットであるタプルのリスト。 規定値: None
|
model_framework
|
登録されるモデルのフレームワーク。 Framework クラスからシステムでサポートされている定数を使用すると、一部の一般的なフレームワークのデプロイを簡略化できます。 規定値: None
|
model_framework_version
|
登録されるモデルのフレームワーク バージョン。 規定値: None
|
child_paths
|
フォルダーへの 規定値: 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
|
モデルに使用する新しい説明。 この名前は、既存の名前を置き換えます。 規定値: None
|
sample_input_dataset
|
登録されるモデルに使用するサンプル入力データセット。 このサンプル入力データセットは、既存のデータセットを置き換えます。 規定値: None
|
sample_output_dataset
|
登録されるモデルに使用するサンプル出力データセット。 このサンプル出力データセットは、既存のデータセットを置き換えます。 規定値: None
|
resource_configuration
|
登録されるモデルの実行に使用するリソース構成。 規定値: None
|
例外
型 | 説明 |
---|---|