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