Udostępnij za pośrednictwem


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

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure 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 Type Opis Dozwolone wartości Domyślna wartość
$schema string 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.
source obiekt Wymagany. Źródło danych dla zestawu funkcji.
source.type string Wymagany. Typ źródła danych. mltable, csv, parquet, deltaTable
source.path string 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 string Wymagany. Nazwa kolumny sygnatury czasowej w danych źródłowych.
source.timestamp_column.format string 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 integer Liczba dni opóźnienia danych źródłowych.
source.source_delay.hours integer Liczba godzin opóźnienia danych źródłowych.
source.source_delay.min integer 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 string Ścieżka względna w folderze specyfikacji zestawu funkcji, aby znaleźć folder kodu przekształcania.
feature_transformation_code.transformer_class string 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.
features lista obiektów Wymagany. Funkcje tego zestawu funkcji.
features.name string Wymagany. Nazwa funkcji.
features.type string 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 string Wymagany. Nazwa kolumny indeksu.
index_columns.type string 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 integer Liczba dni w źródle spojrzenia wstecz.
source_lookback.hours integer Liczba godzin wyszukiwania źródłowego.
source_lookback.min integer 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 integer Liczba dni wyszukiwania sprzężenia czasowego.
temporal_join_lookback.hours integer Liczba godzin wyszukiwania sprzężenia czasowego.
temporal_join_lookback.min integer 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