クラス MLServer
MLServer
azureml.deploy.server.MLServer
ベース: azureml.deploy.operationalization.Operationalization
このモジュールでは、ML Server のサービス実装が提供されます。
認証
authentication(context)
Note
Microsoft Entra ID はAzure Active Directory (Azure AD) の新しい名前ですが、既存の環境の中断を防ぐために、UI フィールド、接続プロバイダー、エラー コード、コマンドレットなど、ハードコーディングされた一部の要素でAzure AD が残ります。 この記事では、これらの 2 つの名前は入れ替えても問題ありません。
オーバーライド
フレームワークによって呼び出される認証ライフサイクル メソッド。 クラス階層の認証エントリポイントを呼び出します。
ML Server では、次の 2 つの形式の認証コンテキストがサポートされます。
LDAP: タプル (username, password)
Azure Active Directory (AAD): dict {…}
access-token: str =4534535
引数
context
認証コンテキスト: LDAP、Azure Active Directory (AAD)、または既存の access-token 文字列。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
create_or_update_service_pool
create_or_update_service_pool(name, version, initial_pool_size, max_pool_size, **opts)
name と version によって指定された ML Server の初期および最大プール サイズを使用して、発行された Web サービスのプールを作成または更新します。
例:
>>> client.create_or_update_service_pool(
'regression',
version = 'v1.0.0',
initial_pool_size = 1,
maximum_pool_size = 10)
<Response [200]>
>>>
引数
name
一意の Web サービス名。
version
Web サービスのバージョン。
initial_pool_size
Web サービスの初期プール サイズ。
max_pool_size
Web サービスの最大プール サイズ。 initial_pool_size より小さくすることはできません。
戻り値
requests.models.Response: 要求が正常に送信されたかどうかを示す HTTP 状態。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
delete_service
delete_service(name, **opts)
Web サービスを削除する。
success = client.delete_service('example', version='v1.0.1')
print(success)
True
引数
name
Web サービス名。
opts
Web サービスのバージョン (version='v1.0.1)。
戻り値
サービスの削除が成功したことを示す bool
。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
delete_service_pool
delete_service_pool(name, version, **opts)
name と version によって、ML Server で発行された Web サービスのプールを削除します。
例:
>>> client.delete_service_pool('regression', version = 'v1.0.0')
<Response [200]>
>>>
引数
name
一意の Web サービス名。
version
Web サービスのバージョン。
戻り値
requests.models.Response: サービスのプールが削除された場合、HTTP 状態。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
deploy_realtime
deploy_realtime(name, **opts)
name と version によって ML Server で新しい "リアルタイム" Web サービスを発行します。
すべての入力と出力の型は pandas.DataFrame
として定義されます。
例:
model = rx_serialize_model(model, realtime_scoring_only=True)
opts = {
'version': 'v1.0.0',
'description': 'Real-time service description.',
'serialized_model': model
}
service = client.deploy_realtime('scoring', **opts)
df = movie_reviews.as_df()
res = service.consume(df)
answer = res.outputs
注意
この方法で deploy_realtime() を使用するのは、fluent APIS deploy()
を使用してサービスを発行するのと同じです
引数
name
Web サービス名。
opts
dict
として発行するサービス プロパティ。 opts では次の省略可能なプロパティがサポートされます。
version (str) - 一意の英数字の Web サービスのバージョンを定義します。 バージョンが空白のままの場合は、一意の guid が代わりに生成されます。 サービス開発中に、作成者がセマンティック バージョンを正式に公開して共有する準備が整う前に役立ちます。
description (str) - サービスの説明。
alias (str) - 使用関数名。 既定値は consume です。
戻り値
"再デプロイされた" リアルタイム サービスを表す Service
の新しいインスタンス。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
deploy_service
deploy_service(name, **opts)
name と version によって ML Server で新しい Web サービスを発行します。
例:
opts = {
'version': 'v1.0.0',
'description': 'Service description.',
'code_fn': run,
'init_fn': init,
'objects': {'local_obj': 50},
'models': {'model': 100},
'inputs': {'x': int},
'outputs': {'answer': float},
'artifacts': ['histogram.png'],
'alias': 'consume_service_fn_alias'
}
service = client.deploy('regression', **opts)
res = service.consume_service_fn_alias(100)
answer = res.output('answer')
histogram = res.artifact('histogram.png')
注意
この方法で deploy_service()
を使用するのは、fluent APIS deploy()
を使用してサービスを発行するのと同じです。
引数
name
一意の Web サービス名。
opts
発行するサービス プロパティ。 opts dict では次の省略可能なプロパティがサポートされます。
version (str) - 一意の英数字の Web サービスのバージョンを定義します。 バージョンが空白のままの場合は、一意の guid が代わりに生成されます。 サービス開発中に、作成者がセマンティック バージョンを正式に公開して共有する準備が整う前に役立ちます。
description (str) - サービスの説明。
code_str (str) - 実行および評価する Python コードのブロック。
init_str (str) - サービスを初期化する Python コードのブロック。
code_fn (function) - 実行および評価する関数。
init_fn (function) - サービスを初期化する関数。
objects (dict) - 含める objects の名前と値。
models (dict) - 含める models の名前と値。
inputs (dict) - name と type によるサービス入力スキーマ。 次の種類がサポートされています。
INT
float
str
bool
numpy.array
numpy.matrix
pandas.DataFrame
outputs (dict) - Web サービスの出力スキーマを定義します。 空の場合、サービスによって応答値が返されません。 outputs は、出力パラメーター名とそれに対応するデータ "型" を記述するディクショナリ
{'x'=int}
または{'x': 'int'}
として定義されます。 次の種類がサポートされています。INT
float
str
bool
numpy.array
numpy.matrix
pandas.DataFrame
artifacts (list) - 返されるファイル成果物のコレクション。 ファイルの内容は、"Base64 文字列" としてエンコードされます。
alias (str) - 使用関数名。 既定値は consume です。 code_fn 関数が指定された場合は、既定でその関数名が使用されます。
戻り値
"デプロイ済みの" サービスを表す Service
の新しいインスタンス。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
デストラクター
destructor()
オーバーライド
フレームワークによって呼び出される破棄ライフサイクル メソッド。 クラス階層のデストラクターを呼び出します。
get_service
get_service(name, **opts)
使用する Web サービスを取得します。
service = client.get_service('example', version='v1.0.1')
print(service)
<ExampleService>
...
...
...
引数
name
Web サービス名。
opts
省略可能な Web サービスのバージョン。 version=None
の場合は、最新のサービスが返されます。
戻り値
Service
の新しいインスタンス。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
get_service_pool_status
get_service_pool_status(name, version, **opts)
指定された name と version を使用して、発行済みサービスに関する ML Server の各計算ノードのプールの状態を取得します。
例:
>>> client.create_or_update_service_pool(
'regression',
version = 'v1.0.0',
initial_pool_size = 5,
maximum_pool_size = 5)
<Response [200]>
>>> client.get_service_pool_status('regression', version = 'v1.0.0')
[{'computeNodeEndpoint': 'http://localhost:12805/', 'status': 'Pending'}]
>>> client.get_service_pool_status('regression', version = 'v1.0.0')
[{'computeNodeEndpoint': 'http://localhost:12805/', 'status': 'Success'}]
引数
name
一意の Web サービス名。
version
Web サービスのバージョン。
戻り値
str: デプロイされたサービスの各計算ノードのプールの状態を表す json。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
initializer(http_client, config, adapters=None)
オーバーライド
フレームワークによって、構築時に呼び出される初期化ライフサイクル メソッド。 属性を設定し、クラス階層の初期化子を呼び出します。
引数
http_client
要求間で設定を管理および保持する HTTP 要求セッション (認証、プロキシ)。
config
グローバル構成。
アダプター
URL によるトランスポート アダプターの dict
。
list_services
list_services(name=None, **opts)
ML Server で発行済みのさまざまな Web サービスを一覧表示します。
サービスの name とサービスの version は省略可能です。 この呼び出しにより、次に関するサービス情報を取得できます。
発行されたすべてのサービス
特定の名前付きサービスのすべてのバージョン管理されたサービス
名前付きサービスの特定のバージョン
ユーザーは、この情報を [get_service()](#getservice)
操作と共に使用して、Web サービスとの対話および使用を行うことができます。
例:
all_services = client.list_services()
all_versions_of_add_service = client.list_services('add-service')
add_service_v1 = client.list_services('add-service', version='v1')
引数
name
Web サービス名。
opts
省略可能な Web サービスのバージョン。
戻り値
サービス メタデータの list
。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
realtime_service
realtime_service(name)
"リアルタイム" Web サービスを定義するためのプロパティの fluent API チェーンを開始します。
例:
client.realtime_service('scoring')
.description('A new real-time web service')
.version('v1.0.0')
引数
name
Web サービス名。
戻り値
fluent API チェーン用の RealtimeDefinition
インスタンス。
redeploy_realtime
redeploy_realtime(name, **opts)
name と version によってサーバー上の既存の "リアルタイム" Web サービスのプロパティを更新します。 version=None
の場合は、最新のサービスが更新されます。
すべての入力と出力の型は pandas.DataFrame
として定義されます。
例:
model = rx_serialize_model(model, realtime_scoring_only=True)
opts = {
'version': 'v1.0.0',
'description': 'Real-time service description.',
'serialized_model': model
}
service = client.redeploy_realtime('scoring', **opts)
df = movie_reviews.as_df()
res = service.consume(df)
answer = res.outputs
注意
この方法で redeploy_realtime() を使用するのは、fluent APIS redeploy()
を使用してサービスを更新するのと同じです
引数
name
Web サービス名。
opts
dict
として更新するサービス プロパティ。 opts では次の省略可能なプロパティがサポートされます。
version (str) - Web サービスのバージョンを定義します。
description (str) - サービスの説明。
alias (str) - 使用関数名。 既定値は consume です。
戻り値
"再デプロイされた" リアルタイム サービスを表す Service
の新しいインスタンス。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
redeploy_service
redeploy_service(name, **opts)
name と version によって ML Server で既存の Web サービスのプロパティを更新します。 version=None
の場合は、最新のサービスが更新されます。
例:
opts = {
'version': 'v1.0.0',
'description': 'Service description.',
'code_fn': run,
'init_fn': init,
'objects': {'local_obj': 50},
'models': {'model': 100},
'inputs': {'x': int},
'outputs': {'answer': float},
'artifacts': ['histogram.png'],
'alias': 'consume_service_fn_alias'
}
service = client.redeploy('regression', **opts)
res = service.consume_service_fn_alias(100)
answer = res.output('answer')
histogram = res.artifact('histogram.png')
注意
この方法で redeploy_service() を使用するのは、fluent APIS redeploy()
を使用してサービスを更新するのと同じです
引数
name
Web サービス名。
opts
dict
として更新するサービス プロパティ。 opts では次の省略可能なプロパティがサポートされます。
version (str) - 一意の英数字の Web サービスのバージョンを定義します。 バージョンが空白のままの場合は、一意の guid が代わりに生成されます。 サービス開発中に、作成者がセマンティック バージョンを正式に公開して共有する準備が整う前に役立ちます。
description (str) - サービスの説明。
code_str (str) - 実行および評価する Python コードのブロック。
init_str (str) - サービスを初期化する Python コードのブロック。
code_fn (function) - 実行および評価する関数。
init_fn (function) - サービスを初期化する関数。
objects (dict) - 含める objects の名前と値。
models (dict) - 含める models の名前と値。
inputs (dict) - name と type によるサービス入力スキーマ。 次の型がサポートされています: - int - float - str - bool - numpy.array - numpy.matrix - pandas.DataFrame
outputs (dict) - Web サービスの出力スキーマを定義します。 空の場合、サービスによって応答値が返されません。 outputs は、出力パラメーター名とそれに対応するデータ "型" を記述するディクショナリ
{'x'=int}
または{'x': 'int'}
として定義されます。 次の型がサポートされています: - int - float - str - bool - numpy.array - numpy.matrix - pandas.DataFrameartifacts (list) - 返されるファイル成果物のコレクション。 ファイルの内容は、"Base64 文字列" としてエンコードされます。
alias (str) - 使用関数名。 既定値は consume です。 code_fn 関数が指定された場合は、既定でその関数名が使用されます。
戻り値
"デプロイ済みの" サービスを表す Service
の新しいインスタンス。
HttpException
ML Server の呼び出しで HTTP エラーが発生した場合。
サービス (service)
service(name)
"標準" Web サービスを定義するためのプロパティの fluent API チェーンを開始します。
例:
client.service('scoring')
.description('A new web service')
.version('v1.0.0')
引数
name
Web サービス名。
戻り値
fluent API チェーン用の ServiceDefinition
インスタンス。