Model クラス

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

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

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

継承
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
Workspace
必須

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

name
str
既定値: None

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

id
str
既定値: None

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

tags
list
既定値: None

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

properties
list
既定値: None

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

version
int
既定値: None

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

run_id
str
既定値: None

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

model_framework
str
既定値: None

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

expand
既定値: 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)

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

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

変数

created_by
dict

Model を作成したユーザー。

created_time
datetime

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
bool

ローカル コンテキストにプルするときに、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
list[str]

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

resource_configuration
ResourceConfiguration

この 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
Workspace
必須

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

name
str
必須

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

models
list[Model]
必須

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

inference_config
InferenceConfig
既定値: None

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

deployment_config
WebserviceDeploymentConfiguration
既定値: None

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

deployment_target
ComputeTarget
既定値: None

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

overwrite
bool
既定値: False

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

show_output
bool
既定値: False

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

戻り値

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

の戻り値の型 :

例外

deserialize

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

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

static deserialize(workspace, model_payload)

パラメーター

workspace
Workspace
必須

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

model_payload
dict
必須

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

戻り値

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

の戻り値の型 :

例外

download

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

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

パラメーター

target_dir
str
既定値: .

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

exist_ok
bool
既定値: False

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

exists_ok
bool
既定値: None

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

戻り値

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

の戻り値の型 :

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
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
Workspace
必須

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

name
str
既定値: None

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

tags
list
既定値: None

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

properties
list
既定値: None

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

run_id
str
既定値: None

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

latest
bool
既定値: False

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

dataset_id
str
既定値: None

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

expand
bool
既定値: True

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

page_count
int
既定値: 255

1 ページに取得する項目の数。 現在、サポートされる最大値は 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
Workspace
必須

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

models
list[Model]
必須

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

inference_config
InferenceConfig
既定値: None

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

generate_dockerfile
bool
既定値: False

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

image_name
str
既定値: None

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

image_label
str
既定値: None

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

戻り値

ModelPackage オブジェクト。

の戻り値の型 :

例外

print_configuration

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

static print_configuration(models, inference_config, deployment_config, deployment_target)

パラメーター

models
list[Model]
必須

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

inference_config
InferenceConfig
必須

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

deployment_config
WebserviceDeploymentConfiguration
必須

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

deployment_target
ComputeTarget
必須

Webservice をデプロイする 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
str
必須

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

models
list[Model]
必須

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

inference_config
InferenceConfig
必須

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

input_dataset
Dataset
必須

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

cpu
float
既定値: None

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

memory_in_gb
float
既定値: None

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

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
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
list[(str, AbstractDataset)]
既定値: None

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

model_framework
str
既定値: None

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

model_framework_version
str
既定値: None

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

child_paths
list[str]
既定値: None

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

sample_input_dataset
AbstractDataset
既定値: None

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

sample_output_dataset
AbstractDataset
既定値: None

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

resource_configuration
ResourceConfiguration
既定値: 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
list[str]
必須

削除するキーのリスト

例外

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
AbstractDataset
既定値: None

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

sample_output_dataset
AbstractDataset
既定値: None

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

resource_configuration
ResourceConfiguration
既定値: 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
list[str]
既定値: None

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

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

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

例外