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)
パラメーター
- tags
- list
返された結果をフィルター処理するために使用されるタグのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']]
- properties
- list
返された結果をフィルター処理するために使用されるプロパティのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']]
- version
- int
返されるモデル バージョン。 name
パラメーターと共に指定すると、指定した名前付きモデルの特定のバージョンが返されます (存在する場合)。 version
を省略すると、モデルの最新バージョンが返されます。
- model_framework
- str
返された結果をフィルター処理するために使用されるフレームワーク名 (省略可能)。 指定した場合、指定したフレームワークに一致するモデルの結果が返されます。 使用できる値については、Framework に関するページを参照してください。
- tags
- list
返された結果をフィルター処理するために使用されるタグのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']]
- properties
- list
返された結果をフィルター処理するために使用されるプロパティのリスト (省略可能)。 結果は、指定されたリストに基づいてフィルター処理され、'key' または '[key, value]' で検索されます。 例: ['key', ['key2', 'key2 value']]
- version
- int
返されるモデル バージョン。 name
パラメーターと共に指定すると、指定した名前付きモデルの特定のバージョンが返されます (存在する場合)。 version
を省略すると、モデルの最新バージョンが返されます。
- model_framework
- str
返された結果をフィルター処理するために使用されるフレームワーク名 (省略可能)。 指定した場合、指定したフレームワークに一致するモデルの結果が返されます。 使用できる値については、Framework に関するページを参照してください。
注釈
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
- 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。
- resource_configuration
- ResourceConfiguration
この 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
- list[tuple(<xref:str :> (Dataset または DatasetSnapshot))]
データセットの目的と Dataset オブジェクトのペアを表すタプルのリスト。
例外
add_properties
このモデルのプロパティの辞書にキーと値のペアを追加します。
add_properties(properties)
パラメーター
例外
add_tags
このモデルのタグの辞書にキーと値のペアを追加します。
add_tags(tags)
パラメーター
例外
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)
パラメーター
- deployment_config
- WebserviceDeploymentConfiguration
webservice を構成するために使用される WebserviceDeploymentConfiguration。 指定されていない場合は、目的のターゲットに基づいて空の構成オブジェクトが使用されます。
- deployment_target
- ComputeTarget
Webservice をデプロイする ComputeTarget。 Azure Container Instances には関連付けられた ComputeTarget がないため、このパラメーターを None のままにして Azure Container Instances にデプロイします。
戻り値
デプロイされた webservice に対応する Webservice オブジェクト。
の戻り値の型 :
例外
deserialize
JSON オブジェクトをモデル オブジェクトに変換します。
指定したワークスペースが、モデルが登録されているワークスペースではない場合、変換は失敗します。
static deserialize(workspace, model_payload)
パラメーター
戻り値
指定された JSON オブジェクトの Model 表現。
の戻り値の型 :
例外
download
ローカル ファイル システムのターゲット ディレクトリにモデルをダウンロードします。
download(target_dir='.', exist_ok=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)
パラメーター
戻り値
モデルへのディスク上のパス。
の戻り値の型 :
例外
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)
パラメーター
- tags
- list
指定されたリストに基づいて、'key' または '[key, value]' でフィルター処理します。 例: ['key', ['key2', 'key2 value']]
- properties
- list
指定されたリストに基づいて、'key' または '[key, value]' でフィルター処理します。 例: ['key', ['key2', 'key2 value']]
- expand
- bool
true の場合、実行、データセット、実験など、すべてのサブプロパティが設定されたモデルを返します。 これを false に設定すると、多くのモデルがある場合に list() メソッドが完了するまでの時間が短縮されます。
戻り値
(オプションでフィルター処理された) モデルのリスト。
の戻り値の型 :
例外
package
Docker イメージまたは Dockerfile ビルド コンテキストの形式でモデル パッケージを作成します。
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
パラメーター
- inference_config
- InferenceConfig
モデルの操作を構成する InferenceConfig オブジェクト。 これには Environment オブジェクトが含まれる必要があります。
戻り値
ModelPackage オブジェクト。
の戻り値の型 :
例外
print_configuration
ユーザー構成を出力します。
static print_configuration(models, inference_config, deployment_config, deployment_target)
パラメーター
- deployment_config
- WebserviceDeploymentConfiguration
webservice を構成するために使用される WebserviceDeploymentConfiguration。
例外
profile
モデルをプロファイルして、リソース要件に関する推奨事項を取得します。
これは実行時間の長い操作で、データセットのサイズに応じて最大 25 分かかる場合があります。
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
パラメーター
- memory_in_gb
- float
最大のテスト インスタンスで使用するメモリの量 (GB 単位)。 10 進数を指定できます。 現在、サポートされている最大値は 15.0 です。
の戻り値の型 :
例外
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)
パラメーター
- model_path
- str
モデル資産が配置されているローカル ファイル システム上のパス。 1 つのファイルまたはフォルダーへの直接ポインターにすることができます。 フォルダーを指している場合、child_paths
パラメーターを使用して、フォルダーの内容全体を使用するのではなく、Model オブジェクトとしてバンドルする個々のファイルを指定できます。
- properties
- dict(<xref:{str : str}>)
モデルに割り当てるキー値のプロパティの辞書 (省略可能)。 これらのプロパティはモデルの作成後に変更することはできませんが、新しいキーと値のペアを追加することは可能です。
- datasets
- list[(str, AbstractDataset)]
最初の要素がデータセットとモデルのリレーションシップを記述し、2 番目の要素がデータセットであるタプルのリスト。
- model_framework
- str
登録されるモデルのフレームワーク。 Framework クラスからシステムでサポートされている定数を使用すると、一部の一般的なフレームワークのデプロイを簡略化できます。
戻り値
登録済みのモデル オブジェクト。
の戻り値の型 :
例外
注釈
登録したモデルには、モデル ファイルそのものの内容に加えて、モデルのメタデータ (モデルの説明、タグ、フレームワーク情報) も格納されます。これは、ワークスペースのモデルを管理したりデプロイしたりする際に役立ちます。 たとえばワークスペース内のモデルを一覧表示するときであれば、タグを使用してモデルを分類し、フィルターを適用することができます。
次のサンプルでは、タグと説明を指定してモデルを登録する方法を示します。
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)
パラメーター
例外
serialize
この Model を JSON シリアル化された辞書に変換します。
serialize()
戻り値
この Model の JSON 表現
の戻り値の型 :
例外
update
モデルのインプレース更新を実行します。
指定したパラメーターの既存の値が置き換えられます。
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
パラメーター
- sample_input_dataset
- AbstractDataset
登録されるモデルに使用するサンプル入力データセット。 このサンプル入力データセットは、既存のデータセットを置き換えます。
- sample_output_dataset
- AbstractDataset
登録されるモデルに使用するサンプル出力データセット。 このサンプル出力データセットは、既存のデータセットを置き換えます。
例外
update_tags_properties
モデルのタグとプロパティの更新を実行します。
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
パラメーター
例外
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示