Tous les produits
Search
Centre de documentation

:Apprentissage automatique intégré à la base de données

Dernière mise à jour :Aug 11, 2026

Cette rubrique explique comment utiliser Lindorm Machine Learning (ML) pour réaliser un apprentissage automatique directement dans les bases de données, en couvrant l'entraînement, l'inférence et la gestion des modèles.

Vue d'ensemble

Lindorm ML est un service d'apprentissage automatique intégré à la base de données, prêt à l'emploi et fourni par LindormTSDB. Le processus Lindorm ML comprend les étapes suivantes : entraînement du modèle, inférence du modèle et gestion du modèle. Une fois Lindorm ML activé, exécutez des instructions SQL pour réaliser l'intégralité du processus d'apprentissage automatique au sein de vos bases de données et exploiter davantage la valeur de vos données. Lindorm ML offre les avantages suivants :

  • Simplicité d'utilisation : exécutez des instructions SQL standard pour réaliser l'intégralité du processus d'apprentissage automatique dans la base de données, même sans connaissances spécialisées en machine learning.

  • Rétention des données : inutile d'exporter les données vers des plateformes externes pour l'apprentissage automatique. Cela améliore l'efficacité du processus et permet à vos données de respecter les exigences réglementaires.

  • Fonctionnalités d'entreprise : dans Lindorm ML, les modèles et les données sont stockés dans la base de données. Vous pouvez ainsi utiliser les fonctionnalités d'entreprise offertes par les bases de données lors de l'apprentissage automatique, telles que la gestion des autorisations, l'audit des données et le chiffrement des données.

Activer Lindorm ML

Pour plus d'informations sur l'activation de Lindorm ML, consultez Activer Lindorm ML.

Entraînement du modèle

Lorsque vous entraînez un modèle avec Lindorm ML, spécifiez le type de tâches que le modèle doit exécuter. Lindorm ML propose différents algorithmes adaptés à chaque type de tâche. Utilisez l'instruction CREATE MODEL étendue dans votre base de données pour entraîner un modèle.

Syntaxe

CREATE MODEL model_name
FROM { table_name | (select_statement) }
[ TARGET column_name ]
TASK ( TIME_SERIES_FORECAST | TIME_SERIES_ANOMALY_DETECTION )
ALGORITHM ( DEEPAR | TFT | esd | nsigma | ttest )
[ PREPROCESSORS 'string' ]
SETTINGS (
    EPOCHS integer,
    ...
)

