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
Avant d'entraîner un modèle, vous devez effectuer les opérations suivantes :
Entraîner un modèle
Console Google Cloud
Dans la section Vertex AI de la console Google Cloud , 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 qui sera prédite par le modèle.
En savoir plus sur les exigences concernant la colonne cible
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.
- Manuelle : 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 répartit les données en fonction du code temporel dans une colonne de date/heure. Indiquez le nom de la colonne de date/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 les caractéristiques incluses et vérifiez si les données non valides sont autorisées. Effectuez ensuite les modifications requises.
En savoir plus sur les transformations et 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.
Dans la fenêtre Options de calcul et tarifs, effectuez la configuration suivante :
Saisissez la durée maximale d'entraînement du modèle (en heures).
Ce paramètre vous permet de définir un plafond pour les coûts d'entraînement. Le temps réel é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 augmente é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 du modèle peut prendre plusieurs heures, en fonction de la taille et de la complexité de vos données et de votre 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 de votre modèle terminé.
API
Sélectionnez un objectif de type de données tabulaires.
Classification
Sélectionnez l'onglet correspondant à votre langage ou environnement :
REST
Vous utilisez la commande trainingPipelines.create pour entraîner un modèle.
Entraînez le modèle.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- LOCATION : votre région.
- PROJECT : 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èmes d'heures-nœud (1 000 millièmes d'heures-nœud correspondent à une 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 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 sur l'utilisation 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 l'onglet correspondant à votre langage ou environnement :
REST
Vous utilisez la commande trainingPipelines.create pour entraîner un modèle.
Entraînez le modèle.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- LOCATION : votre région.
- PROJECT : .
- 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èmes d'heures-nœud (1 000 millièmes d'heures-nœud correspondent à une 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 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 sur l'utilisation 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 utilisez 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 vous spécifiez l'une des fractions, spécifiez-les toutes. 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 codes temporels.
Si vous spécifiez l'une des fractions, spécifiez-les toutes. 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 du type de modèle et du type de données utilisé pour la colonne cible.
Les modèles de classification sont les mieux adaptés pour les objectifs suivants :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). Distingue les classes. Valeur par défaut pour la classification binaire. |
Perte logistique | minimize-log-loss |
Maintenir les probabilités d'inférence aussi précises que possible. Seul objectif compatible pour la classification à classes multiples. |
AUC PR | maximize-au-prc |
Maximiser l'aire sous la courbe de précision/rappel. Optimise les résultats des inférences 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 les valeurs les plus extrêmes avec précision. Valeur par défaut. |
EAM | minimize-mae |
Minimiser l'erreur absolue moyenne (EAM). Affiche 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 logarithmique quadratique moyenne (RMSLE). Pénalise 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. |
Étapes suivantes
- Évaluez votre modèle.
- Découvrez comment exporter votre modèle.