Udostępnij przez


Schemat YAML specyfikacji zestawu funkcji interfejsu wiersza polecenia (wersja 2)

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure ml w wersji 2 (bieżąca)

Uwaga

Składnia YAML szczegółowo w tym dokumencie jest oparta na schemacie JSON dla najnowszej wersji rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Ta składnia jest gwarantowana tylko do pracy z najnowszą wersją rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Schematy dla starszych wersji rozszerzeń można znaleźć pod adresem https://azuremlschemasprod.azureedge.net/.

Składnia YAML

Klucz Typ Opis Dozwolone wartości Domyślna wartość
$schema sznurek Schemat YAML. Jeśli używasz rozszerzenia programu VS Code usługi Azure Machine Learning do tworzenia pliku YAML, w tym $schema w górnej części pliku, umożliwia wywoływanie schematu i uzupełniania zasobów.
źródło obiekt Wymagany. Źródło danych dla zestawu funkcji.
source.type sznurek Wymagany. Typ źródła danych. mltable, csv, parquet, deltaTable
source.path sznurek Wymagany. Ścieżka źródła danych. Może to być ścieżka do pojedynczego pliku, folderu lub ścieżki z symbolami wieloznacznymi. Obsługiwane są tylko usługi Azure Storage i schemat ABFS.
source.timestamp_column obiekt Wymagany. Kolumna sygnatury czasowej w danych źródłowych.
source.timestamp_column.name sznurek Wymagany. Nazwa kolumny sygnatury czasowej w danych źródłowych.
source.timestamp_column.format sznurek Format kolumny sygnatury czasowej. Jeśli nie zostanie podana, użyj platformy Spark, aby wywnioskować wartość znacznika czasu.
source.source_delay obiekt Opóźnienie danych źródłowych.
source.source_delay.days liczba całkowita Liczba dni opóźnienia danych źródłowych.
source.source_delay.hours liczba całkowita Liczba godzin opóźnienia danych źródłowych.
source.source_delay.min liczba całkowita Liczba minut opóźnienia danych źródłowych.
feature_transformation_code obiekt Folder, w którym znajduje się definicja kodu przekształcenia.
feature_transformation_code.path sznurek Ścieżka względna w folderze specyfikacji zestawu funkcji, aby znaleźć folder kodu przekształcania.
feature_transformation_code.transformer_class sznurek Jest to klasa przekształcania uczenia maszynowego platformy Spark w formacie {module_name}.{transformer_class_name}. System oczekuje znalezienia {module_name}.py pliku w folderze feature_transformation_code.path. Element {transformer_class_name} jest zdefiniowany w tym pliku python.
funkcje lista obiektów Wymagany. Funkcje tego zestawu funkcji.
features.name sznurek Wymagany. Nazwa funkcji.
features.type sznurek Wymagany. Typ danych funkcji. string, integer, long, float, double, binary, datetime, boolean
index_columns lista obiektów Wymagany. Kolumny indeksu dla funkcji. Dane źródłowe powinny zawierać te kolumny.
index_columns.name sznurek Wymagany. Nazwa kolumny indeksu.
index_columns.type sznurek Wymagany. Typ danych kolumny indeksu. string, integer, long, float, double, binary, datetime, boolean
source_lookback obiekt Okno czasu wyszukiwania wstecz dla danych źródłowych.
source_lookback.days liczba całkowita Liczba dni w źródle spojrzenia wstecz.
source_lookback.hours liczba całkowita Liczba godzin wyszukiwania źródłowego.
source_lookback.min liczba całkowita Liczba minut w źródle wstecz.
temporal_join_lookback obiekt Okno czasu wyszukiwania z powrotem podczas sprzężenia do punktu czasu.
temporal_join_lookback.days liczba całkowita Liczba dni wyszukiwania sprzężenia czasowego.
temporal_join_lookback.hours liczba całkowita Liczba godzin wyszukiwania sprzężenia czasowego.
temporal_join_lookback.min liczba całkowita Liczba minut wyszukiwania sprzężenia czasowego.

Przykłady

Przykłady są dostępne w repozytorium GitHub przykłady. Poniżej przedstawiono kilka typowych przykładów.

Przykład YAML bez kodu przekształcenia

$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

Przykład YAML z kodem przekształcenia

$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

Powyższe specyfikacje zestawu funkcji można również utworzyć przy użyciu zestawu 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,
)

Następne kroki