Partager via


Schéma YAML de spécification de l’ensemble de fonctionnalités CLI (v2)

S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)

Remarque

La syntaxe YAML détaillée dans ce document est basée sur le schéma JSON pour la dernière version de l’extension ML CLI v2. Le fonctionnement de cette syntaxe est garanti uniquement avec la dernière version de l’extension ML CLI v2. Vous trouverez les schémas des versions d’extension plus anciennes sur https://azuremlschemasprod.azureedge.net/.

Syntaxe YAML

Clé Type Description Valeurs autorisées Valeur par défaut
$schema string Schéma YAML. Si vous utilisez l’extension VS Code Azure Machine Learning pour créer le fichier YAML, ajoutez $schema en haut de votre fichier pour appeler des exécutions de schéma et de ressource.
source object Obligatoire. Source de données de l’ensemble de fonctionnalités.
source.type string Obligatoire. Type de source de données. mltable, csv, parquet, deltaTable
source.path string Obligatoire. Chemin de la source de données. Il peut s’agir d’un chemin vers un seul fichier/dossier ou un chemin avec un caractère générique. Seuls le stockage Azure et le schéma ABFS sont pris en charge.
source.timestamp_column object Obligatoire. Colonne d’horodatage dans les données sources.
source.timestamp_column.name string Obligatoire. Nom de la colonne d’horodatage dans les données sources.
source.timestamp_column.format string Format de la colonne d’horodatage. S’il n’est pas fourni, utilisez Spark pour déduire la valeur d’horodatage.
source.source_delay object Retard des données sources.
source.source_delay.days entier Nombre de jours de retard des données sources.
source.source_delay.hours entier Nombre d’heures de retard des données sources.
source.source_delay.minutes entier Nombre de minutes de retard des données sources.
feature_transformation_code object Dossier où se trouve la définition du code de transformation.
feature_transformation_code.path string Chemin relatif dans le dossier de spécification de l’ensemble de fonctionnalités où rechercher le dossier de code de transformation.
feature_transformation_code.transformer_class string Il s’agit d’une classe de transformateur de machine learning Spark au format {module_name}.{transformer_class_name}. Le système attend un fichier {module_name}.py sous feature_transformation_code.path. {transformer_class_name} est défini dans ce fichier Python.
features liste d’objets Obligatoire. Fonctionnalités de cet ensemble de fonctionnalités.
features.name string Obligatoire. Nom de fonctionnalité.
features.type string Obligatoire. Type de données des fonctionnalités. chaîne, entier, long, flottant, double, binaire, DateHeure, booléen
index_columns liste d’objets Obligatoire. Colonnes d’index pour les fonctionnalités. Les données sources doivent contenir ces colonnes.
index_columns.name string Obligatoire. Nom des colonnes d’index.
index_columns.type string Obligatoire. Type de données des colonnes d’index. chaîne, entier, long, flottant, double, binaire, DateHeure, booléen
source_lookback object Fenêtre de temps de recherche en arrière pour les données sources.
source_lookback.days entier Nombre de jours de recherche en arrière pour les données sources.
source_lookback.hours entier Nombre d’heures de recherche en arrière pour les données sources.
source_lookback.minutes entier Nombre de minutes de recherche en arrière pour les données sources.
temporal_join_lookback object Fenêtre de temps de recherche en arrière pour la jointure d’un point dans le temps.
temporal_join_lookback.days entier Nombre de jours de recherche en arrière pour une jointure temporelle.
temporal_join_lookback.hours entier Nombre d’heures de recherche en arrière pour une jointure temporelle.
temporal_join_lookback.minutes entier Nombre de minutes de recherche en arrière pour une jointure temporelle.

Exemples

Des exemples sont disponibles dans le référentiel d’exemples GitHub. Voici quelques exemples courants.

Exemple YAML sans code de transformation

$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

Exemple YAML avec code de transformation

$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

La spécification de l’ensemble de fonctionnalités ci-dessus peut également être créée avec le SDK azureml-feautrestore.

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,
)

Étapes suivantes