BigQuery ML permet aux utilisateurs de créer et d’exécuter des modèles de Machine Learning dans BigQuery en utilisant des requêtes SQL standard. L’intérêt de l’outil est qu’il permet à des personnes connaissant le SQL de pouvoir utiliser ‘out-of-the-box’ des technologies de type Machine Learning sans avoir de grandes connaissances en Data Science, et sans avoir recours à l’écriture de programmes Java ou Python.

Les analystes de données peuvent ainsi utiliser le Machine Learning directement depuis BigQuery, leur outil Data Warehouse principal.

Un autre avantage est que l’outil permet de développer des modèles personnalisés de Machine Learning sur des très gros volumes d’informations sans avoir besoin de déplacer les données. BigQuery ML augmente la vitesse de développement et d’innovation en amenant le Machine Learning au niveau des données.

Pour ceux qui ont plus de connaissances en Machine Learning BigQuery ML permet d’ajuster finement de nombreuses options et hyperparamètres des modèles utilisés comme le learning rate, la taille des batch, les régularisations, le drop out, l’architecture des modèles deep neural network, les optimizers, la répartition des données en ensembles d’entraînement et d’évaluation,…

Les modèles de Machine Learning supportés par BigQuery ML

BigQuery ML supporte les modèles suivants:

Le processus BigQuery ML

BigQuery ML démocratise la création et l’exécution de modèles de Machine Learning avec des extensions SQL propriétaires qui permettent de décrire les phases principales du cycle de vie d’un modèle de machine learning.

« Insérer diagramme create - evaluate - predict»

Création des jeux de données

Les jeux de données BigQuery ML sont les datasets BigQuery. BigQuery ML va utiliser les tables ou des résultats de requêtes, pour entraîner des modèles puis évaluer les modèles et enfin inférer les prédictions à partir des modèles entraînés. Lors de la création d’un modèle on peut spécifier la méthode (DATA_SPLIT_METHOD) utilisée pour répartir les données en jeux de données d’entraînement et d’évaluation. Parmi les options disponibles il est possible de laisser BigQuery répartir automatiquement les données d’entraînement ou d’évaluation, ou de spécifier à BigQuery quels exemples doivent être utilisés pour l’entraînement ou l’évaluation.

Entraînement des modèles

L’instruction CREATE MODEL permet de créer et d’entraîner un modèle de Machine Learning avec BigQuery ML.

Elle propose des options permettant notamment de:

Bien évidemment les options passées à l’instruction CREATE MODEL varient en fonction du type de modèle entraîné.

A la fin de l’exécution de cette instruction, un modèle BigQuery ML est disponible dans le dataset spécifié lors de sa création.

La fonction ML.TRAINING_INFO fournit des informations à propos de l’entraînement d’un modèle, par exemple l’itération courante, la valeur de la loss ou du learning rate. Elle peut être exécutée pendant l’entraînement d’un modèle ou après.

Evaluation des modèles

Une fois le modèle entraîné, BigQuery ML présente une des informations directement dans la console permettant d’évaluer les métriques principaux du modèle de machine learning.

BigQuery ML fournit également des fonctions pour obtenir ces métriques, notamment:

Prédiction à partir de modèles entraînés

Lorsqu’un modèle entraîné est disponible dans BigQuery ML il est possible de l’utiliser pour réaliser des prédictions. Différentes fonctions sont disponibles suivant le type de modèle:

Inspecter les modèles

BigQuery ML met à disposition de nombreuses fonctions pour inspecter les modèles et leurs caractéristiques. On notera:

Préparation des données et feature engineering

Il y a deux types de préparation des données dans BigQuery ML: automatique et manuelle.

BigQuery ML prépare automatiquement les données pendant l’entraînement des modèles via l’instruction CREATE MODEL. Les variables ou caractéristiques d’entrée sont transformées: standartisation des colonnes numériques, one-hot encoding des colonnes non numériques (hors timestamp), multi-hot encoding des tableaux, extraction des composants de timestamp, expansion des structures en colonnes uniques, gestion des données manquantes via imputation. Ce préprocessing automatique est inclu lors de l’export d’un modèle.

BigQuery ML fournit la clause TRANSFORM pour définir manuellement des prétraitements spécifiques sur les données ou leurs caractéristiques. Des fonctions spécifiques de préprocessing scalaires (par exemple ML.BUCKETIZE) ou analytiques (par exemple ML.QUANTILE_BUCKETIZE) sont disponibles. Le préprocessing définit par la clause TRANSFORM est inclu dans le modèle et est automatiquement appliqué lors des phases d’évaluation et de prédiction. Il n’est toutefois pas possible d’exporter un modèle si la clause TRANSFORM a été utilisée pour faire du feature engineering.

Export des modèles entraînés

L’instruction EXPORT MODEL permet d’exporter dans Cloud Storage la plupart des modèles entrainés avec BigQuery ML. Les modèles sont exportés au format TensorFlow SavedModel ou XGBoost Booster dans le cas des boosted trees. Ces modèles pourront ensuite être utilisés pour faire de la prédiction en ligne ou être édités en Python. Les modèles exportés non-AutoML pourront aussi être déployés dans Google Cloud AI Platform.

Modèles built-in et modèles externes

Les modèles built-in sont entraînés au sein de BigQuery. Ce sont les modèles comme la régression linéaire, la régression logistique, k-means, la factorisation de matrices et les modèles de séries temporelles.

Les modèles exdeternes sont entraînés en utilisant d’autres services Google Cloud. Les modèles Deep Neural Network et Boosted Tree sont entraînés sur AI Platform. Les modèles AutoML sont entrainés sur le backend AutoML Tables. Étant donné que les modèles externes sont entraînés en dehors de BigQuery, ces charges de travail ne sont pas préemptives. Par conséquent, pour garantir que les autres charges de travail ne sont pas affectées, seules les réservations avec une affectation de type de travail ML_EXTERNAL peuvent être utilisées pour ces travaux externes.

Liens intéressants