CLI (v2) 自動化 ML 預測命令作業 YAML 架構
您可以在 找到來源 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 機器學習 VS Code 擴充功能來撰寫 YAML 檔案,包括 $schema 檔案頂端的 ,可讓使用者叫用架構和資源完成。 |
||
compute |
字串 | 必要。 要對其執行作業的 AML 計算基礎結構名稱。 計算可以是工作區中現有計算計算機的參考 注意: 管線中的作業不支援 'local' 作為 compute 。 這裡的 「本機」表示在使用者的 Azure Machine Learning 工作室 工作區中建立的計算實例。 |
1. 使用現有計算的模式 [^azureml:<compute_name>] ,2. 'local' 使用本機執行 |
'local' |
limits |
object | 表示包含自動化 ML 表格式作業之限制組態的字典物件。 索引鍵是作業內容中限制的名稱,而值為限制值。 請參閱 瞭解 此物件屬性的限制。 |
||
name |
字串 | 送出之自動化 ML 作業的名稱。 在工作區中的所有作業中,它必須是唯一的。 如果未指定,Azure 機器學習 會自動產生名稱的 GUID。 |
||
description |
字串 | 自動化 ML 作業的描述。 | ||
display_name |
字串 | 使用者想要在 Studio UI 中顯示的作業名稱。 它可以在工作區內不是唯一的。 如果省略,Azure 機器學習 會自動產生顯示名稱的人類可讀取形容詞-名詞標識符。 | ||
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(例如 Input(mltable='my_mltable:1'))或使用本機檔案或資料夾作為 MLTable(例如 Input(mltable=MLTable(local_path=“./data”))。 必須提供這個物件。 如果來源檔案中沒有目標功能,則自動化 ML 會擲回錯誤。 檢查 定型或驗證或測試數據 ,以找出此對象的屬性。 |
||
validation_data |
object | 包含 MLTable 組態的字典物件,定義自動化 ML 實驗中要用於交叉驗證的驗證數據。 如果提供這個物件,它應該由獨立的功能/數據行和目標功能/數據行所組成。 定型數據和驗證數據的範例無法在折疊中重疊。 請參閱 定型或驗證或測試數據 ,以瞭解此對象的屬性。 如果未定義此物件,則自動化 ML 會使用 n_cross_validations 從 物件中 training_data 定義的定型數據分割驗證數據。 |
||
test_data |
object | 包含 MLTable 組態的字典物件,定義測試回合中要使用的測試數據,以便使用最佳模型進行預測,並使用已定義的計量來評估模型。 如果提供此物件,它應該只由定型數據中使用的獨立功能所組成(不含目標特徵)。 檢查 定型或驗證或測試數據 ,以找出此對象的屬性。 如果未提供,則自動化 ML 會使用其他內建方法來建議要用於推斷的最佳模型。 |
limits
機碼 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
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 會使用自動更正型啟發學習法來自動選取延隔順序,併為所有數值特徵產生對應的延隔功能。 “None” 表示不會針對任何數值特徵產生延遲。 |
'auto' , None |
None |
country_or_region_for_holidays |
字串 | 要用來產生假日功能的國家或地區。 這些字元應該以 ISO 3166 雙字母國家/地區代碼表示,例如 'US' 或 'GB'。 您可以在 找到 https://wikipedia.org/wiki/List_of_ISO_3166_country_codesISO 代碼的清單。 | 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 。 如需詳細資訊,請參閱 核心 yaml 語法 ,以瞭解如何使用 azureml:// URI 格式。 成品檔案位置的 URI。 如果此 URI 沒有配置(例如 HTTP:、azureml: etc.),則會將其視為本機參考,且指向的檔案會在建立實體時上傳至預設工作區 Blob 記憶體。 |
||
type |
const | 輸入數據類型。 為了產生計算機視覺模型,用戶必須以MLTable的形式,將標示的影像數據作為模型定型的輸入。 | mltable |
mltable |
訓練
機碼 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
allowed_training_algorithms |
list(string) | 要嘗試作為實驗中模型定型的基礎模型的時間序列預測演算法清單。 如果省略或設定為 None,則實驗期間會使用所有支持的演算法,但中指定的 blocked_training_algorithms 演算法除外。 |
'auto_arima' 、'prophet' 、、'seasonal_naive' 'naive' 、'average' 'tcn_forecaster' 'arimax' 'seasonal_average' 'exponential_smoothing' 'lasso_lars' 'knn' 'sgd' 'gradient_boosting' 'decision_tree' 'elastic_net' 、、 'random_forest' 'extreme_random_trees' 'light_gbm' 'xg_boost_regressor' |
None |
blocked_training_algorithms |
list(string) | 在實驗中模型定型時,不以基底模型執行的時間序列預測演算法清單。 如果省略或設定為 None,則會在模型定型期間使用所有支持的演算法。 | 'auto_arima' 、'prophet' 、'naive' 、'seasonal_naive' 、、'seasonal_average' 'exponential_smoothing' 'arimax' 'tcn_forecaster' 'average' 'lasso_lars' 'knn' 'elastic_net' 'decision_tree' 'gradient_boosting' 、、 'random_forest' 'extreme_random_trees' 'light_gbm' 'sgd' 'xg_boost_regressor' |
None |
enable_dnn_training |
boolean | 開啟或關閉包含 DNN 型模型的旗標,以在模型選取期間試用。 | True , False |
False |
enable_model_explainability |
boolean | 表示開啟模型可解釋性的旗標,例如特徵重要性,由自動化 ML 系統評估的最佳模型。 | True , False |
True |
enable_vote_ensemble |
boolean | 旗標,可使用投票演算法來啟用或停用某些基底模型的合奏。 如需合奏的詳細資訊,請參閱 設定自動定型。 | true , false |
true |
enable_stack_ensemble |
boolean | 旗標,可使用 Stacking 演算法來啟用或停用某些基底模型的整合。 在預測工作中,預設會關閉此旗標,以避免因用於調整中繼學習工具的小型定型集而導致過度學習的風險。 如需合奏的詳細資訊,請參閱 設定自動定型。 | 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 | 字典物件,包含「策略」做為索引鍵和值做為插補策略。 如需如何提供的詳細資訊,請參閱這裡的範例。 |
工作輸出
機碼 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
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]