批次部署詳細資料 (Watson Machine Learning)
您可以使用下列任何介面來建立批次部署:
- Watson Studio 使用者介面,來自 Analytics 部署空間
- Watson Machine Learning Python 用戶端
- Watson Machine Learning REST API
資料來源
批次部署工作的輸入資料來源根據架構而不同。 輸入資料可以作為下列內容提供給批次工作:
- 行內資料 - 在此方法中,用於批次處理的輸入資料是在批次部署工作的有效負載中指定,例如,作為參數
scoring.input_data的值指定。 完成批次部署工作之後,批次部署工作的輸出會寫入至對應工作的 meta 資料參數scoring.predictions -
資料參照 - 在此方法中,用於批次處理的輸入與輸出資料可以儲存在遠端資料來源(例如 Cloud Object Storage 儲存區、SQL/非 SQL 資料庫)中,或者作為本端或受管理資料資產儲存在部署空間中。 資料參照的詳細資料包括:
-
input_data_references.type及output_data_reference.type必須是data_asset -
輸入資料的參照必須指定為部署工作有效負載的
input_data_references.location.href參數中的 /v2/assets href。 在這裡指定的資料資產可能是本端資料資產或連接的資料資產的參照。 -
如果批次部署工作的輸出資料必須持續保存在遠端資料來源中,則輸出資料的參照必須指定為部署工作有效負載的
output_data_reference.location.href參數中的 /v2/assets href。 -
如果批次部署工作的輸出資料必須作為本端資產持續保存在部署空間中,則必須指定
output_data_reference.location.name。 順利完成批次部署工作之後,將會在空間中建立指定名稱的資產。 -
如果輸出資料參照了資料資產在遠端資料庫中的位置,您可以指定批次輸出是否應該附加至表格,或者是否要截斷表格並更新輸出資料。 使用
output_data_references.location.write_mode參數來指定truncate或append的值。 請注意下列事項:- 指定
truncate值將截斷表格並插入批次輸出資料。 - 指定
append值會將批次輸出資料附加至遠端資料庫表格。 write_mode僅適用於output_data_references參數。write_mode僅適用於與遠端資料庫相關的資料資產。 此參數不適用於本端資料資產或 COS 型資料資產。
- 指定
-
所有輸入和輸出資料資產參照都必須使用與批次部署相同的空間 ID。
-
如果連接的資料資產參照 Cloud Object Storage 實例作為來源,例如 Cloud Object Storage 儲存區中的檔案,則您必須為 COS 儲存區提供 HMAC 認證。 在 IBM Cloud Object Storage 連線中包含「存取金鑰」及「秘密金鑰」以便能夠存取已儲存的檔案。
-
使用來自 Cloud Object Storage 連線的資料
- 透過將連線新增至專案或空間,然後選取 Cloud Object Storage(基礎架構)作為連線類型,來建立與 IBM Cloud Object Storage 的連線。 提供秘密金鑰、存取金鑰和登入 URL。
- 使用您建立的 COS 連線,將輸入及輸出檔案新增至部署空間作為已連接的資料。
使用來自 Storage volume (NFS) 連線的資料
如需使用來自網路式檔案系統的資料的相關詳細資料,請參閱儲存磁區連線。
為批次部署工作指定計算需求
批次部署的計算配置是指配置給工作的 CPU 及記憶體大小。 此資訊必須在下列其中一項內容的 hardware_spec API 參數中指定:
- 部署有效負載
- 部署工作有效負載。
如果是執行 AutoAI 模型的批次部署,則必須在 hybrid_pipeline_hardware_specs 參數(而非 hardware_spec 參數)中指定計算配置。
計算配置必須是預先定義的硬體規格的參照。 您可以將硬體規格的 ID 或名稱與 hardware_spec 或 hybrid_pipeline_hardware_specs(適用於 AutoAI)搭配使用,按名稱或 ID 來指定硬體規格。 預先定義的硬體規格的相關清單及詳細資料可以透過 Watson Machine Learning Python 用戶端或 Watson Machine Learning REST API 來存取。
預先定義的硬體規格
有一些依機型提供的預先定義的硬體規格。
Watson Machine Learning 模型
| 大小 | 硬體定義 |
|---|---|
| XS | 1 個 CPU 和 4 GB RAM |
| S | 2 個 CPU 和 8 GB RAM |
| M | 4 個 CPU 和 16 GB RAM |
| ML | 4 個 CPU 和 32 GB RAM |
| L | 8 個 CPU 和 32 GB RAM |
| XL | 8 個 CPU 和 64 GB RAM |
Decision Optimization
| 大小 | 硬體定義 |
|---|---|
| S | 2 個 CPU 和 8 GB RAM |
| M | 4 個 CPU 和 16 GB RAM |
| XL | 16 個 CPU 和 64 GB RAM |
具有結合資料的 AutoAI
附註:只有在部署使用結合資料集的 AutoAI 模型時,才適用這些硬體定義。 對於具有單一資料集的 AutoAI 模型,請使用 Watson Machine Learning 模型的硬體定義。
|大小|硬體定義|
|—|—|
|XS-Spark|1 顆 CPU 和 4 GB RAM、1 個主要節點 + 2 個工作者節點|
|S-Spark|2 顆 CPU 和 8 GB RAM、1 個主要節點 + 2 個工作者節點|
|M-Spark|4 顆 CPU 和 16 GB RAM、1 個主要節點 + 2 個工作者節點|
|L-Spark|4 顆 CPU 和 32 GB RAM、1 個主要節點 + 2 個工作者節點|
|XL-Spark|8 顆 CPU 和 32 GB RAM、1 個主要節點 + 2 個工作者節點|
批次部署工作的提交步驟(概觀)
- 建立批次類型的部署。
- 提交參照批次部署的部署工作。
- 透過 Watson Machine Learning Python 用戶端、REST API 或部署空間使用者介面,藉由查詢對應部署工作的詳細資料來輪詢部署工作的狀態。
佇列作業與並行工作執行
每一個部署可以執行的並行工作數量上限由部署服務在內部處理。 每個批次部署最多可以同時執行兩個工作。 要求進行特定批次部署並且已有兩個工作正在執行的任何部署工作,都將放入佇列以供後續執行。 完成任何執行中的工作之後,系統將會挑選佇列中的下一個工作來執行。 佇列大小沒有上限。
保留部署工作 meta 資料
與工作相關的 meta 資料將會持續保存,您可以存取尚未刪除的工作及其部署。
依架構列出的輸入詳細資料
請參閱模型類型,以詳細瞭解支援將哪些類型的資料作為批次工作的輸入。
- Decision Optimization
- Spark
- SPSS
- AutoAI
- Scikit-Learn & XGBoost
- Keras
- Pytorch
- Python 函數
- Python Script
- R Script
Decision Optimization
類型:資料參照
資料來源:
行內資料:
- 行內輸入資料會轉換成 CSV 檔案供引擎使用。
- 引擎的 CSV 輸出資料會轉換成輸出行內資料。
- 不支援原始資料。
部署空間中的本端/受管理資產:
- 資料參照類型必須是
data_asset - wdp-connect-library 支援的輸入檔型表格式資料(例如 CSV、XLS、XLSX、JSON)將轉換成 CSV 檔供引擎使用。
- 輸出會另存為 CSV 檔。
- 不支援使用原始資料作為輸入或輸出資料。
- 可以更新或建立受管理資產。 建立受管理資產時,您可以為已建立的資產設定名稱和說明。
- 不支援 ZIP 檔。
部署空間中具有來源(例如 Cloud Object Storage、Db2 或儲存磁區 (NFS))的已連接(遠端)資產
- 資料參照類型必須是
data_asset - 當資料來源是 SQL 資料庫連線時,表格資料便會轉換成 CSV 檔案供引擎使用。
- 使用
wdp-connect-library的輸出 CSV 檔隨後將轉換成表格的 SQL insert 指令。 - 輸出表格可以截斷也可以附加。 預設情況下會使用截斷模式。
附註:
- 資料參照類型必須為 s3 或 Db2(這也適用於 output_data_reference。)
- 必須在部署工作有效負載中的
input_data_references.connection參數中指定 s3 或 Db2 資料來源的連線詳細資料。 - 位置詳細資料(例如表格名稱、儲存區名稱或路徑)必須在部署工作有效負載的
input_data_references.location.path參數中指定。 - 如果資料必須透過 URL 存取,則資料參照類型必須為 URL。
- 連線詳細資料(例如 REST 方法、URL 及其他必要參數)必須在部署工作有效負載的
input_data_references.connection參數中指定。 - 支援輸入及輸出原始資料。
- 必須在部署工作有效負載中的
- 如果資料必須透過 URL 存取,則資料參照類型必須是
url。- 連線詳細資料(例如 REST 方法、URL 及其他必要參數)必須在部署工作有效負載的
input_data_references.connection參數中指定。 - 容許使用帶有關聯 REST 標頭的 URL 來存取輸入及輸出資料參照的原始資料。
- 連線詳細資料(例如 REST 方法、URL 及其他必要參數)必須在部署工作有效負載的
- 您可以在 ID 或連線內容中使用型樣。 例如:
- 若要收集所有輸出 CSV 作為行內資料:
output_data: [ { “id”:”.*\.csv”}]` - 若要在特定 S3 資料夾
output_data_references中收集工作輸出:[ {"id":".*", "type": "s3", "connection": {...}, "location": { "bucket": "do-wml", "path": "${job_id}/${attachment_name}" }}]
- 若要收集所有輸出 CSV 作為行內資料:
- 部署工作的 Environment_variables 參數不適用。
檔案格式:
部署工作的 environment_variables 參數不適用。
Spark
類型:行內(部署工作的 environment_variables 參數不適用)
SPSS
類型:行內及資料參照
資料來源:下列資產的資料參照類型必須是 data_asset
- 空間中的本端/受管理資產
- 具有諸如下列來源的已連接(遠端)資產:
- Cloud Object Storage
- 儲存磁區 (NFS)
- Db2 Warehouse
- Db2
- Google Big-Query (googlebq)
- MySQL (mysql)
- Microsoft SQL Server (sqlserver)
- Teradata (teradata)
檔案格式:csv、xls、sas、sav
附註:
- SPSS 工作支援多個資料來源輸入及單一輸出。 如果在儲存模型時,模型 meta 資料中未提供綱目,您必須在 Watson Studio 使用者介面中,針對每一個連線手動輸入“id”並選取資料資產。 如果在模型 meta 資料中提供了綱目,系統會使用 meta 資料自動移入“id”名稱。 您只需選取 Watson Studio 中對應的“id”的資料資產。 如需詳細資料,請參閱對 SPSS 工作使用多個資料來源。
- 若要建立本端或受管理的資產作為輸出資料參照,應對
output_data_reference指定name欄位,這樣就會以指定的名稱建立資料資產。 不支援指定參照現有本端資料資產的href。 請注意,只有在 input_data_references 也參照這其中的一個來源時,才能在 output_data_references 中建立參照受支援資料庫的已連接資料資產。 - 請注意,系統會忽略輸入及輸出資料參照中提供的表格名稱。 在批次部署期間,將會使用 SPSS 模型串流中參照的表格名稱。
-
部署工作的
environment_variables參數不適用 - SQL PushBack 可讓您為原生 IBM SPSS Modeler 作業產生 SQL 陳述式,其可被後推到資料庫(亦即,在其中執行)以提高效能。 SQL Pushback 只有在 Db2 和 SQL Server 中受支援。
-
如果您要透過 Python 用戶端建立工作,則必須在 "id" 欄位中提供 SPSS 模型串流的資料節點中所參照的連線名稱,並在部署工作有效負載的輸入/輸出資料參照的 "location.href" 中提供資料資產 href。 例如,您可以建構如下所示的工作有效負載:
job_payload_ref = { client.deployments.ScoringMetaNames.INPUT_DATA_REFERENCES: [{ "id": "DB2Connection", "name": "drug_ref_input1", "type": "data_asset", "connection": {}, "location": { "href": input_asset_href1 } },{ "id": "Db2 WarehouseConn", "name": "drug_ref_input2", "type": "data_asset", "connection": {}, "location": { "href": input_asset_href2 } }], client.deployments.ScoringMetaNames.OUTPUT_DATA_REFERENCE: { "type": "data_asset", "connection": {}, "location": { "href": output_asset_href } } }
支援的輸入及輸出來源組合
您必須為 SPSS Modeler 流程輸入、批次工作輸入及輸出指定相容的來源。 如果您指定不相容的資料來源類型組合,在嘗試執行批次工作時將會發生錯誤。
對於批次工作支援下列組合:
| SPSS 模型串流輸入/輸出 | 批次部署工作輸入 | 批次部署工作輸出 |
|---|---|---|
| 檔案 | 本端/受管理或參照的資料資產(檔案) | 遠端資料資產(檔案)或名稱 |
| 資料庫 | 遠端資料資產(資料庫) | 遠端資料資產(資料庫) |
如需有關 Watson Studio 如何連接至資料的詳細資料,請參閱存取資料。
指定多個輸入
如果您要為沒有綱目的 SPSS 模型串流部署指定多個輸入,請為 input_data_references 中的每一個元素指定 ID。
如需詳細資料,請參閱對 SPSS 工作使用多個資料來源。
在此範例中,當您建立工作時,請提供 ID 給三個輸入項目:“sample_db2_conn”、“sample_teradata_conn”和“sample_googlequery_conn”,並為每一個輸入選取所需的已連接資料。
{
"deployment": {
"href": "/v4/deployments/<deploymentID>"
},
"scoring" : {
"input_data_references": [{
"id": "sample_db2_conn",
"name": "Db2 connection",
"type": "data_asset",
"connection": {},
"location": {
"href": "/v2/assets/<asset_id>?space_id=<space_id>"
},
},
{
"id": "sample_teradata_conn",
"name": "Teradata connection",
"type": "data_asset",
"connection": {},
"location": {
"href": "/v2/assets/<asset_id>?space_id=<space_id>"
},
},
{
"id": "sample_googlequery_conn",
"name": "Google bigquery connection",
"type": "data_asset",
"connection": {},
"location": {
"href": "/v2/assets/<asset_id>?space_id=<space_id>"
},
}],
"output_data_references": {
"id": "sample_db2_conn"
"type": "data_asset",
"connection": {},
"location": {
"href": "/v2/assets/<asset_id>?space_id=<space_id>"
},
}
}
AutoAI
類型:行內及資料參照
資料來源:下列資產的資料參照類型必須是 data_asset
- 空間中的本端/受管理資產
- 具有來源(例如 Cloud Object Storage 或儲存磁區 (NFS))的已連接(遠端)資產
檔案格式:csv
附註:
-
部署工作的
environment_variables參數不適用。 -
如果您要在結合資料來源的位置部署模型來訓練實驗,請在建立批次部署工作時,選擇對應於每一個訓練資料來源的輸入來源。 如需此項目的範例,請參閱結合資料指導教學的部署區段。
Scikit-Learn & XGBoost
類型:行內及資料參照
資料來源:下列資產的資料參照類型必須是 data_asset
- 空間中的本端/受管理資產
- 具有來源(例如 Cloud Object Storage 或儲存磁區 (NFS))的已連接(遠端)資產
檔案格式:csv、包含 .csv 檔的 ZIP
附註:部署工作的 environment_variables 參數不適用
Tensorflow
類型:行內及資料參照
資料來源:下列資產的資料參照類型必須是 data_asset
- 空間中的本端/受管理資產
- 具有來源(例如 Cloud Object Storage 或儲存磁區 (NFS))的已連接(遠端)資產。
檔案格式:包含 JSON 檔的 ZIP
附註:部署工作的 environment_variables 參數不適用
Keras
類型:行內及資料參照
資料來源:下列資產的資料參照類型必須是 data_asset
- 空間中的本端/受管理資產
- 具有來源(例如 Cloud Object Storage 或儲存磁區 (NFS))的已連接(遠端)資產。
檔案格式:包含 JSON 檔的 ZIP
附註:部署工作的 environment_variables 參數不適用
Pytorch
類型:行內及資料參照
資料來源:下列資產的資料參照類型必須是 data_asset
- 空間中的本端/受管理資產
- 具有來源(例如 Cloud Object Storage 或儲存磁區 (NFS))的已連接(遠端)資產。
檔案格式:包含 JSON 檔的 ZIP
附註:部署工作的 environment_variables 參數不適用
Python 函數
您可以在 Watson Machine Learning 中以部署模型的相同方式部署 Python 函數。 您的工具和應用程式可以使用 Watson Machine Learning Python 用戶端或 REST API,以其傳送資料至已部署模型的相同方式將資料傳送至已部署函數。 部署函數讓您能夠隱藏詳細資料(例如認證)、在將資料傳遞至模型之前進行預先處理、執行錯誤處理,以及併入多個模型呼叫,所有上述功能都在已部署函數內而非應用程式中執行。
類型:行內
附註:
- 部署工作的
environment_variables參數不適用 - 請確定輸出已結構化為符合執行同步部署預測中所說明的輸出綱目。
Python Script
類型:資料參照
資料來源:下列資產的資料參照類型必須是 data_asset
- 空間中的本端/受管理資產
- 具有來源(例如 Cloud Object Storage 或儲存磁區 (NFS))的已連接(遠端)資產。
檔案格式:任意
附註:
- 執行 Python Script 所需要的環境變數可以指定為部署工作有效負載中的
scoring.environment_variables參數中的索引鍵-值配對。Key必須是環境變數的名稱。Value必須是對應環境變數的值。 - 部署工作有效負載的有效負載將在 Python Script 執行所在的部署儲存器中另存為 JSON 檔。 Python Script 可以使用
JOBS_PAYLOAD_FILE環境變數來存取 JSON 檔案的完整路徑檔名。 - 如果輸入資料被參照作為本端或受管理資料資產,則部署服務會將輸入資料下載至 Python Script 執行所在的部署儲存器中。 可透過
BATCH_INPUT_DIR環境變數來存取所下載輸入資料的位置(路徑)。 - 如果輸入資料是連接的資料資產,則資料下載作業必須由 Python Script 處理。 如果連接的資料資產參照位於部署工作有效負載中,則可以使用環境變數
JOBS_PAYLOAD_FILE來存取,該環境變數包含另存為 JSON 檔的部署工作有效負載的完整路徑。 - 如果輸出資料必須作為空間中的本端或受管理資料資產持續保存,則使用者可以指定要在
scoring.output_data_reference.location.name中建立的資產名稱。 輸出資料是 Python Script 的一部分,可以放置在環境變數BATCH_OUTPUT_DIR指定的路徑中。 部署服務將壓縮為 ZIP 格式,並上傳BATCH_OUTPUT_DIR中的資料。 - 如果輸出資料必須儲存在遠端資料儲存庫,則使用者必須在
output_data_reference.location.href中指定輸出資料資產(例如,連接的資料資產)的參照。 Python Script 必須將輸出資料上傳至遠端資料來源。 如果連接的資料資產參照位於部署工作有效負載中,則可以使用環境變數JOBS_PAYLOAD_FILE來存取,該環境變數包含另存為 JSON 檔的部署工作有效負載的完整路徑。 -
如果 Python Script 不需要在部署工作有效負載中指定任何輸入或輸出資料參照,則可以在部署工作有效負載中針對
input_data_references指定空物件 [{ }],並針對output_data_references指定空的 { } 物件。 - 目前不支援部署 Script 以在 Hadoop 環境中執行。
R Script
類型:資料參照
資料來源:下列資產的資料參照類型必須是 data_asset
- 空間中的本端/受管理資產
- 具有來源(例如 Cloud Object Storage 或儲存磁區 (NFS))的已連接(遠端)資產。
檔案格式:任意
附註:
- 執行 Script 所需要的環境變數可以指定為部署工作有效負載中的
scoring.environment_variables參數中的索引鍵-值配對。Key必須是環境變數的名稱。Value必須是對應環境變數的值。 - 部署工作有效負載的有效負載將在 Script 執行所在的部署儲存器中另存為 JSON 檔。 R Script 可以使用
JOBS_PAYLOAD_FILE環境變數來存取 JSON 檔案的完整路徑檔名。 - 如果輸入資料被參照作為本端或受管理資料資產,則部署服務會將輸入資料下載至 R Script 執行所在的部署儲存器中。 可透過
BATCH_INPUT_DIR環境變數來存取所下載輸入資料的位置(路徑)。 - 如果輸入資料是連接的資料資產,則資料下載作業必須由 R Script 處理。 如果連接的資料資產參照位於部署工作有效負載中,則可以使用環境變數
JOBS_PAYLOAD_FILE來存取,該環境變數包含另存為 JSON 檔的部署工作有效負載的完整路徑。 - 如果輸出資料必須作為空間中的本端或受管理資料資產持續保存,則您可以指定要在
scoring.output_data_reference.location.name中建立的資產名稱。 輸出資料是 R Script 的一部分,可以放置在環境變數BATCH_OUTPUT_DIR指定的路徑中。 部署服務將壓縮為 ZIP 格式,並上傳BATCH_OUTPUT_DIR中的資料。 - 如果輸出資料必須儲存在遠端資料儲存庫,則您必須在
output_data_reference.location.href中指定輸出資料資產(例如,連接的資料資產)的參照。 R Script 必須將輸出資料上傳至遠端資料來源。 如果連接的資料資產參照位於部署工作有效負載中,則可以使用環境變數JOBS_PAYLOAD_FILE來存取,該環境變數包含另存為 JSON 檔的部署工作有效負載的完整路徑。 - 如果 R Script 不需要在部署工作有效負載中指定任何輸入或輸出資料參照,則可以在部署工作有效負載中針對
input_data_references指定空物件 [{ }],並針對output_data_references指定空的 { } 物件。 -
目前只有在使用預設軟體規格
default_r3.6時才支援 R Script;不支援指定自訂軟體規格。 - 目前不支援部署 Script 以在 Hadoop 環境中執行。