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é Catégorie Descriptif Valeurs autorisées Valeur par défaut
$schema ficelle 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 objet Obligatoire. Source de données de l’ensemble de fonctionnalités.
source.type ficelle Obligatoire. Type de source de données. mltable, csv, parquet, deltaTable
source.path ficelle 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 objet Obligatoire. Colonne d’horodatage dans les données sources.
source.timestamp_column.name ficelle Obligatoire. Nom de la colonne d’horodatage dans les données sources.
source.timestamp_column.format ficelle Format de la colonne d’horodatage. S’il n’est pas fourni, utilisez Spark pour déduire la valeur d’horodatage.
source.source_delay objet 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 objet Dossier où se trouve la définition du code de transformation.
feature_transformation_code.path ficelle 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 ficelle 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.
fonctionnalités liste d’objets Obligatoire. Fonctionnalités de cet ensemble de fonctionnalités.
features.name ficelle Obligatoire. Nom de fonctionnalité.
features.type ficelle 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 ficelle Obligatoire. Nom des colonnes d’index.
index_columns.type ficelle Obligatoire. Type de données des colonnes d’index. chaîne, entier, long, flottant, double, binaire, DateHeure, booléen
source_lookback objet 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 objet 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