CLI (v2) 自動化 ML 預測命令作業 YAML 架構
適用於:Azure CLI ML 延伸模組第 2 版 (目前)
您可以在 找到來源 JSON 架構 https://azuremlschemas.azureedge.net/latest/autoMLForecastingJob.schema.json
注意
此文件中詳述的 YAML 語法是以最新版 ML CLI v2 延伸模組的 JSON 結構描述為基礎。 此語法只保證能與最新版的 ML CLI v2 延伸模組搭配使用。 您可以在 https://azuremlschemasprod.azureedge.net/ 找到舊版延伸模組的結構描述。
YAML 語法
索引鍵 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
$schema |
字串 | 要載入 YAML 架構的位置/URL。 如果使用者使用 Azure Machine Learning VS Code 延伸模組來撰寫 YAML 檔案,包括 $schema 檔案頂端可讓使用者叫用架構和資源完成。 |
||
compute |
字串 | 必要。 要對其執行作業的 AML 計算基礎結構名稱。 計算可以是工作區中現有計算電腦的參考 注意: 管線中的作業不支援 'local' 作為 compute 。 這裡的 「本機」表示在使用者Azure Machine Learning 工作室工作區中建立的計算實例。 |
1. 使用現有計算的模式 [^azureml:<compute_name>] 2. 'local' 使用本機執行 |
'local' |
limits |
object | 表示由自動化 ML 表格式作業的限制組態所組成的字典物件。 索引鍵是作業內容中限制的名稱,而值為限制值。 請參閱 瞭解 此物件屬性的限制。 |
||
name |
字串 | 提交的自動化 ML 作業名稱。 在工作區中的所有作業中,它必須是唯一的。 如果未指定,Azure Machine Learning 會自動產生名稱的 GUID。 |
||
description |
字串 | 自動化 ML 作業的描述。 | ||
display_name |
字串 | 使用者想要在 Studio UI 中顯示的作業名稱。 它可以在工作區中不是唯一的。 如果省略,Azure Machine Learning 會自動為顯示名稱產生人類可讀取的形容詞名詞識別碼。 | ||
experiment_name |
字串 | 實驗的名稱。 實驗是 Azure 上 ML 訓練作業的記錄。 實驗包含執行的結果,以及記錄、圖表和圖表。 每個作業的執行記錄都會組織在 Studio 的 [實驗] 索引標籤中對應的實驗之下。 |
建立工作目錄的名稱 | |
environment_variables |
object | 在執行命令的進程上設定的環境變數字典物件。 | ||
outputs |
object | 表示作業輸出組態的字典。 索引鍵是作業內容中的輸出名稱,值則是輸出設定。 請參閱 作業輸出 以找出此物件的屬性。 | ||
log_files |
object | 字典物件,包含自動化 ML 作業執行的記錄 | ||
log_verbosity |
字串 | 寫入至記錄檔的記錄詳細資訊層級。 可接受的值定義在 Python 記錄程式庫中。 |
'not_set' , 'debug' , 'info' , 'warning' , 'error' , 'critical' |
'info' |
type |
const | 必要。 作業類型。 |
automl |
automl |
task |
const | 必要。 要執行的自動化 ML 工作類型。 |
forecasting |
forecasting |
target_column_name |
字串 | 必要。 表示要預測的資料行名稱。 如果未指定,自動化 ML 作業就會引發錯誤。 |
||
featurization |
object | 定義自訂特徵化組態的字典物件。 如果未建立,自動化 ML 設定會套用自動特徵化。 請參閱 特徵化 以查看此物件的屬性。 | ||
forecasting |
object | 定義預測作業設定的字典物件。 請參閱 預測 以找出此物件的屬性。 | ||
n_cross_validations |
字串或整數 | 如果未 validation_data 指定,則為在模型/管線選取期間執行的交叉驗證數目。如果未 validation_data 提供和此參數,或設定為 None ,則預設會將自動化 ML 作業設定為 auto 。 如果 distributed_featurization 啟用且 validation_data 未指定,則預設會將其設定為 2。 |
'auto' 、[int] |
None |
primary_metric |
字串 | 自動化 ML 針對時間序列預測模型選取進行優化的計量。 如果 allowed_training_algorithms 有 'tcn_forecaster' 用於定型,則自動化 ML 僅支援 'normalized_root_mean_squared_error' 和 'normalized_mean_absolute_error',以作為primary_metric。 |
"spearman_correlation" , "normalized_root_mean_squared_error" , "r2_score" "normalized_mean_absolute_error" |
"normalized_root_mean_squared_error" |
training |
object | 字典物件,定義用於模型定型的組態。 檢查 定型 以找出此物件的屬性。 |
||
training_data |
object | 必要 字典物件,其中包含定義要用來作為模型定型輸入之定型資料的 MLTable 組態。 此資料是資料的子集,應該由獨立的功能/資料行和目標功能/資料行所組成。 使用者可以使用 ':' (格式在工作區中使用已註冊的 MLTable,例如 Input (mltable='my_mltable:1') ) 或可以使用本機檔案或資料夾作為 MLTable (例如 Input (mltable=MLTable (local_path=「./data」) ) 。 必須提供這個物件。 如果來源檔案中沒有目標功能,則自動化 ML 會擲回錯誤。 檢查 定型或驗證或測試資料 ,以找出此物件的屬性。 |
||
validation_data |
object | 字典物件,包含定義自動化 ML 實驗中用於交叉驗證之驗證資料的 MLTable 組態。 如果提供這個物件,它應該由獨立的功能/資料行和目標功能/資料行所組成。 定型資料和驗證資料的範例無法在折迭中重迭。 請參閱 定型或驗證或測試資料 ,以找出此物件的屬性。 如果未定義此物件,則自動化 ML 會使用 n_cross_validations 從 物件中 training_data 定義的定型資料分割驗證資料。 |
||
test_data |
object | 包含 MLTable 組態的字典物件,定義測試回合中要使用的測試資料,以使用最佳模型進行預測,並使用已定義的計量來評估模型。 如果提供此物件,則它應該只由用於定型資料 (的獨立功能所組成) 。 檢查 定型或驗證或測試資料 ,以找出這個物件的屬性。 如果未提供,則自動化 ML 會使用其他內建方法來建議用於推斷的最佳模型。 |
限制
索引鍵 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
enable_early_termination |
boolean | 表示如果遺失分數在 'x' 個反復專案數目之後沒有改善,是否要啟用實驗終止。 在自動化 ML 作業中,前 20 個反復專案不會套用任何早期停止。 「早期停止」視窗只會在前 20 次反復專案之後啟動。 |
true , false |
true |
max_concurrent_trials |
整數 | (子作業) 以平行方式執行的試用版數目上限。 強烈建議您將並存執行數目設定為叢集中的節點數目, () 中 compute 定義的 aml 計算。 |
1 |
|
max_trials |
整數 | 代表自動化 ML 作業可以嘗試執行具有不同超參數組合之定型演算法的試用版數目上限。 其預設值設定為 1000。 如果 enable_early_termination 已定義,則用來執行定型演算法的試用版數目可能較小。 |
1000 |
|
max_cores_per_trial |
整數 | 代表每個試用版可用的核心數目上限。 其預設值設定為 -1,這表示進程會使用所有核心。 | -1 |
|
timeout_minutes |
整數 | 提交自動化 ML 作業可能需要執行幾分鐘的時間上限。 在指定的時間量之後,作業會終止。 此逾時包括設定、特徵化、定型回合、如果提供所有試用版的) ,則 (模型說明性。 請注意,如果作業在提供 timeout_minutes 內無法完成時,它不會包含內建和模型解釋性執行,因為這些功能一旦完成所有試用 (子作業) 即可使用。 其預設值設定為 360 分鐘, (6 小時) 。 若要指定小於或等於 1 小時 (60 分鐘) 逾時,使用者應該確定資料集的大小不大於 10,000,000 (資料列時間資料行) 或錯誤結果。 |
360 |
|
trial_timeout_minutes |
整數 | 提交自動化 ML 作業中每個試用 (子工作) 可以執行的分鐘數上限。 在指定的時間量之後,子作業將會終止。 | 30 |
|
exit_score |
FLOAT | 實驗所要達成的分數。 實驗會在達到指定的分數之後終止。 如果未指定 (沒有準則) ,則實驗會執行,直到未對定義的 primary metric 進行進一步的進度為止。 |
預測
索引鍵 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
time_column_name |
字串 | 必要 資料集中對應至每個時間序列時間軸的資料行名稱。 如果工作為 forecasting ,則定型、驗證或測試的輸入資料集必須包含此資料行。 如果未提供或設定為 None ,則自動化 ML 預測工作會擲回錯誤並終止實驗。 |
||
forecast_horizon |
字串或整數 | 時間序列頻率單位的最大預測範圍。 這些單位是以定型資料的推斷時間間隔為基礎, (例如:預測工具用來預測的每月、每週) 。 如果設定為 None 或 auto ,則其預設值會設定為 1,這表示輸入資料中最後一個時間戳記 t 的 't+1'。 |
auto , [int] |
1 |
frequency |
字串 | 預測產生所需的頻率,例如每日、每週、每年等。 如果未指定或設定為 None,則會從資料集時間索引推斷其預設值。 使用者可以設定大於資料集推斷頻率的值,但不能小於該值。 例如,如果資料集的頻率是每日,它可能需要每日、每週、每月,但每小時不是每小時的值,因為每小時小於每日 (24 小時) 。 如需詳細資訊 ,請參閱 pandas 檔 。 |
None |
|
time_series_id_column_names |
字串或清單 (字串) | 資料中要用來將資料分組成多個時間序列的資料行名稱。 如果未定義time_series_id_column_names或設定為 None,則自動化 ML 會使用自動偵測邏輯來偵測資料行。 | None |
|
feature_lags |
字串 | 表示使用者是否想要自動為提供的數值特徵產生延隔時間。 預設值設定為 auto ,這表示自動化 ML 會使用自動校正型啟發學習法來自動選取延隔順序,並為所有數值特徵產生對應的延隔功能。 「無」表示不會針對任何數值特徵產生延遲。 |
'auto' , None |
None |
country_or_region_for_holidays |
字串 | 要用來產生假日功能的國家或地區。 這些字元應該以 ISO 3166 兩個字母的國家/地區代碼表示,例如 'US' 或 'GB'。 您可以在 找到 https://wikipedia.org/wiki/List_of_ISO_3166_country_codes ISO 代碼清單。 | None |
|
cv_step_size |
字串或整數 | 一個 CV 折迭的origin_time與下一個折迭之間的期間數。 例如,如果每日資料設為 3,則每個折迭的原點時間會相隔三天。 如果設定為 [無] 或未指定,則預設會將其設定為 auto 。 如果是整數類型,則最小值為 1,否則會產生錯誤。 |
auto , [int] |
auto |
seasonality |
字串或整數 | 時間序列季節性是數列頻率的整數倍數。 如果未指定季節性,其值會設定為 'auto' ,這表示自動由自動化 ML 推斷。 如果未將此參數設定為 None ,則自動化 ML 會假設時間序列為非季節性,這相當於將它設定為整數值 1。 |
'auto' , [int] |
auto |
short_series_handling_config |
字串 | 表示自動化 ML 在指定時應該如何處理簡短的時間序列。 它會採用下列值:
|
'auto' , 'pad' , 'drop' , None |
auto |
target_aggregate_function |
字串 | 表示用來匯總時間序列中目標資料行的彙總函式,並以指定的頻率產生預測,) 中 freq 定義的 (。 如果已設定此參數,但 freq 未設定參數,則會引發錯誤。 省略或設定為 [無],然後不會套用任何匯總。 |
'sum' , 'max' , 'min' , 'mean' |
auto |
target_lags |
字串或整數或清單 (整數) | 根據資料集頻率,用來從目標值延遲的過去/歷史期間數目。 根據預設,此參數會關閉。 此 'auto' 設定可讓系統使用自動啟發學習法延遲。 當獨立變數與相依變數之間的關聯性預設不會相互關聯時,應該使用這個延隔屬性。 如需詳細資訊,請參閱 自動化 ML 中時間序列預測的延遲功能。 |
'auto' , [int] |
None |
target_rolling_window_size |
字串或整數 | 用來建立目標資料行滾動視窗平均值的過去觀察次數。 預測時,此參數代表用來產生預測值的 n 個歷程記錄週期, < = 定型集大小。 如果省略,則 n 就是完整的定型集大小。 若在將模型定型時只想考慮特定數量的歷程記錄,則請指定此參數。 | 'auto' 整數 None |
None |
use_stl |
字串 | 在時間序列上套用 STL 分解所產生的元件。如果未提供或設定為 None,則不會產生時間序列元件。 use_stl可以接受兩個值: 'season' :產生季元件。 'season_trend' :產生季自動化 ML 和趨勢元件。 |
'season' , 'seasontrend' |
None |
定型或驗證或測試資料
索引鍵 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
datastore |
字串 | 使用者上傳資料的資料存放區名稱。 | ||
path |
字串 | 應該從何處載入資料的路徑。 它可以是 file 路徑、 folder 路徑或 pattern 路徑。 pattern 會指定搜尋模式,以允許包含資料的檔案和資料夾 (* 和 ** ) 。 支援的 URI 類型為 azureml 、https 、wasbs 、abfss 及 adl 。 如需詳細資訊,請參閱 Core yaml 語法 ,以瞭解 azureml:// 如何使用 URI 格式。 成品檔案位置的 URI。 如果此 URI 沒有配置 (例如 HTTP:、azureml: 等) ,則會將其視為本機參考,而指向的檔案會在建立實體時上傳至預設工作區 Blob 儲存體。 |
||
type |
const | 輸入資料類型。 為了產生電腦視覺模型,使用者必須以 MLTable 的形式,將標示的影像資料當作模型定型的輸入。 | mltable |
mltable |
培訓
索引鍵 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
allowed_training_algorithms |
list (string) | 要嘗試作為實驗中模型定型之基底模型的時間序列預測演算法清單。 如果省略或設定為 None,則會在實驗期間使用所有支援的演算法,但 中指定的 blocked_training_algorithms 演算法除外。 |
'auto_arima' , 'prophet' , 'naive' ,'seasonal_naive' , 'average' , 'seasonal_average' , 'exponential_smoothing' , 'arimax' , 'tcn_forecaster' , 'elastic_net' , 'gradient_boosting' , 'decision_tree' , 'knn' , 'lasso_lars' , 'sgd' , 'random_forest' , 'extreme_random_trees' , 'light_gbm' , 'xg_boost_regressor' |
None |
blocked_training_algorithms |
list (string) | 在實驗中的模型定型時,無法以基底模型執行的時間序列預測演算法清單。 如果省略或設定為 None,則會在模型定型期間使用所有支援的演算法。 | 'auto_arima' , 'prophet' , 'naive' , 'seasonal_naive' , 'average' , 'seasonal_average' , 'exponential_smoothing' , 'arimax' ,'tcn_forecaster' , 'elastic_net' , 'gradient_boosting' , 'decision_tree' , 'knn' , 'lasso_lars' , 'sgd' , 'random_forest' , 'extreme_random_trees' , 'light_gbm' , 'xg_boost_regressor' |
None |
enable_dnn_training |
boolean | 開啟或關閉包含 DNN 型模型的旗標,以在模型選取期間試用。 | True , False |
False |
enable_model_explainability |
boolean | 表示旗標,以開啟模型可解釋性,例如特徵重要性,由自動化 ML 系統評估的最佳模型。 | True , False |
True |
enable_vote_ensemble |
boolean | 使用投票演算法啟用或停用某些基底模型的旗標。 如需 ensembles 的詳細資訊,請參閱 設定自動定型。 | true , false |
true |
enable_stack_ensemble |
boolean | 使用堆疊演算法啟用或停用某些基底模型的旗標。 在預測工作中,預設會關閉此旗標,以避免因為用於調整中繼學習工具的小型訓練集而造成過度學習的風險。 如需 ensembles 的詳細資訊,請參閱 設定自動定型。 | true , false |
false |
特徵化
索引鍵 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
mode |
字串 | 自動化 ML 作業要使用的特徵化模式。 將它設定為: 'auto' 指出是否應該自動完成特徵化步驟'off' 表示沒有特徵化 <'custom' 表示是否應該使用自訂特徵化。 注意:如果輸入資料很疏鬆,則無法開啟特徵化。 |
'auto' , 'off' , 'custom' |
None |
blocked_transformers |
list (string) | 如果特徵化 mode 設定為 「自訂」,則為自動化 ML 在特徵化步驟期間封鎖的轉換程式名稱清單。 |
'text_target_encoder' , 'one_hot_encoder' , 'cat_target_encoder' , 'tf_idf' , 'wo_e_target_encoder' , 'label_encoder' , 'word_embedding' , 'naive_bayes' , 'count_vectorizer' , 'hash_one_hot_encoder' |
None |
column_name_and_types |
object | 字典物件,其中包含資料行名稱做為聽寫索引鍵,以及用來將資料行用途更新為相關聯值的功能類型,如果特徵化 mode 設定為 'custom'。 |
||
transformer_params |
object | 巢狀字典物件,其中包含轉換程式名稱作為特徵化資料集資料行的索引鍵和對應的自訂參數,如果特徵化 mode 設定為 'custom'。預測僅支援 imputer 用於自訂的轉換器。請參閱 column_transformers 瞭解如何建立自訂參數。 |
None |
column_transformers
索引鍵 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
fields |
list (string) | 應該套用的資料 transformer_params 行名稱清單。 |
||
parameters |
object | 字典物件,包含 'strategy' 做為索引鍵和值做為插補策略。 如需如何提供的詳細資訊,請參閱 這裡的範例。 |
作業輸出
索引鍵 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
type |
字串 | 作業輸出的類型。 針對預設 uri_folder 類型,輸出會對應至資料夾。 |
uri_folder , mlflow_model , custom_model |
uri_folder |
mode |
字串 | 輸出檔案 () 傳遞至目的地儲存體的模式。 對於讀寫掛接模式, (rw_mount ) 輸出目錄是掛接的目錄。 針對上傳模式,系統會在作業結束時上傳 (寫入的檔案) 。 |
rw_mount , upload |
rw_mount |
如何透過 CLI 執行預測作業
az ml job create --file [YOUR_CLI_YAML_FILE] --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]