類別 MLServer
MLServer
azureml.deploy.server.MLServer
基底:azureml.deploy.operationalization.Operationalization
本課程模組提供 ML Server 的服務實作。
驗證 (authentication)
authentication(context)
注意
雖然 Microsoft Entra ID 是 Azure Active Directory(Azure AD)的新名稱,但為了防止中斷現有的環境,Azure AD 仍會保留在某些硬式編碼元素中,例如 UI 字段、連線提供者、錯誤碼和 Cmdlet。 在本文中,這兩個名稱是可互換的。
覆寫
架構所呼叫的驗證生命週期方法。 叫用類別階層的驗證進入點。
ML Server 支援兩種形式的驗證內容:
LDAP:元組 (使用者名稱、密碼)
Azure Active Directory (AAD):dict {…}
存取權杖:str =4534535
引數
內容
驗證內容:LDAP、Azure Active Directory (AAD) 或現有的「存取權杖」字串。
HttpException
如果發生 HTTP 錯誤,則呼叫 ML Server。
create_or_update_service_pool
create_or_update_service_pool(name, version, initial_pool_size, max_pool_size, **opts)
依「名稱」和「版本」建立或更新已發佈 Web 服務的集區,並提供 ML Server 上的初始和最大集區大小。
範例︰
>>> 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
如果發生 HTTP 錯誤,則呼叫 ML Server。
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
如果發生 HTTP 錯誤,則呼叫 ML Server。
delete_service_pool
delete_service_pool(name, version, **opts)
依「名稱」和「版本」刪除 ML Server 上已發佈 Web 服務的集區。
範例︰
>>> client.delete_service_pool('regression', version = 'v1.0.0')
<Response [200]>
>>>
引數
NAME
唯一 Web 服務名稱。
version
Web 服務版本。
傳回
requests.models.Response:HTTP 狀態,指出是否已刪除服務的集區。
HttpException
如果發生 HTTP 錯誤,則呼叫 ML Server。
deploy_realtime
deploy_realtime(name, **opts)
依「名稱」和「版本」在 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 API deploy()
發佈服務
引數
NAME
Web 服務名稱。
opts
要發佈為 dict
的服務屬性。 opts 支援下列選擇性屬性:
version (str) - 定義唯一英數字元 Web 服務版本。 如果版本保留空白,則會產生唯一 GUID 作為取代。 可在作者準備好正式發佈語意版本以供共用之前的服務開發期間使用。
description (str) - 服務描述。
alias (str) - 取用函數名稱。 預設為 consume。
傳回
Service
的新執行個體,代表「已重新部署」的即時服務。
HttpException
如果發生 HTTP 錯誤,則呼叫 ML Server。
deploy_service
deploy_service(name, **opts)
依「名稱」和「版本」在 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 API 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) - 要包含的「物件」名稱和值。
models (dict) - 要包含的「模型」名稱和值。
inputs (dict) - 服務輸入結構描述,以「名稱」和「類型」表示。 支援下列類型:
int
FLOAT
字串
bool
numpy.array
numpy.matrix
pandas.DataFrame
outputs (dict) - 定義 Web 服務輸出結構描述。 如果為空白,則服務不會傳回回應值。 outputs 會定義為字典
{'x'=int}
,或是描述輸出參數名稱及其對應資料「類型」的{'x': 'int'}
。 支援下列類型:int
FLOAT
字串
bool
numpy.array
numpy.matrix
pandas.DataFrame
artifacts (list) - 要傳回的檔案成品集合。 檔案內容會編碼為 Base64 字串。
alias (str) - 取用函數名稱。 預設為 consume。 如果提供 code_fn 函數,則預設會使用該函數名稱。
傳回
Service
的新執行個體,代表「已部署」的服務。
HttpException
如果發生 HTTP 錯誤,則呼叫 ML Server。
解構函式
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
如果發生 HTTP 錯誤,則呼叫 ML Server。
get_service_pool_status
get_service_pool_status(name, version, **opts)
針對具有所提供「名稱」和「版本」的已發佈服務,取得 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
如果發生 HTTP 錯誤,則呼叫 ML Server。
initializer(http_client, config, adapters=None)
覆寫
架構所呼叫的初始化生命週期方法,已在建構期間叫用。 設定屬性並叫用類別階層的初始化設定式。
引數
http_client
跨要求管理和保存設定 (驗證、Proxy) 的 HTTP 要求工作階段。
config
全域組態。
介面卡
傳輸配接器的 dict
,以 URL 表示。
list_services
list_services(name=None, **opts)
列出 ML Server 上不同的已發佈 Web 服務。
服務「名稱」和服務「版本」是選擇性的。 此呼叫可讓您擷取下列相關服務資訊:
所有已發佈的服務
特定具名服務之所有已建立版本的服務
具名服務的特定版本
使用者可以使用這項資訊及 [get_service()](#getservice)
作業來與 Web 服務互動及取用 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
如果發生 HTTP 錯誤,則呼叫 ML Server。
realtime_service
realtime_service(name)
開始屬性的 Fluent API 鏈結,以定義即時 Web 服務。
範例︰
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)
依「名稱」和「版本」更新伺服器上現有「即時」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 API redeploy()
更新服務
引數
NAME
Web 服務名稱。
opts
要更新為 dict
的服務屬性。 opts 支援下列選擇性屬性:
version (str) - 定義 Web 服務版本。
description (str) - 服務描述。
alias (str) - 取用函數名稱。 預設為 consume。
傳回
Service
的新執行個體,代表「已重新部署」的即時服務。
HttpException
如果發生 HTTP 錯誤,則呼叫 ML Server。
redeploy_service
redeploy_service(name, **opts)
依「名稱」和「版本」更新 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 API 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) - 要包含的「物件」名稱和值。
models (dict) - 要包含的「模型」名稱和值。
inputs (dict) - 服務輸入結構描述,以「名稱」和「類型」表示。 支援下列類型:- 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
如果發生 HTTP 錯誤,則呼叫 ML Server。
服務
service(name)
開始屬性的 Fluent API 鏈結,以定義標準 Web 服務。
範例︰
client.service('scoring')
.description('A new web service')
.version('v1.0.0')
引數
NAME
Web 服務名稱。
傳回
Fluent API 鏈結的 ServiceDefinition
執行個體。