Cette page explique comment entraîner un modèle de classification ou de régression à partir d'un ensemble de données tabulaire à l'aide de la console Google Cloud ou de l'API Vertex AI.
Avant de commencer
Pour pouvoir entraîner un modèle, vous devez effectuer les opérations suivantes :
Entraîner un modèle
console Google Cloud
Dans Google Cloud Console, dans la section Vertex AI, accédez à la page Ensembles de données.
Cliquez sur le nom de l'ensemble de données que vous souhaitez utiliser pour entraîner votre modèle afin d'ouvrir sa page d'informations.
Si votre type de données utilise des ensembles d'annotations, sélectionnez celui que vous souhaitez utiliser pour ce modèle.
Cliquez sur Entraîner le nouveau modèle.
Sélectionnez Autre.
Dans la page Entraîner le nouveau modèle, procédez comme suit :
Sélectionnez la méthode d'entraînement de modèle.
AutoML
est un bon choix pour un large éventail de cas d'utilisation.
Cliquez sur Continuer.
Saisissez le nom à afficher pour votre nouveau modèle.
Sélectionnez votre colonne cible.
La colonne cible correspond à la valeur prédite par le modèle.
En savoir plus sur les exigences sur les colonnes cibles.
Facultatif : Pour exporter votre ensemble de données de test vers BigQuery, cochez la case Exporter l'ensemble de données de test vers BigQuery et indiquez le nom de la table.
Facultatif : Pour choisir comment répartir les données entre les ensembles d'entraînement, de test et de validation, ouvrez les options avancées. Vous avez le choix entre les options de répartition des données suivantes :
- Aléatoire (par défaut) : Vertex AI sélectionne de manière aléatoire les lignes associées à chacun des ensembles de données. Par défaut, Vertex AI sélectionne 80 % des lignes de données pour l'ensemble d'entraînement, 10 % pour l'ensemble de validation et 10 % pour l'ensemble de test.
- Manuel : Vertex AI sélectionne des lignes de données pour chacun des ensembles de données en fonction des valeurs d'une colonne de répartition des données. Indiquez le nom de la colonne de répartition des données.
- Chronologique : Vertex AI divise les données en fonction de l'horodatage dans une colonne Heure. Indiquez le nom de la colonne Heure.
En savoir plus sur les répartitions de données.
Cliquez sur Continuer.
Facultatif : Cliquez sur Générer des statistiques. La génération de statistiques remplit les menus déroulants Transformation.
Sur la page des options d'entraînement, examinez votre liste de colonnes et excluez les colonnes d'entraînement qui ne doivent pas être utilisées pour entraîner le modèle.
Examinez les transformations sélectionnées pour vos caractéristiques incluses et vérifiez si les données non valides sont autorisées. Effectuez ensuite les mises à jour requises.
Apprenez-en davantage sur les transformations et sur les données non valides.
Si vous souhaitez spécifier une colonne de pondération ou modifier votre objectif d'optimisation par défaut, ouvrez les Options avancées et procédez aux sélections.
En savoir plus sur les colonnes de pondération et les objectifs d'optimisation.
Cliquez sur Continuer.
Sur la fenêtre Options de calcul et tarifs, configurez les éléments suivants :
Saisissez la durée maximale (en heures) d'entraînement de votre modèle.
Ce paramètre vous permet de définir un plafond pour les coûts d'entraînement. Le temps écoulé peut être supérieur à cette valeur, car la création d'un modèle implique d'autres opérations.
La durée d'entraînement suggérée dépend de la taille de vos données d'entraînement. Le tableau ci-dessous présente les plages de durée d'entraînement suggérées par nombre de lignes. Un grand nombre de colonnes augmentera également la durée d'entraînement requise.
Lignes Durée d'entraînement suggérée Moins de 100 000 1 à 3 heures 100 000 - 1 000 000 1 à 6 heures 1 000 000 - 10 000 000 1 à 12 heures Plus de 10 000 000 3 à 24 heures Cliquez sur Démarrer l'entraînement.
L'entraînement de modèle peut prendre plusieurs heures, en fonction de la taille et de la complexité de vos données et du budget d'entraînement, le cas échéant. Vous pouvez fermer cet onglet et y revenir plus tard. Vous recevrez un e-mail une fois l'entraînement terminé.
API
Sélectionnez un objectif de type de données tabulaires.
Classification
Sélectionnez un onglet pour votre langage ou environnement :
REST
Vous utilisez la commande trainingPipelines.create pour entraîner un modèle.
Entraîner le modèle
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION : votre région.
- PROJECT : l'ID de votre projet.
- TRAININGPIPELINE_DISPLAY_NAME : nom à afficher du pipeline d'entraînement créé pour cette opération.
- TARGET_COLUMN : colonne (valeur) que le modèle doit prédire.
- WEIGHT_COLUMN (facultatif) : colonne de pondération. En savoir plus
- TRAINING_BUDGET : durée maximale pendant laquelle le modèle doit être entraîné, en milli-heures-nœud (1 000 milli-heures-nœud correspondent à un heure-nœud).
- OPTIMIZATION_OBJECTIVE : obligatoire uniquement si vous ne souhaitez pas atteindre l'objectif d'optimisation par défaut pour votre type de prédiction. En savoir plus
- TRANSFORMATION_TYPE : le type de transformation est fourni pour chaque colonne utilisée pour entraîner le modèle. En savoir plus
- COLUMN_NAME : nom de la colonne avec le type de transformation spécifié. Chaque colonne utilisée pour entraîner le modèle doit être spécifiée.
- MODEL_DISPLAY_NAME : nom à afficher du modèle nouvellement entraîné.
- DATASET_ID : ID de l'ensemble de données d'entraînement.
-
Vous pouvez fournir un objet
Split
pour contrôler votre répartition des données. Pour en savoir plus sur le contrôle de la répartition des données, consultez la section Contrôler la répartition des données à l'aide de REST. - PROJECT_NUMBER : numéro de projet généré automatiquement pour votre projet.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corps JSON de la requête :
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "classification", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Java.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Node.js.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Régression
Sélectionnez un onglet pour votre langage ou environnement :
REST
Vous utilisez la commande trainingPipelines.create pour entraîner un modèle.
Entraîner le modèle
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION : votre région.
- PROJECT : l'ID de votre projet.
- TRAININGPIPELINE_DISPLAY_NAME : nom à afficher du pipeline d'entraînement créé pour cette opération.
- TARGET_COLUMN : colonne (valeur) que le modèle doit prédire.
- WEIGHT_COLUMN (facultatif) : colonne de pondération. En savoir plus
- TRAINING_BUDGET : durée maximale pendant laquelle le modèle doit être entraîné, en milli-heures-nœud (1 000 milli-heures-nœud correspondent à un heure-nœud).
- OPTIMIZATION_OBJECTIVE : obligatoire uniquement si vous ne souhaitez pas atteindre l'objectif d'optimisation par défaut pour votre type de prédiction. En savoir plus
- TRANSFORMATION_TYPE : le type de transformation est fourni pour chaque colonne utilisée pour entraîner le modèle. En savoir plus
- COLUMN_NAME : nom de la colonne avec le type de transformation spécifié. Chaque colonne utilisée pour entraîner le modèle doit être spécifiée.
- MODEL_DISPLAY_NAME : nom à afficher du modèle nouvellement entraîné.
- DATASET_ID : ID de l'ensemble de données d'entraînement.
-
Vous pouvez fournir un objet
Split
pour contrôler votre répartition des données. Pour en savoir plus sur le contrôle de la répartition des données, consultez la section Contrôler la répartition des données à l'aide de REST. - PROJECT_NUMBER : numéro de projet généré automatiquement pour votre projet.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corps JSON de la requête :
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "regression", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Java.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Node.js.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Contrôler la répartition des données à l'aide de REST
Vous pouvez contrôler la manière dont vos données d'entraînement sont réparties entre les ensembles d'entraînement, de validation et de test. Lorsque vous utilisez l'API Vertex AI, utilisez l'objet Split
pour déterminer votre répartition des données. L'objet Split
peut être inclus dans l'objet inputDataConfig
sous la forme de plusieurs types d'objets, chacun offrant une manière différente de répartir les données d'entraînement.
Les méthodes que vous pouvez utiliser pour répartir vos données dépendent du type de données :
FractionSplit
:- TRAINING_FRACTION : fraction des données d'entraînement à utiliser pour l'ensemble d'entraînement.
- VALIDATION_FRACTION : fraction des données d'entraînement à utiliser pour l'ensemble de validation.
- TEST_FRACTION : fraction des données d'entraînement à utiliser pour l'ensemble de test.
Si l'une des fractions est spécifiée, elles doivent toutes être spécifiées. La somme des fractions doit être égale à 1,0. En savoir plus.
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
PredefinedSplit
:- DATA_SPLIT_COLUMN : colonne contenant les valeurs de répartition des données (
TRAIN
,VALIDATION
,TEST
).
Spécifiez manuellement la répartition des données pour chaque ligne à l'aide d'une colonne fractionnée. En savoir plus.
"predefinedSplit": { "key": DATA_SPLIT_COLUMN },
- DATA_SPLIT_COLUMN : colonne contenant les valeurs de répartition des données (
TimestampSplit
:- TRAINING_FRACTION : pourcentage des données d'entraînement à utiliser pour l'ensemble d'entraînement. La valeur par défaut est 0,80.
- VALIDATION_FRACTION : pourcentage des données d'entraînement à utiliser pour l'ensemble de validation. La valeur par défaut est 0,10.
- TEST_FRACTION : pourcentage des données d'entraînement à utiliser pour l'ensemble de test. La valeur par défaut est 0,10.
- TIME_COLUMN : colonne contenant les horodatages.
Si l'une des fractions est spécifiée, elles doivent toutes être spécifiées. La somme des fractions doit être égale à 1,0. En savoir plus.
"timestampSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION, "key": TIME_COLUMN }
Objectifs d'optimisation pour les modèles de classification ou de régression
Lorsque vous entraînez un modèle, Vertex AI sélectionne un objectif d'optimisation par défaut en fonction de votre type de modèle et du type de données utilisé pour votre colonne cible.
Il est préférable d'utiliser les modèles de classification pour effectuer les opérations suivantes :Objectif d'optimisation | Valeur de l'API | Utilisez cet objectif si vous voulez... |
---|---|---|
AUC ROC | maximize-au-roc |
Maximiser l'aire sous la courbe ROC (Receiver Operating Characteristic). Distinguer les classes. Valeur par défaut pour la classification binaire. |
Perte logistique | minimize-log-loss |
Maintenir les probabilités de prédiction aussi précises que possible. Seul objectif compatible pour la classification à classes multiples. |
PR AUC | maximize-au-prc |
Maximiser l'aire sous la courbe de précision/rappel. Optimiser les résultats des prédictions pour la classe minoritaire. |
Précision pour la valeur de rappel | maximize-precision-at-recall |
Optimiser la précision à une valeur de rappel spécifique. |
Rappel pour la valeur de précision | maximize-recall-at-precision |
Optimiser le rappel à une valeur de précision spécifique. |
Objectif d'optimisation | Valeur de l'API | Utilisez cet objectif si vous voulez... |
---|---|---|
RMSE | minimize-rmse |
Minimiser la racine carrée de l'erreur quadratique moyenne (RMSE). Capturer des valeurs plus extrêmes avec précision. Valeur par défaut. |
MAE | minimize-mae |
Minimiser l'erreur absolue moyenne (EAM). Afficher les valeurs extrêmes comme des anomalies ayant moins d'incidence sur le modèle. |
RMSLE | minimize-rmsle |
Minimiser la racine carrée de l'erreur quadratique moyenne (RMSLE). Pénaliser l'erreur sur la taille relative plutôt que sur la valeur absolue. Utile lorsque les valeurs prédites et réelles peuvent être très élevées. |
Étape suivante
- Évaluez votre modèle.
- Découvrez comment exporter votre modèle.