共用方式為


CLI (v2) 功能集規格 YAML 架構

適用於:Azure CLI ml 延伸模組 v2 (目前)

注意

本文件中詳述的 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,
)

下一步