Paramètres

  • model_name : nom du modèle. Le nom du modèle est unique au sein d'un schéma.

  • FROM { table_name | (select_statement) } : nom de la table ou instruction de requête contenant les données utilisées pour l'entraînement du modèle. Les résultats de l'instruction doivent contenir au moins deux colonnes, dont l'une doit être la colonne temporelle.

  • TARGET column_name : nom de la colonne utilisée pour spécifier la cible de la prévision de séries temporelles ou de la détection d'anomalies dans les séries temporelles.

  • TASK : type de tâches que le modèle doit exécuter. Le tableau suivant décrit les types de tâches pris en charge par Lindorm ML.

    Type de tâche Mot clé
    Prévision de séries temporelles TIME_SERIES_FORECAST
    Détection d'anomalies dans les séries temporelles TIME_SERIES_ANOMALY_DETECTION
  • ALGORITHM : algorithme utilisé par le modèle. Le tableau suivant décrit les algorithmes pris en charge par Lindorm ML.

    Type de tâcheAlgorithmeDescription
    Prévision de séries temporellesDeepARL'algorithme DeepAR est un réseau neuronal profond basé sur un réseau neuronal récurrent (RNN). Pour plus d'informations, consultez les articles associés.
    TFTL'algorithme Temporal Fusion Transformer (TFT) est un réseau neuronal profond basé sur le mécanisme Transformer. Pour plus d'informations, consultez les articles associés.
    Détection d'anomalies dans les séries temporellesesdCet algorithme a été développé par Alibaba DAMO Academy et s'applique aux anomalies ponctuelles, telles que les pics dans les courbes de surveillance et les scénarios où un petit nombre de points de données diffère significativement des autres. Pour plus d'informations, consultez la section Détection d'anomalies dans les séries temporelles.
    nsigmaCet algorithme a été développé par Alibaba DAMO Academy. Il est simple et facilite l'analyse des causes des anomalies. Pour plus d'informations, consultez la section Détection d'anomalies dans les séries temporelles.
    ttestCet algorithme a été développé par Alibaba DAMO Academy. Il permet d'identifier si les métriques liées aux données de séries temporelles sont anormales en raison d'une modification de la valeur moyenne. Pour plus d'informations, consultez la section Détection d'anomalies dans les séries temporelles.
  • PREPROCESSORS 'string' : opérations de prétraitement pour des colonnes spécifiques. Ce paramètre est facultatif. En général, les opérations de prétraitement sont spécifiées par des chaînes JSON.

    La valeur du paramètre PREPROCESSORS contient deux composants : Columns qui indique les colonnes à prétraiter et Transformers qui indique les opérations de prétraitement à effectuer. Les opérations spécifiées par Transformers sont exécutées dans l'ordre spécifié. Chaque composant Transformers contient deux champs : Name qui spécifie le nom de l'opération de prétraitement et Parameters qui spécifie les paramètres liés à l'opération de prétraitement. L'exemple suivant montre une valeur d'exemple pour le paramètre PREPROCESSORS :

    PREPROCESSORS '[
    {
      "Columns":[
        "c1"
      ],
      "Transformers":[
        {
          "Name": "Imputer",
          "Parameters": {"value": 0}
        },
        {
          "Name": "StandardScaler"
        }
      ]
    },
    {
      "Columns":[
        "c2",
        "c3"
      ],
      "Transformers":[
        {
          "Name": "OrdinalEncoder"
        }
      ]
    }
    ]'
    Remarque

    Dans la valeur du paramètre PREPROCESSORS, le composant Columns et le champ Parameters sont tous deux facultatifs.

    Les opérations de prétraitement spécifiées lors de l'entraînement du modèle sont automatiquement appliquées lors de l'inférence du modèle. Le tableau suivant décrit les opérations de prétraitement prises en charge par Lindorm ML.

    Opération de prétraitementParamètreDescription
    OneHotEncoderAucunEncode les caractéristiques catégorielles en valeurs binaires. Cette opération s'applique aux caractéristiques catégorielles non comparables en taille.
    OrdinalEncoderAucunEncode les caractéristiques catégorielles en entiers à partir de 0. Cette opération s'applique aux caractéristiques catégorielles comparables en taille.
    Imputer
    • method : chaîne indiquant la méthode d'interpolation. Valeurs valides : dummy, mean, median, most_frequent, roll7 et last. Valeur par défaut : dummy.
    • value : entier à interpoler. Valeur par défaut : 0. Ce paramètre est facultatif.
    Interpole les valeurs manquantes. Vous pouvez sélectionner plusieurs politiques d'interpolation.
    StandardScalerAucunConvertit les données en valeurs suivant une distribution normale standard avec une moyenne de 0 et un écart type de 1. Cette opération est également connue sous le nom de normalisation z-score.
    MinMaxScaler
    • min : entier indiquant la valeur minimale de la plage.
    • max : entier indiquant la valeur maximale de la plage. Ce paramètre est facultatif.
    Met à l'échelle les données dans une plage (min,max). Par défaut, la plage de valeurs est (0,1).
    LogTransformerAucunConvertit les valeurs en leurs logarithmes.
  • SETTINGS : autres paramètres configurables. Vous pouvez spécifier différents paramètres selon les types de tâches. Le tableau suivant décrit les paramètres pris en charge par Lindorm ML.

    Paramètres liés à la prévision de séries temporelles

    Paramètre Type Description Obligatoire
    epochs INTEGER Nombre d'époques pour l'entraînement du modèle. Ce paramètre s'applique uniquement à la prévision de séries temporelles. Valeur par défaut : 80 Oui
    time_column VARCHAR Colonne temporelle. Oui
    group_columns VARCHAR Colonne de regroupement. Cette colonne est utilisée comme colonne TAG pour déterminer la série temporelle. Oui
    freq VARCHAR Fréquence des données de séries temporelles. Exemple : 1D. Oui
    prediction_length INTEGER Pas de la prévision de séries temporelles. Oui
    feat_static_columns VARCHAR Ensemble de colonnes de caractéristiques statiques. Séparez plusieurs colonnes par des virgules (,). Non

    Paramètres liés à la détection d'anomalies dans les séries temporelles.

    Pour plus d'informations sur les paramètres d'entraînement pris en charge par la détection d'anomalies dans les séries temporelles, consultez la section Détection d'anomalies dans les séries temporelles.

Exemples

CREATE MODEL tft_model
FROM (SELECT * FROM fresh_sales WHERE `time` > '2021-02-08T00:00:00+08:00')
TARGET sales
TASK time_series_forecast
ALGORITHM tft
SETTINGS
(
  time_column 'time',
  group_columns 'id_code',
  feat_static_columns 'cate1_id,cate2_id,brand_id',
  context_length '28',
  prediction_length '6',
  epochs '5',
  freq '1D'
);

Gestion des modèles

Après l'exécution de l'instruction CREATE MODEL, exécutez des instructions SQL pour vérifier si le modèle est dans l'état Ready.

Consulter les informations de tous les modèles de la base de données

Utilisez l'instruction SHOW MODELS pour consulter les informations de base de tous les modèles présents dans la base de données.

L'instruction suivante illustre comment consulter les informations de tous les modèles d'une base de données :

SHOW MODELS;

Le résultat suivant est renvoyé :

