Fonction ML.TRAINING_INFO

Fonction ML.TRAINING_INFO

La fonction ML.TRAINING_INFO vous permet d'afficher des informations sur les itérations d'entraînement d'un modèle. ML.TRAINING_INFO peut être exécutée pendant ou après l'exécution de la requête CREATE MODEL. Si vous exécutez une requête contenant la fonction ML.TRAINING_INFO avant la fin de la première itération d'entraînement, la requête affiche une erreur Not found.

ML.TRAINING_INFO affiche les colonnes suivantes :

  • training_run : la valeur de cette colonne est égale à zéro pour un modèle nouvellement créé. Si vous réentraînez le modèle à l'aide de warm_start, cette valeur est incrémentée.
  • iteration : numéro d'itération du cycle d'entraînement. La valeur pour la première itération est égale à zéro. Cette valeur est incrémentée pour chaque cycle d'entraînement supplémentaire.
  • loss : statistique de perte calculée après une itération sur les données d'entraînement. La perte correspond à la perte logistique pour une régression logistique et à l'erreur quadratique moyenne pour une régression linéaire. Pour les régressions logistiques multiclasses, loss correspond à la perte logistique d'entropie croisée. Pour les modèles de factorisation matricielle explicites, la perte est une erreur quadratique moyenne calculée sur les notes d'entrée vues. Pour les modèles de factorisation matricielle implicites, la perte est calculée à l'aide de la formule suivante :

    \( Loss = \sum_{u, i} c_{ui}(p_{ui} - x^T_uy_i)^2 + \lambda(\sum_u||x_u||^2 + \sum_i||y_i||^2) \)

    Pour en savoir plus sur la signification des variables, cliquez ici.

  • eval_loss : statistique de perte calculée à partir des données exclues. Pour les modèles de k-moyennes, ML.TRAINING_INFO n'affiche pas de colonne eval_loss. Si DATA_SPLIT_METHOD est 'NO_SPLIT', toutes les entrées de la colonne eval_loss sont NULL.

  • learning_rate : taux d'apprentissage de cette itération.

  • duration_ms : durée de l'itération, en millisecondes.

  • cluster_info : tableau de structures contenant les champs centroid_id, cluster_radius et cluster_size. ML.TRAINING_INFO calcule cluster_radius et cluster_size avec des fonctionnalités standardisées. Valeurs affichées uniquement pour les modèles de k-moyennes.

Autorisations "ML.TRAINING_INFO"

Les autorisations bigquery.models.create et bigquery.models.getData sont toutes deux requises pour exécuter ML.TRAINING_INFO.

Syntaxe de ML.TRAINING_INFO

ML.TRAINING_INFO(MODEL `project_id.dataset.model`)

Où :

  • project_id est l'ID de votre projet.
  • dataset est l'ensemble de données BigQuery contenant le modèle.
  • model est le nom du modèle.

Exemple ML.TRAINING_INFO

L'exemple suivant récupère des informations d'entraînement à partir de mymodel dans mydataset. L'ensemble de données se trouve dans votre projet par défaut.

SELECT
  *
FROM
  ML.TRAINING_INFO(MODEL `mydataset.mymodel`)

Limites de ML.TRAINING_INFO

La fonction ML.TRAINING_INFO est soumise aux limites suivantes :

  • Les modèles TensorFlow importés ne sont pas compatibles.
  • Pour les modèles de série temporelle, cette fonction ne renvoie que trois colonnes : training_run, iteration et duration_ms. Il n'expose pas les informations d'entraînement par itération ni par série temporelle si plusieurs séries temporelles sont prévues à la fois. La valeur duration_ms correspond au coût horaire total de l'intégralité du processus.