批次端點可讓您對大量資料執行長批次作業。 資料可以位於不同的位置,例如分散的區域。 某些類型的批次端點也可以接收常值參數作為輸入。
本文說明如何為批次端點指定參數輸入,以及如何建立部署作業。 此流程支援使用不同類型的資料。 如需一些範例,請參閱了解輸入和輸出。
必要條件
若要成功叫用批次端點並建立作業,請確定您已完成下列必要條件:
批次端點和部署。 如果您沒有這些資源,請參閱在批次端點中部署用於評分的模型 (英文) 以建立部署。
執行批次端點部署的權限。 [AzureML 資料科學家]、[參與者] 和 [擁有者] 角色可用來執行部署。 如需自訂角色定義,請參閱批次端點上的授權 (英文),以檢閱所需的具體權限。
有效的 Microsoft Entra ID 權杖,代表要叫用端點的安全性主體。 此主體可以是使用者主體或服務主體。 在您叫用端點後,Azure Machine Learning 會在與權杖相關聯的身分識別下建立批次部署作業。 您可以使用自己的認證進行叫用,如下列程序所述。
使用 Azure CLI,以互動式或裝置代碼驗證來進行登入:
az login
使用適用於 Python 的 Azure Machine Learning SDK 登入:
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient.from_config(DefaultAzureCredential())
如果您的設定會在 Azure Machine Learning Compute 外部執行,則必須指定端點部署所在的工作區:
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
subscription_id = "<subscription>"
resource_group = "<resource-group>"
workspace = "<workspace>"
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace)
若要取得使用者帳戶的有效權杖,最簡單的方法便是使用 Azure CLI。 在主控台中,執行下列 Azure CLI 命令:
az account get-access-token --resource https://ml.azure.com --query "accessToken" --output tsv
提示
使用 REST 時,建議您使用服務主體來叫用批次端點。 如需詳細資訊,請參閱使用服務主體 (REST) 執行作業 (英文),以了解如何取得服務主體 (具有 REST) 的權杖。
若要深入了解如何使用不同類型的認證來啟動批次部署作業,請參閱如何使用不同類型的認證來執行作業 (英文)。
部署端點的計算叢集具有讀取輸入資料的存取權限。
提示
若您使用無認證資料存放區或外部 Azure 儲存體帳戶作為資料輸入,請確定您有設定用於資料存取的計算叢集 (英文)。 計算叢集的受控識別可用於掛接和設定資料存放區。 系統仍會使用作業 (invoker) 的身分識別來讀取基礎資料,這可讓您實現細微的存取控制。
建立作業基本概念
若要從批次端點建立作業,請叫用端點。 您可以使用 Azure CLI、適用於 Python 的 Azure Machine Learning SDK 或 REST API 呼叫來完成調用。 下列範例顯示批次端點的調用基本概念,這些端點會接收單一輸入資料資料夾進行處理。 如需不同輸入和輸出的範例,請參閱了解輸入和輸出。
使用批次端點底下的 invoke
作業:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data
使用 MLClient.batch_endpoints.invoke()
方法來指定實驗的名稱:
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
inputs={
"heart_dataset": Input("https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data")
}
)
對端點的調用 URL 提出 POST
要求。 您可以在端點的詳細資料頁面上,從 Azure Machine Learning 入口網站取得叫用 URL。
本文
{
"properties": {
"InputData": {
"heart_dataset": {
"JobInputType" : "UriFolder",
"Uri": "https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
}
}
}
}
要求
POST jobs HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
叫用特定部署
批次端點可在相同端點下裝載多個部署。 除非使用者另有指定,否則會使用預設端點。 您可以變更部署以與下列程序搭配使用。
使用引數 --deployment-name
或 -d
指定部署名稱:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--deployment-name $DEPLOYMENT_NAME \
--input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data
使用參數 deployment_name
指定部署名稱:
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
deployment_name=deployment.name,
inputs={
"heart_dataset": Input("https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data")
}
)
將標頭 azureml-model-deployment
新增至要求,並納入您要叫用的部署名稱:
本文
{
"properties": {
"InputData": {
"heart_dataset": {
"JobInputType" : "UriFolder",
"Uri": "https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
}
}
}
}
要求
POST jobs HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
azureml-model-deployment: DEPLOYMENT_NAME
您可以在叫用時,在建立的作業中設定部分屬性。
注意
設定作業屬性的功能目前僅適用於具有管線元件部署的批次端點。
使用下列程序來設定實驗名稱。
使用引數 --experiment-name
來指定實驗的名稱:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--experiment-name "my-batch-job-experiment" \
--input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data
使用參數 experiment_name
來指定實驗的名稱:
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
experiment_name="my-batch-job-experiment",
inputs={
"heart_dataset": Input("https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"),
}
)
使用 properties
區段中的 experimentName
索引鍵來指出實驗名稱:
本文
{
"properties": {
"InputData": {
"heart_dataset": {
"JobInputType" : "UriFolder",
"Uri": "https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
}
},
"properties":
{
"experimentName": "my-batch-job-experiment"
}
}
}
要求
POST jobs HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
批次端點提供持久的 API,供取用者用於建立批次工作。 相同的介面可用於指定部署預期的輸入和輸出。 使用輸入傳遞端點執行作業所需的任何資訊。
批次端點支援兩種類型的輸入:
- 資料輸入:特定儲存位置或 Azure Machine Learning 資產的指標。
- 常值輸入:您想要傳遞至作業的常值 (例如數字或字串)。
輸入和輸出的數目與類型取決於批次部署類型。 模型部署一律需要一個資料輸入,並產生一個資料輸出。 不支援常值輸入。 不過,管線元件部署提供更一般建構來建置端點,還可讓您指定任意數目的輸入 (資料和常值) 和輸出。
下表概述批次部署的輸入和輸出:
提示
輸入和輸出一律會命名。 名稱可作為索引鍵來識別資料,並在叫用期間傳遞實際值。 由於模型部署一律只需要一個輸入和輸出,因此在叫用期間會忽略名稱。 您可以指派最能描述使用案例的名稱,例如「sales_estimation」。
資料輸入亦即指向資料存放位置的輸入。 由於批次端點通常會耗用大量資料,因此您無法在叫用要求中傳遞輸入資料。 相反地,您可以指定批次端點應前往尋找資料的位置。 在目標計算上掛接及串流輸入資料,藉此改善效能。
批次端點支援讀取位於下列儲存體選項中的檔案:
- Azure Machine Learning 資料資產,包括資料夾 (
uri_folder
) 和檔案 (uri_file
)。
- Azure Machine Learning 資料存放區,包括 Azure Blob 儲存體、Azure Data Lake Storage Gen1 和 Azure Data Lake Storage Gen2。
- Azure 儲存體帳戶,包括 Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2 和 Azure Blob 儲存體。
- 本機資料資料夾/檔案 (Azure Machine Learning CLI 或適用於 Python 的 Azure Machine Learning SDK)。 不過,該作業會導致本機資料上傳至您所處理工作區的預設 Azure Machine Learning 資料存放區。
重要
取代注意事項:FileDataset
(V1) 型別的資料集已被取代,未來將會淘汰。 依賴這項功能的現有批次端點可繼續運作。 使用 GA CLIv2 (2.4.0 和更新版本) 或 GA REST API (2022-05-01 和更新版本) 所建立的批次端點,則不會支援 V1 資料集。
常值輸入亦即可在叫用期間表示及解析的輸入,例如字串、數字和布林值。 您通常會使用常值輸入將參數傳遞至端點,作為管線元件部署的一部分。 批次端點支援下列常值類型:
string
boolean
float
integer
僅限於管線元件部署中支援常值輸入。 請參閱使用常值輸入建立作業,了解如何指定它們。
探索資料輸出
資料輸出亦即應該存放批次工作結果的位置。 每個輸出都有識別名稱,而且 Azure Machine Learning 會自動為每個具名輸出指派唯一的路徑。 您可以視需要指定另一個路徑。
重要
批次端點僅支援在 Azure Blob 儲存體資料存放區中寫入輸出。 如果您需要寫入已啟用階層式命名空間的儲存體帳戶 (也稱為 Azure Datalake Gen2 或 ADLS Gen2),則可以將儲存體服務註冊為 Azure Blob 儲存體資料存放區,因為這些服務會完全相容。 如此一來,您就可以將批次端點的輸出寫入 ADLS Gen2。
下列範例展示如何建立作業、從資料資產、資料存放區及 Azure 儲存體帳戶中取得資料輸入。
Azure Machine Learning 資料資產 (先前稱為資料集) 支援做為作業的輸入。 請遵循下列步驟,使用儲存於 Azure Machine Learning 中已註冊資料資產的資料來執行批次端點作業。
警告
目前不支援 Table 型別 (MLTable
) 的資料資產。
首先,建立資料資產。 此資料資產包含一個具有多個 CSV 檔案的資料夾,您可以使用批次端點進行平行處理。 若您的資料已註冊為資料資產,則可略過此步驟。
在 YAML
中建立資料資產定義:
heart-dataset-unlabeled.yml
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: heart-dataset-unlabeled
description: An unlabeled dataset for heart classification.
type: uri_folder
path: heart-classifier-mlflow/data
然後,建立資料資產:
az ml data create -f heart-dataset-unlabeled.yml
建立資料資產定義:
data_path = "heart-classifier-mlflow/data"
dataset_name = "heart-dataset-unlabeled"
heart_dataset_unlabeled = Data(
path=data_path,
type=AssetTypes.URI_FOLDER,
description="An unlabeled dataset for heart classification",
name=dataset_name,
)
建立資料資產:
ml_client.data.create_or_update(heart_dataset_unlabeled)
若要取得剛建立的資料資產,請使用下列命令:
heart_dataset_unlabeled = ml_client.data.get(name=dataset_name, label="latest")
使用 Azure Machine Learning CLI、適用於 Python 的 Azure Machine Learning SDK 或 Azure Machine Learning 工作室,取得位置 (區域)、工作區及資料資產名稱與版本。 您需要這些項目以供後續程序使用。
建立輸入或要求:
DATASET_ID=$(az ml data show -n heart-dataset-unlabeled --label latest | jq -r .id)
input = Input(path=heart_dataset_unlabeled.id)
本文
{
"properties": {
"InputData": {
"heart_dataset": {
"JobInputType" : "UriFolder",
"Uri": "azureml://locations/<location>/workspaces/<workspace>/data/<dataset_name>/versions/labels/latest"
}
}
}
}
資料資產識別碼看起來會像 /subscriptions/<subscription>/resourcegroups/<resource-group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace>/data/<data-asset>/versions/<version>
。 您也可以使用 azureml:<datasset_name>@latest
格式來指定輸入。
執行端點:
請使用 --set
引數指定輸入:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--set inputs.heart_dataset.type="uri_folder" inputs.heart_dataset.path=$DATASET_ID
針對提供模型部署服務的端點,您可以使用 --input
引數來指定資料輸入,因為模型部署一律只需要一個資料輸入。
az ml batch-endpoint invoke --name $ENDPOINT_NAME --input $DATASET_ID
當指定多個輸入時,引數 --set
通常會產生長命令。 在這種情況下,請將輸入放在 YAML
檔案中,並使用 --file
引數來指定端點叫用所需的輸入。
inputs.yml
inputs:
heart_dataset: azureml:/<datasset_name>@latest
執行以下命令:
az ml batch-endpoint invoke --name $ENDPOINT_NAME --file inputs.yml
提示
叫用端點時,inputs
和 input
參數之間有何差異?
一般而言,您可以使用字典 inputs = {}
參數搭配 invoke
方法,為批次端點提供任意數目的必要輸入,其中包含模型部署或管線部署。
就模型部署而言,您可以使用 input
參數作為較簡易的方式,以指定部署的輸入資料位置。 這種方法很有用,因為模型部署只要一個資料輸入即可。
使用 inputs
參數指定所需的輸入,以呼叫 invoke
方法:
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
inputs={
"heart_dataset": input,
}
)
使用 input
參數指定輸入資料的所在位置,以進一步簡化模型部署的 invoke
呼叫:
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
input=input,
)
要求
POST jobs HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
您可以透過批次部署作業,直接參考來自 Azure Machine Learning 已註冊資料存放區的資料。 在此範例中,您可先將一些資料上傳至 Azure Machine Learning 工作區中的預設資料存放區,然後對這些資料執行批次部署。 請遵循下列步驟,使用儲存在資料存放區中的資料執行批次端點作業。
存取 Azure Machine Learning 工作區中的預設資料存放區。 如果您的資料位於不同的存放區,您可以改用該存放區。 您不必使用預設資料存放區。
DATASTORE_ID=$(az ml datastore show -n workspaceblobstore | jq -r '.id')
資料存放區識別碼看起來會像 /subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace>/datastores/<data-store>
。
default_ds = ml_client.datastores.get_default()
使用 Azure Machine Learning CLI、適用於 Python 的 Azure Machine Learning SDK 或工作室,來取得資料存放區資訊。
提示
工作區中的預設 Blob 資料存放區名稱為 workspaceblobstore。 如果您已經知道工作區中預設資料存放區的資源識別碼,則可以略過此步驟。
將一些範例資料上傳至資料存放區。
此範例假設您已將資料夾 sdk/python/endpoints/batch/deploy-models/heart-classifier-mlflow/data
中的存放庫所包含的範例資料上傳至 Blob 儲存體帳戶的資料夾 heart-disease-uci-unlabeled
中。 請務必先完成此步驟,再繼續進行。
建立輸入或要求:
將檔案路徑放在 INPUT_PATH
變數中:
DATA_PATH="heart-disease-uci-unlabeled"
INPUT_PATH="$DATASTORE_ID/paths/$DATA_PATH"
將檔案路徑放在 input
變數中:
data_path = "heart-disease-uci-unlabeled"
input = Input(type=AssetTypes.URI_FOLDER, path=f"{default_ds.id}/paths/{data_path})
如果您的資料是檔案,請將輸入類型變更為 type=AssetTypes.URI_FILE
。
本文
{
"properties": {
"InputData": {
"heart_dataset": {
"JobInputType" : "UriFolder",
"Uri": "azureml:/subscriptions/<subscription>/resourceGroups/<resource-group/providers/Microsoft.MachineLearningServices/workspaces/<workspace>/datastores/<data-store>/paths/<data-path>"
}
}
}
}
如果您的資料是檔案,請針對輸入改用 UriFile
類型。
請注意路徑 paths
的變數附加至資料存放區資源識別碼的方式。 這個格式表示後接的值是路徑。
提示
您也可以使用 azureml://datastores/<data-store>/paths/<data-path>
格式來指定輸入。
執行端點:
請使用 --set
引數指定輸入:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--set inputs.heart_dataset.type="uri_folder" inputs.heart_dataset.path=$INPUT_PATH
針對提供模型部署服務的端點,您可以使用 --input
引數來指定資料輸入,因為模型部署一律只需要一個資料輸入。
az ml batch-endpoint invoke --name $ENDPOINT_NAME --input $INPUT_PATH --input-type uri_folder
當指定多個輸入時,引數 --set
通常會產生長命令。 在這種情況下,請將輸入放在 YAML
檔案中,並使用 --file
引數來指定端點叫用所需的輸入。
inputs.yml
inputs:
heart_dataset:
type: uri_folder
path: azureml://datastores/<data-store>/paths/<data-path>
執行以下命令:
az ml batch-endpoint invoke --name $ENDPOINT_NAME --file inputs.yml
如果您的資料是檔案,請針對輸入改用 uri_file
類型。
提示
叫用端點時,inputs
和 input
參數之間有何差異?
一般而言,您可以使用字典 inputs = {}
參數搭配 invoke
方法,為批次端點提供任意數目的必要輸入,其中包含模型部署或管線部署。
就模型部署而言,您可以使用 input
參數作為較簡易的方式,以指定部署的輸入資料位置。 這種方法很有用,因為模型部署只要一個資料輸入即可。
使用 inputs
參數指定所需的輸入,以呼叫 invoke
方法:
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
inputs={
"heart_dataset": input,
}
)
使用 input
參數指定輸入資料的所在位置,以進一步簡化模型部署的 invoke
呼叫:
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
input=input,
)
要求
POST jobs HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
Azure Machine Learning 批次端點可以從 Azure 儲存體帳戶中的雲端位置讀取資料,公用和私人接可。 請使用下列步驟,透過儲存體帳戶所儲存的資料來執行批次端點作業。
若要深入了解用於從儲存體帳戶讀取資料的額外必要設定,請參閱設定用於資料存取的計算叢集 (英文)。
建立輸入或要求:
設定 INPUT_DATA
變數:
INPUT_DATA = "https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
如果您的資料是檔案,請使用下列格式來設定變數:
INPUT_DATA = "https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data/heart.csv"
設定 input
變數:
input = Input(
type=AssetTypes.URI_FOLDER,
path="https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
)
如果您的資料是檔案,請將輸入類型變更為 type=AssetTypes.URI_FILE
:
input = Input(
type=AssetTypes.URI_FILE,
path="https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data/heart.csv"
)
本文
{
"properties": {
"InputData": {
"heart_dataset": {
"JobInputType" : "UriFolder",
"Uri": "https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
}
}
}
}
如果您的資料是檔案,請將輸入類型變更為 JobInputType
:
本文
{
"properties": {
"InputData": {
"heart_dataset": {
"JobInputType" : "UriFile",
"Uri": "https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data/heart.csv"
}
}
}
}
執行端點:
請使用 --set
引數指定輸入:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--set inputs.heart_dataset.type="uri_folder" inputs.heart_dataset.path=$INPUT_DATA
針對提供模型部署服務的端點,您可以使用 --input
引數來指定資料輸入,因為模型部署一律只需要一個資料輸入。
az ml batch-endpoint invoke --name $ENDPOINT_NAME --input $INPUT_DATA --input-type uri_folder
在指定了多個輸入時,--set
引數通常會產生長命令。 在這種情況下,請將輸入放在 YAML
檔案中,並使用 --file
引數來指定端點叫用所需的輸入。
inputs.yml
inputs:
heart_dataset:
type: uri_folder
path: https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data
執行以下命令:
az ml batch-endpoint invoke --name $ENDPOINT_NAME --file inputs.yml
如果您的資料是檔案,請針對輸入改用 uri_file
類型。
提示
叫用端點時,inputs
和 input
參數之間有何差異?
一般而言,您可以使用字典 inputs = {}
參數搭配 invoke
方法,為批次端點提供任意數目的必要輸入,其中包含模型部署或管線部署。
就模型部署而言,您可以使用 input
參數作為較簡易的方式,以指定部署的輸入資料位置。 這種方法很有用,因為模型部署只要一個資料輸入即可。
使用 inputs
參數指定所需的輸入,以呼叫 invoke
方法:
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
inputs={
"heart_dataset": input,
}
)
使用 input
參數指定輸入資料的所在位置,以進一步簡化模型部署的 invoke
呼叫:
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
input=input,
)
要求
POST jobs HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
管線元件部署可接受常值輸入。 下列範例展示如何指定名為 score_mode
、類型為 string
且值為 append
的輸入:
請將輸入放在 YAML
檔案中,並使用 --file
指定端點叫用所需的輸入。
inputs.yml
inputs:
score_mode:
type: string
default: append
執行以下命令:
az ml batch-endpoint invoke --name $ENDPOINT_NAME --file inputs.yml
您也可以使用 --set
引數來指定值。 然而,在指定了多個輸入時,此方法通常會產生長命令:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--set inputs.score_mode.type="string" inputs.score_mode.default="append"
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
inputs = {
'score_mode': Input(type="string", default="append")
}
)
本文
{
"properties": {
"InputData": {
"score_mode": {
"JobInputType" : "Literal",
"Value": "append"
}
}
}
}
要求
POST jobs HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
使用資料輸出建立作業
下列範例展示如何變更名為 score
輸出的存放位置。 為求完整性,這些範例也會設定名為 heart_dataset
的輸入。
使用 Azure Machine Learning 工作區中的預設資料存放區來儲存輸出。 您可以使用工作區中的任何其他資料存放區,只要其為 Blob 儲存體帳戶即可。
DATASTORE_ID=$(az ml datastore show -n workspaceblobstore | jq -r '.id')
資料存放區識別碼看起來會像 /subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace>/datastores/<data-store>
。
default_ds = ml_client.datastores.get_default()
使用 Azure Machine Learning CLI、適用於 Python 的 Azure Machine Learning SDK 或工作室,來取得資料存放區資訊。
建立資料輸出:
設定 OUTPUT_PATH
變數:
DATA_PATH="batch-jobs/my-unique-path"
OUTPUT_PATH="$DATASTORE_ID/paths/$DATA_PATH"
為求完整性,也請建立資料輸入:
INPUT_PATH="https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
設定 output
路徑變數:
data_path = "batch-jobs/my-unique-path"
output = Output(type=AssetTypes.URI_FILE, path=f"{default_ds.id}/paths/{data_path})
為求完整性,我們也建立資料輸入:
input="https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
本文
{
"properties": {
"InputData": {
"heart_dataset": {
"JobInputType" : "UriFolder",
"Uri": "https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/data"
}
},
"OutputData": {
"score": {
"JobOutputType" : "UriFile",
"Uri": "azureml:/subscriptions/<subscription>/resourceGroups/<resource-group/providers/Microsoft.MachineLearningServices/workspaces/<workspace>/datastores/<data-store>/paths/<data-path>"
}
}
}
}
注意
請注意路徑 paths
的變數附加至資料存放區資源識別碼的方式。 這個格式表示後接的值是路徑。
執行部署:
請使用 --set
引數指定輸入:
az ml batch-endpoint invoke --name $ENDPOINT_NAME \
--set inputs.heart_dataset.path=$INPUT_PATH \
--set outputs.score.path=$OUTPUT_PATH
job = ml_client.batch_endpoints.invoke(
endpoint_name=endpoint.name,
inputs={ "heart_dataset": input },
outputs={ "score": output }
)
要求
POST jobs HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
相關內容