+-------------------+--------+--------------------+-------------------------------+-------------------------------+
|       name        | status |    sql_function    |         created_time          |          update_time          |
+-------------------+--------+--------------------+-------------------------------+-------------------------------+
| tft_model         | Ready  | forecast           | 2022-11-04T11:38:05.873+08:00 | 2022-11-04T11:39:14.046+08:00 |
+-------------------+--------+--------------------+-------------------------------+-------------------------------+
1 rows in set (524 ms)

Le tableau suivant décrit les valeurs renvoyées.

Valeur renvoyée Description
name Nom du modèle.
status État du modèle. Valeurs valides : Init, Training, Ready et Failed. La valeur Init indique que le modèle est en cours d'initialisation. La valeur Training indique que le modèle est en cours d'entraînement. La valeur Ready indique que le modèle est entraîné. La valeur Failed indique que l'entraînement du modèle a échoué.
sql_function Fonction d'inférence.
created_time Heure de création du modèle.
update_time Heure de la dernière mise à jour du modèle.

Consulter les informations d'un modèle spécifique

Utilisez l'instruction SHOW MODEL model_name pour consulter les informations détaillées d'un modèle spécifique.

L'instruction suivante illustre comment consulter les informations détaillées d'un modèle spécifique :

SHOW MODEL tft_model;

Le résultat suivant est renvoyé :

+-----------+--------+--------------+----------------------+-----------+------------------------------------+---------------+-------------------------------------------------+--------------------------------+-------------------------------+-------------------------------+
|   name    | status | sql_function |     task_type        | algorithm |               query                | preprocessors |                    settings                     |            metrics             |         created_time          |          update_time          |
+-----------+--------+--------------+----------------------+-----------+------------------------------------+---------------+-------------------------------------------------+--------------------------------+-------------------------------+-------------------------------+
| tft_model | Ready  | forecast     | TIME_SERIES_FORECAST | TFT       | SELECT `time`, FIRST(`sales`) AS   | []            | {time_column=time, group_columns=id_code,       | {MAPE=0.35002756118774414,     | 2022-11-04T11:38:05.873+08:00 | 2022-11-04T11:39:14.046+08:00 |
|           |        |              |                      |           | `sales`, `id_code`, `cate1_id`,    |               | feat_static_columns=cate1_id,cate2_id,brand_id, | MASE=0.41281554008773325,      |                               |                               |
|           |        |              |                      |           | `cate2_id`, `brand_id` FROM        |               | context_length=28, prediction_length=6,         | MSE=456.3769938151042}         |                               |                               |
|           |        |              |                      |           | `fresh_sales` WHERE `time` >       |               | epochs=5, freq=1D,train_mode=LOCAL,             |                                |                               |                               |
|           |        |              |                      |           | '2021-02-08T00:00:00+08:00'        |               | past_length=28,                      |                                |                               |                               |
|           |        |              |                      |           | sample by 1D fill zero             |               | forecast_start=2022-07-31 08:00:00}             |                                |                               |                               |
+-----------+--------+--------------+----------------------+-----------+------------------------------------+---------------+-------------------------------------------------+--------------------------------+-------------------------------+-------------------------------+
1 rows in set (334 ms)

Le tableau suivant décrit les valeurs renvoyées.

Valeur renvoyée Description
task_type Type de tâches que le modèle doit exécuter.
algorithm Nom de l'algorithme utilisé par le modèle.
query Instruction de requête utilisée pour l'entraînement du modèle.
preprocessors Syntaxe des opérations de prétraitement.
settings Paramètres liés au modèle.
metrics Métriques du modèle.

Supprimer un modèle spécifique

Utilisez l'instruction DROP MODEL model_name pour supprimer un modèle spécifique.

L'instruction suivante illustre comment supprimer un modèle spécifique :

DROP MODEL tft_model;

Le résultat suivant est renvoyé :

No rows affected (0.397 seconds)

Inférence du modèle

Si le modèle est dans l'état Ready, utilisez des fonctions système pour effectuer l'inférence du modèle. Différentes fonctions sont disponibles selon les types de tâches.

Syntaxe

SELECT function_name(field_name, model_name, params) FROM table_name [WHERE clause] SAMPLE BY 0;

function_name : nom de la fonction système. Valeurs valides :

  • FORECAST : fonction utilisée pour la prévision de séries temporelles. Pour plus d'informations sur la configuration des paramètres field_name, model_name et params de la fonction FORECAST, consultez la section Fonction de prévision de séries temporelles.

  • ANOMALY_DETECT : fonction utilisée pour la détection d'anomalies dans les séries temporelles. Pour plus d'informations sur la configuration des paramètres field_name, model_name et params de la fonction ANOMALY_DETECT, consultez la section Fonction de détection d'anomalies dans les séries temporelles.

Exemples

SELECT device_id, region, `time`, raw(temperature) as temperature, anomaly_detect(temperature, ad_model) as detect_result from sensor WHERE time >= '2022-01-01 00:00:00' and time < '2022-01-01 00:01:00' SAMPLE BY 0;