CLI (v2) 功能集規格 YAML 架構
注意
本文件中詳述的 YAML 語法是以最新版 ML CLI v2 延伸模組的 JSON 結構描述為基礎。 此語法僅保證能與最新版的 ML CLI v2 延伸模組搭配運作。 您可以在 https://azuremlschemasprod.azureedge.net/ 找到舊版延伸模組的結構描述。
YAML 語法
機碼 | 類型 | 描述 | 允許的值 | 預設值 |
---|---|---|---|---|
$schema | 字串 | YAML 結構描述。 如果您使用 Azure 機器學習 VS Code 擴充功能來撰寫 YAML 檔案,包括檔案頂端的$schema,可讓您叫用架構和資源完成。 | ||
來源 | object | 必要。 功能集的數據源。 | ||
source.type | 字串 | 必要。 數據源的類型。 | mltable、csv、parquet、deltaTable | |
source.path | 字串 | 必要。 數據源的路徑。 它可以是具有通配符的單一檔案、資料夾或路徑的路徑。 僅支援 Azure 記憶體和 ABFS 架構。 | ||
source.timestamp_column | object | 必要。 源數據中的時間戳數據行。 | ||
source.timestamp_column.name | 字串 | 必要。 源數據中的時間戳數據行名稱。 | ||
source.timestamp_column.format | 字串 | 時間戳數據行格式。 如果未提供,請使用Spark來推斷時間戳值。 | ||
source.source_delay | object | 源數據延遲。 | ||
source.source_delay.days | 整數 | 源數據延遲的天數。 | ||
source.source_delay.hours | 整數 | 源數據延遲的時數。 | ||
source.source_delay.minutes | 整數 | 源數據延遲的分鐘數。 | ||
feature_transformation_code | object | 轉換程式代碼定義所在的資料夾。 | ||
feature_transformation_code.path | 字串 | 功能集規格資料夾內的相對路徑,以尋找轉換器程式代碼資料夾。 | ||
feature_transformation_code.transformer_class | 字串 | 這是格式為的 {module_name}.{transformer_class_name} Spark 機器學習轉換程式類別。 系統預期會在底下feature_transformation_code.path 找到檔案{module_name}.py 。 {transformer_class_name} 定義在此 Python 檔案中。 |
||
features | 物件清單 | 必要。 此功能集的功能。 | ||
features.name | 字串 | 必要。 功能名稱。 | ||
features.type | 字串 | 必要。 功能數據類型。 | string, integer, long, float, double, binary, datetime, boolean | |
index_columns | 物件清單 | 必要。 功能的索引數據行。 源數據應該包含這些數據行。 | ||
index_columns.name | 字串 | 必要。 索引數據行名稱。 | ||
index_columns.type | 字串 | 必要。 索引數據行數據類型。 | string, integer, long, float, double, binary, datetime, boolean | |
source_lookback | object | 源數據的回溯時間範圍。 | ||
source_lookback.days | 整數 | 來源回溯的天數。 | ||
source_lookback.hours | 整數 | 來源回溯的時數。 | ||
source_lookback.minutes | 整數 | 來源回溯的分鐘數。 | ||
temporal_join_lookback | object | 執行時間點聯結時的回頭時間範圍。 | ||
temporal_join_lookback.days | 整數 | 時態聯結回溯的天數。 | ||
temporal_join_lookback.hours | 整數 | 時態聯結回溯的時數。 | ||
temporal_join_lookback.minutes | 整數 | 時態聯結回溯的分鐘數。 |
範例
範例 GitHub 存放庫中有範例可用。 以下是一些常見的範例。
不含轉換程式代碼的 YAML 範例
$schema: http://azureml/sdk-2-0/FeatureSetSpec.json
source:
type: deltatable
path: abfs://{container}@{storage}.dfs.core.windows.net/top_folder/transactions
timestamp_column: # name of the column representing the timestamp.
name: timestamp
features: # schema and properties of features generated by the feature_transformation_code
- name: accountCountry
type: string
description: country of the account
- name: numPaymentRejects1dPerUser
type: double
description: upper limit of number of payment rejects per day on the account
- name: accountAge
type: double
description: age of the account
index_columns:
- name: accountID
type: string
使用轉換程式代碼的 YAML 範例
$schema: http://azureml/sdk-2-0/FeatureSetSpec.json
source:
type: parquet
path: abfs://file_system@account_name.dfs.core.windows.net/datasources/transactions-source/*.parquet
timestamp_column: # name of the column representing the timestamp.
name: timestamp
source_delay:
days: 0
hours: 3
minutes: 0
feature_transformation_code:
path: ./code
transformer_class: transaction_transform.TrsactionFeatureTransformer
features:
- name: transaction_7d_count
type: long
- name: transaction_amount_7d_sum
type: double
- name: transaction_amount_7d_avg
type: double
- name: transaction_3d_count
type: long
- name: transaction_amount_3d_sum
type: double
- name: transaction_amount_3d_avg
type: double
index_columns:
- name: accountID
type: string
source_lookback:
days: 7
hours: 0
minutes: 0
temporal_join_lookback:
days: 1
hours: 0
minutes: 0
您也可以使用 azureml-feautrestore
SDK 建立上述功能集規格。
transactions_featureset_code_path = "<local path to the code folder>"
transactions_featureset_spec = create_feature_set_spec(
source = FeatureSource(
type = SourceType.parquet,
path = "wasbs://data@azuremlexampledata.blob.core.windows.net/feature-store-prp/datasources/transactions-source/*.parquet",
timestamp_column = TimestampColumn(name = "timestamp"),
source_delay = DateTimeOffset(days = 0, hours = 3, minutes = 0)
),
transformation_code = TransformationCode(
path = transactions_featureset_code_path,
transformer_class = "transaction_transform.TransactionFeatureTransformer"
),
index_columns = [
Column(name = "accountID", type = ColumnType.string)
],
source_lookback = DateTimeOffset(days = 7, hours = 0, minutes = 0),
temporal_join_lookback = DateTimeOffset(days = 1, hours = 0, minutes = 0),
infer_schema = True,
)