ParallelRunConfig 類別
定義 物件的組 ParallelRunStep 態。
如需使用 ParallelRunStep 的範例,請參閱筆記本 https://aka.ms/batch-inference-notebooks 。
如需疑難排解指南,請參閱 https://aka.ms/prstsg 。 您可以在該處找到更多參考。
初始化組態物件。
- 繼承
-
azureml.pipeline.core._parallel_run_config_base._ParallelRunConfigBaseParallelRunConfig
建構函式
ParallelRunConfig(environment, entry_script, error_threshold, output_action, compute_target, node_count, process_count_per_node=None, mini_batch_size=None, source_directory=None, description=None, logging_level='INFO', run_invocation_timeout=60, run_max_try=3, append_row_file_name=None, allowed_failed_count=None, allowed_failed_percent=None, partition_keys=None, environment_variables=None)
參數
名稱 | Description |
---|---|
environment
必要
|
設定 Python 環境的環境定義。 它可以設定為使用現有的 Python 環境,或設定實驗的暫存環境。 環境定義負責定義必要的應用程式相依性,例如 conda 或 pip 套件。 |
entry_script
必要
|
將在多個節點上平行執行的使用者腳本。 這會指定為本機檔案路徑。 如果 |
error_threshold
必要
|
處理期間應該忽略的記錄失敗數目 (針對 TabularDataset) 和檔案失敗數目 (針對 FileDataset)。 如果錯誤計數高於此值,則會中止作業。 錯誤臨界值適用于整個輸入,而不是針對傳送至 run () 方法的個別迷你批次。 此範圍為 [-1, int.max]。 -1 表示忽略處理期間的所有失敗。 |
output_action
必要
|
應該如何組織輸出。 目前支援的值是 'append_row' 和 'summary_only'。
|
compute_target
必要
|
用於 ParallelRunStep 執行的計算目標。 此參數可以指定為計算目標物件或工作區中的計算目標名稱。 |
node_count
必要
|
用於執行 ParallelRunStep 的計算目標中的節點數目。 |
process_count_per_node
|
每個節點的背景工作進程數目,以平行方式執行專案腳本。
針對 GPU 電腦,預設值為 1。
針對 CPU 電腦,預設值為核心數目。
背景工作處理序會透過傳遞所取得的迷你批次來重複呼叫 預設值: None
|
mini_batch_size
|
對於 FileDataset 輸入,此欄位是使用者腳本可在一次執行 () 呼叫中處理的檔案數目。 對於 TabularDataset 輸入,此欄位是使用者腳本可在一次執行 () 呼叫中處理的大約資料大小。 範例值為 1024、1024KB、10MB 和 1GB。 (選擇性,FileDataset 的預設值為 10 個檔案,而 TabularDataset 的預設值為 1MB。) 預設值: None
|
source_directory
|
資料夾的路徑,其中包含 預設值: None
|
description
|
提供用於顯示之批次服務的描述。 預設值: None
|
logging_level
|
記錄層級名稱的字串,定義於 'logging' 中。 可能的值為 'WARNING'、'INFO'和 'DEBUG'。 (選擇性,預設值為 'INFO'。) 預設值: INFO
|
run_invocation_timeout
|
run () 方法的每個調用以秒為單位的逾時。 (選擇性,預設值為 60.) 預設值: 60
|
run_max_try
|
失敗或逾時迷你批次的最大嘗試次數。 此範圍為 [1, int.max]。 預設值是 3。 清除佇列計數大於此計數的迷你批次不會再次處理,而且會直接刪除。 預設值: 3
|
append_row_file_name
|
如果 預設值: None
|
allowed_failed_count
|
處理期間應該忽略的失敗迷你批次數目。 如果失敗的計數高於此值,作業將會中止。 此臨界值適用于整個輸入,而不是傳送至 run () 方法的個別迷你批次。 此範圍為 [-1, int.max]。 -1 表示忽略處理期間的所有失敗。 第一次處理迷你批次時可能會失敗,然後在第二次嘗試時成功。 第一次和第二次檢查會將其視為失敗。 第二次檢查不會將其視為失敗。 引數 –error_threshold、–allowed_failed_count 和 –allowed_failed_percent可以一起運作。 如果指定了一個以上,如果作業超過其中任何一項,作業將會中止。 預設值: None
|
allowed_failed_percent
|
處理期間應該忽略的失敗迷你批次百分比。 如果失敗的百分比高於此值,則會中止作業。 此臨界值適用于整個輸入,而不是傳送至 run () 方法的個別迷你批次。 此範圍為 [0, 100]。 100 或 100.0 表示忽略處理期間的所有失敗。 檢查會在排程所有迷你批次之後開始。 引數 –error_threshold、–allowed_failed_count 和 –allowed_failed_percent可以一起運作。 如果指定了一個以上,如果作業超過其中任何一項,作業將會中止。 預設值: None
|
partition_keys
|
用來將資料資料集分割成迷你批次的索引鍵。 如果指定,具有相同索引鍵的資料會分割成相同的迷你批次。 如果同時指定partition_keys和mini_batch_size,則會引發錯誤。 它應該是 str 元素的清單,每個元素都是用來分割輸入資料集的索引鍵。 不過,如果升級為 PipelineParameter,預設值應該是清單的 json 傾印 str,因為 PipelineParameter 目前不支援清單類型。 輸入 () 必須是分割資料集 () ,而partition_keys必須是每個輸入資料集的索引鍵子集,才能運作。 預設值: None
|
environment_variables
|
環境變數名稱和值的字典。 這些環境變數會在執行使用者指令碼的程序上設定。 預設值: None
|
environment
必要
|
設定 Python 環境的環境定義。 它可以設定為使用現有的 Python 環境,或設定實驗的暫存環境。 環境定義負責定義必要的應用程式相依性,例如 conda 或 pip 套件。 |
entry_script
必要
|
將在多個節點上平行執行的使用者腳本。 這會指定為本機檔案路徑。 如果 |
error_threshold
必要
|
處理期間應該忽略的記錄失敗數目 (針對 TabularDataset) 和檔案失敗數目 (針對 FileDataset)。 如果錯誤計數高於此值,則會中止作業。 錯誤臨界值適用于整個輸入,而不是針對傳送至 run () 方法的個別迷你批次。 此範圍為 [-1, int.max]。 -1 表示忽略處理期間的所有失敗。 |
output_action
必要
|
應該如何組織輸出。 目前支援的值是 'append_row' 和 'summary_only'。
|
compute_target
必要
|
用於 ParallelRunStep 執行的計算目標。 此參數可以指定為計算目標物件或工作區中的計算目標名稱。 |
node_count
必要
|
用於執行 ParallelRunStep 的計算目標中的節點數目。 |
process_count_per_node
必要
|
每個節點的背景工作進程數目,以平行方式執行專案腳本。
若為 GPU 機器,預設值為 1。
針對 CPU 電腦,預設值為核心數目。
背景工作處理序會透過傳遞所取得的迷你批次來重複呼叫 |
mini_batch_size
必要
|
對於 FileDataset 輸入,此欄位是使用者腳本可在一次執行 () 呼叫中處理的檔案數目。 對於 TabularDataset 輸入,此欄位是使用者腳本可在一次執行 () 呼叫中處理的大約資料大小。 範例值為 1024、1024KB、10MB 和 1GB。 (選擇性,FileDataset 的預設值為 10 個檔案,而 TabularDataset 的預設值為 1MB。) |
source_directory
必要
|
資料夾的路徑,其中包含 |
description
必要
|
提供用於顯示之批次服務的描述。 |
logging_level
必要
|
記錄層級名稱的字串,定義於 'logging' 中。 可能的值為 'WARNING'、'INFO'和 'DEBUG'。 (選擇性,預設值為 'INFO'。) |
run_invocation_timeout
必要
|
run () 方法的每個調用以秒為單位的逾時。 (選擇性,預設值為 60.) |
run_max_try
必要
|
失敗或逾時迷你批次的最大嘗試次數。 此範圍為 [1, int.max]。 預設值是 3。 清除佇列計數大於此計數的迷你批次不會再次處理,而且會直接刪除。 |
append_row_file_name
必要
|
如果 |
allowed_failed_count
必要
|
處理期間應該忽略的失敗迷你批次數目。 如果失敗的計數高於此值,作業將會中止。 此臨界值適用于整個輸入,而不是傳送至 run () 方法的個別迷你批次。 此範圍為 [-1, int.max]。 -1 表示忽略處理期間的所有失敗。 第一次處理迷你批次時可能會失敗,然後在第二次嘗試時成功。 第一次和第二次檢查會將其視為失敗。 第二次檢查不會將其視為失敗。 引數 –error_threshold、–allowed_failed_count 和 –allowed_failed_percent可以一起運作。 如果指定了一個以上,如果作業超過其中任何一項,作業將會中止。 |
allowed_failed_percent
必要
|
處理期間應該忽略的失敗迷你批次百分比。 如果失敗的百分比高於此值,則會中止作業。 此臨界值適用于整個輸入,而不是傳送至 run () 方法的個別迷你批次。 此範圍為 [0, 100]。 100 或 100.0 表示忽略處理期間的所有失敗。 檢查會在排程所有迷你批次之後開始。 引數 –error_threshold、–allowed_failed_count 和 –allowed_failed_percent可以一起運作。 如果指定了一個以上,如果作業超過其中任何一項,作業將會中止。 |
partition_keys
必要
|
用來將資料資料集分割成迷你批次的索引鍵。 如果指定,具有相同索引鍵的資料會分割成相同的迷你批次。 如果同時指定partition_keys和mini_batch_size,則會引發錯誤。 它應該是 str 元素的清單,每個元素都是用來分割輸入資料集的索引鍵。 不過,如果升級為 PipelineParameter,預設值應該是清單的 json 傾印 str,因為 PipelineParameter 目前不支援清單類型。 輸入 () 必須是分割資料集 () ,而partition_keys必須是每個輸入資料集的索引鍵子集,才能運作。 |
environment_variables
必要
|
環境變數名稱和值的字典。 這些環境變數會在執行使用者指令碼的程序上設定。 |
備註
ParallelRunConfig 類別可用來提供 類別的組 ParallelRunStep 態。 ParallelRunConfig 和 ParallelRunStep 可以一起使用,以平行方式處理大量資料。 常見的使用案例是定型 ML 模型或執行離線推斷,以產生一批觀察的預測。 ParallelRunStep 的運作方式是將您的資料細分為平行處理的批次。 您可以使用 類別來控制 ParallelRunConfig 批次大小、節點計數和其他無法調整的參數,以加速平行處理。 ParallelRunStep 可以使用 TabularDataset 或 FileDataset 作為輸入。
若要使用 ParallelRunStep 和 ParallelRunConfig:
建立 ParallelRunConfig 物件以指定批次處理的執行方式,以及控制批次大小的參數、每個計算目標的節點數目,以及自訂 Python 腳本的參考。
建立使用 ParallelRunConfig 物件的 ParallelRunStep 物件,定義步驟的輸入和輸出。
使用 中 Pipeline 已設定的 ParallelRunStep 物件,就像您使用其他管線步驟類型一樣。
下列文章會討論使用 ParallelRunStep 和 ParallelRunConfig 類別進行批次推斷的範例:
教學課程:建置 Azure Machine Learning 管線進行批次評分。 本文說明如何在管線中使用這兩個類別進行非同步批次評分,並且讓 REST 端點能夠執行管線。
使用 Azure Machine Learning 對大量資料執行批次推斷。 本文說明如何使用自訂推斷指令碼,以及預先定型、以 MNIST 資料集為基礎的影像分類模型,以非同步方式和平行方式處理大量資料。
from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig
parallel_run_config = ParallelRunConfig(
source_directory=scripts_folder,
entry_script=script_file,
mini_batch_size="5", # or partition_keys=["key1", "key2"], which is another way to partition the
# input to mini-batches, refer to the parameter description for details
error_threshold=10, # Optional, allowed failed count on mini batch items
allowed_failed_count=15, # Optional, allowed failed count on mini batches
allowed_failed_percent=10, # Optional, allowed failed percent on mini batches
run_max_try=3,
output_action="append_row",
environment=batch_env,
compute_target=compute_target,
node_count=2)
parallelrun_step = ParallelRunStep(
name="predict-digits-mnist",
parallel_run_config=parallel_run_config,
inputs=[ named_mnist_ds ],
output=output_dir,
arguments=[ "--extra_arg", "example_value" ],
allow_reuse=True
)
如需此範例的詳細資訊,請參閱筆記本 https://aka.ms/batch-inference-notebooks 。
方法
load_yaml |
從 YAML 檔案載入平行執行組態資料。 |
save_to_yaml |
將平行執行組態資料匯出至 YAML 檔案。 |
load_yaml
從 YAML 檔案載入平行執行組態資料。
static load_yaml(workspace, path)
參數
名稱 | Description |
---|---|
workspace
必要
|
要從中讀取組態資料的工作區。 |
path
必要
|
要從中載入組態的路徑。 |