次の方法で共有


クラス 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)

nameversion によって指定された 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)

nameversion によって、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)

nameversion によって 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)

nameversion によって 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) - nametype によるサービス入力スキーマ。 次の種類がサポートされています。

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

指定された nameversion を使用して、発行済みサービスに関する 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)

nameversion によってサーバー上の既存の "リアルタイム" 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)

nameversion によって 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) - nametype によるサービス入力スキーマ。 次の型がサポートされています: - 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 エラーが発生した場合。

サービス (service)

service(name)

"標準" Web サービスを定義するためのプロパティの fluent API チェーンを開始します。

例:

client.service('scoring')
   .description('A new web service')
   .version('v1.0.0')

引数

name

Web サービス名。

戻り値

fluent API チェーン用の ServiceDefinition インスタンス。