Model クラス
機械学習トレーニングの結果を表します。
モデルは、Azure Machine Learning トレーニング Runまたはその他の Azure 以外のモデル トレーニング プロセスの結果です。 モデルの生成方法に関係なく、名前とバージョンで表されるワークスペースに登録できます。 Model クラスを使用すると、Docker で使用するモデルをパッケージ化し、推論要求に使用できるリアルタイム エンドポイントとしてデプロイできます。
モデルの作成方法、管理方法、使用方法を示すエンド ツー エンドのチュートリアルについては、「 AZURE Machine Learning を使用して MNIST データと scikit-learn を使用して画像分類モデルをトレーニングする」を参照してください。
モデル コンストラクター。
Model コンストラクターは、指定されたワークスペースに関連付けられた Model オブジェクトのクラウド表現を取得するために使用されます。 名前または ID を指定する必要があります。
コンストラクター
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)
次のサンプルは、フレームワーク、入力データセットと出力データセット、およびリソース構成を指定するモデルを登録する方法を示しています。
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)
[ 変数] セクションには、クラウド モデル オブジェクトのローカル表現の属性が一覧表示されます。 これらの変数は読み取り専用と見なす必要があります。 値の変更は、対応するクラウド オブジェクトには反映されません。
変数
名前 | 説明 |
---|---|
created_by
|
モデルを作成したユーザー。 |
created_time
|
モデルが作成されたとき。 |
azureml.core.Model.description
|
Model オブジェクトの説明。 |
azureml.core.Model.id
|
モデル ID。 これは、 <model 名>:<model バージョン>の形式になります。 |
mime_type
|
モデル MIME の種類。 |
azureml.core.Model.name
|
モデルの名前。 |
model_framework
|
モデルのフレームワーク。 |
model_framework_version
|
モデルのフレームワーク バージョン。 |
azureml.core.Model.tags
|
Model オブジェクトのタグのディクショナリ。 |
azureml.core.Model.properties
|
モデルのキー値プロパティのディクショナリ。 登録後にこれらのプロパティを変更することはできませんが、新しいキー値ペアを追加できます。 |
unpack
|
ローカル コンテキストにプルするときに、モデルをアンパック (非ターレッド) する必要があるかどうか。 |
url
|
モデルの URL の場所。 |
azureml.core.Model.version
|
モデルのバージョン。 |
azureml.core.Model.workspace
|
モデルを含むワークスペース。 |
azureml.core.Model.experiment_name
|
モデルを作成した実験の名前。 |
azureml.core.Model.run_id
|
モデルを作成した実行の ID。 |
parent_id
|
モデルの親モデルの ID。 |
derived_model_ids
|
このモデルから派生したモデル ID の一覧。 |
resource_configuration
|
このモデルの ResourceConfiguration。 プロファイリングに使用されます。 |
メソッド
add_dataset_references |
指定されたデータセットをこのモデルに関連付けます。 |
add_properties |
このモデルのプロパティ ディクショナリにキー値ペアを追加します。 |
add_tags |
このモデルのタグ ディクショナリにキー値ペアを追加します。 |
delete |
関連付けられているワークスペースからこのモデルを削除します。 |
deploy |
0 個以上の Model オブジェクトから Web サービスをデプロイします。 結果の Web サービスは、推論要求に使用できるリアルタイム エンドポイントです。 Model |
deserialize |
JSON オブジェクトをモデル オブジェクトに変換します。 指定したワークスペースがモデルが登録されているワークスペースでない場合、変換は失敗します。 |
download |
ローカル ファイル システムのターゲット ディレクトリにモデルをダウンロードします。 |
get_model_path |
モデルへのパスを返します。 関数は、次の場所でモデルを検索します。
|
get_sas_urls |
ファイル名と対応する SAS URL を含むキーと値のペアのディクショナリを返します。 |
list |
オプションのフィルターを使用して、指定されたワークスペースに関連付けられているすべてのモデルの一覧を取得します。 |
package |
Docker イメージまたは Dockerfile ビルド コンテキストの形式でモデル パッケージを作成します。 |
print_configuration |
ユーザー構成を印刷します。 |
profile |
モデルをプロファイルして、リソース要件の推奨事項を取得します。 これは、データセットのサイズに応じて最大 25 分かかる実行時間の長い操作です。 |
register |
指定されたワークスペースにモデルを登録します。 |
remove_tags |
このモデルのタグ ディクショナリから指定したキーを削除します。 |
serialize |
このモデルを json シリアル化ディクショナリに変換します。 |
update |
モデルのインプレース更新を実行します。 指定したパラメーターの既存の値が置き換えられます。 |
update_tags_properties |
モデルのタグとプロパティの更新を実行します。 |
add_dataset_references
指定されたデータセットをこのモデルに関連付けます。
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 オブジェクトから Web サービスをデプロイします。
結果の Web サービスは、推論要求に使用できるリアルタイム エンドポイントです。 Model deploy
関数は、deploy
クラスのWebservice関数に似ていますが、モデルは登録されません。 既に登録されているモデル オブジェクトがある場合は、Model deploy
関数を使用します。
static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
Web サービスを関連付ける Workspace オブジェクト。 |
name
必須
|
デプロイされたサービスに付ける名前。 ワークスペースに固有であり、小文字、数字、またはダッシュのみで構成され、文字で始まり、3 ~ 32 文字の長さである必要があります。 |
models
必須
|
モデル オブジェクトの一覧。 空のリストを指定できます。 |
inference_config
|
必要なモデル プロパティを決定するために使用される InferenceConfig オブジェクト。 規定値: None
|
deployment_config
|
Web サービスの構成に使用される WebserviceDeploymentConfiguration。 指定されていない場合は、目的のターゲットに基づいて空の構成オブジェクトが使用されます。 規定値: None
|
deployment_target
|
Web サービスをデプロイする ComputeTarget 。 Azure Container Instances には ComputeTargetが関連付けられていないので、このパラメーターは None のままにして Azure Container Instances にデプロイします。 規定値: None
|
overwrite
|
指定した名前のサービスが既に存在する場合に、既存のサービスを上書きするかどうかを示します。 規定値: False
|
show_output
|
サービスのデプロイの進行状況を表示するかどうかを示します。 規定値: False
|
戻り値
型 | 説明 |
---|---|
デプロイされた Web サービスに対応する Web サービス オブジェクト。 |
例外
型 | 説明 |
---|---|
deserialize
download
ローカル ファイル システムのターゲット ディレクトリにモデルをダウンロードします。
download(target_dir='.', exist_ok=False, exists_ok=None)
パラメーター
名前 | 説明 |
---|---|
target_dir
|
モデルをダウンロードするディレクトリへのパス。 既定値は "." です。 規定値: .
|
exist_ok
|
ダウンロードした dir/files が存在する場合に置き換えるかどうかを示します。 既定値は 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
|
ページで取得する項目の数。 現在、最大 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
必須
|
Web サービスの構成に使用される WebserviceDeploymentConfiguration。 |
deployment_target
必須
|
Web サービスをデプロイする ComputeTarget 。 |
profile
モデルをプロファイルして、リソース要件の推奨事項を取得します。
これは、データセットのサイズに応じて最大 25 分かかる実行時間の長い操作です。
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
モデルをプロファイリングする 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)
実験の実行の結果として生成されたモデルがある場合は、最初にローカル ファイルにダウンロードすることなく、実行オブジェクトから直接登録できます。 そのためには、register_model クラスに記載されているRun メソッドを使用します。
remove_tags
serialize
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
|
例外
型 | 説明 |
---|---|