次の方法で共有


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
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)

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


   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
str

モデル MIME の種類。

azureml.core.Model.name

モデルの名前。

model_framework
str

モデルのフレームワーク。

model_framework_version
str

モデルのフレームワーク バージョン。

azureml.core.Model.tags

Model オブジェクトのタグのディクショナリ。

azureml.core.Model.properties

モデルのキー値プロパティのディクショナリ。 登録後にこれらのプロパティを変更することはできませんが、新しいキー値ペアを追加できます。

unpack

ローカル コンテキストにプルするときに、モデルをアンパック (非ターレッド) する必要があるかどうか。

url
str

モデルの URL の場所。

azureml.core.Model.version

モデルのバージョン。

azureml.core.Model.workspace

モデルを含むワークスペース。

azureml.core.Model.experiment_name

モデルを作成した実験の名前。

azureml.core.Model.run_id

モデルを作成した実行の ID。

parent_id
str

モデルの親モデルの ID。

derived_model_ids

このモデルから派生したモデル ID の一覧。

resource_configuration

このモデルの ResourceConfiguration。 プロファイリングに使用されます。

メソッド

add_dataset_references

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

add_properties

このモデルのプロパティ ディクショナリにキー値ペアを追加します。

add_tags

このモデルのタグ ディクショナリにキー値ペアを追加します。

delete

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

deploy

0 個以上の Model オブジェクトから Web サービスをデプロイします。

結果の Web サービスは、推論要求に使用できるリアルタイム エンドポイントです。 Model deploy 関数は、deploy クラスのWebservice関数に似ていますが、モデルは登録されません。 既に登録されているモデル オブジェクトがある場合は、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

このモデルを json シリアル化ディクショナリに変換します。

update

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

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

update_tags_properties

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

add_dataset_references

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

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 オブジェクトから 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
必須
str

デプロイされたサービスに付ける名前。 ワークスペースに固有であり、小文字、数字、またはダッシュのみで構成され、文字で始まり、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

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

ダウンロードした dir/files が存在する場合に置き換えるかどうかを示します。 既定値は 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

ページで取得する項目の数。 現在、最大 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
必須

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

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

remove_tags

このモデルのタグ ディクショナリから指定したキーを削除します。

remove_tags(tags)

パラメーター

名前 説明
tags
必須

削除するキーの一覧

serialize

このモデルを json シリアル化ディクショナリに変換します。

serialize()

戻り値

説明

このモデルの 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

例外

説明