Bonnes pratiques de formation des modèles - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Bonnes pratiques de formation des modèles

Vous pouvez prendre certaines mesures pour améliorer les performances des modèles Neptune ML.

Choisissez la bonne propriété de nœud

Les propriétés de votre graphique ne sont peut-être pas toutes significatives ou pertinentes pour vos tâches d'apprentissage automatique. Toutes les propriétés non pertinentes doivent être exclues lors de l'exportation des données.

Voici quelques bonnes pratiques :

  • Faites appel à des experts du domaine pour vous aider à évaluer l'importance des fonctionnalités et la faisabilité de leur utilisation à des fins de prévisions.

  • Supprimez les fonctionnalités que vous considérez comme redondantes ou inutiles afin de réduire le bruit dans les données et les corrélations sans importance.

  • Procédez à l'itération pendant que vous créez votre modèle. Ajustez les fonctionnalités, les combinaisons de fonctionnalités et les objectifs de réglage au fur et à mesure.

Le traitement des fonctionnalités du manuel Amazon Machine Learning Developer Guide fournit des instructions supplémentaires relatives au traitement des fonctionnalités pertinentes pour Neptune ML.

Gestion des points de données aberrants

Une valeur aberrante est un point de données significativement différent des données restantes. Les données aberrantes peuvent gâcher ou induire en erreur le processus de formation, ce qui se traduit par un temps d'entraînement plus long ou des modèles moins précis. À moins qu'elles ne soient vraiment importantes, vous devez éliminer les valeurs aberrantes avant d'exporter les données.

Supprimer les nœuds et les arêtes dupliqués

Les graphes stockés dans Neptune peuvent comporter des nœuds ou des arêtes dupliqués. Ces éléments redondants introduiront du bruit lors de l'entraînement des modèles de machine learning. Éliminez les nœuds ou les tronçons dupliqués avant d'exporter les données.

Régler la structure du graphique

Lorsque le graphique est exporté, vous pouvez modifier la façon dont les entités sont traitées et comment le graphique est construit, afin d'améliorer les performances du modèle.

Voici quelques bonnes pratiques :

  • Lorsqu'une propriété d'arête a la signification de catégories d'arêtes, cela vaut la peine de la transformer en types d'arêtes dans certains cas.

  • La politique de normalisation par défaut utilisée pour une propriété numérique estmin-max, mais dans certains cas, d'autres politiques de normalisation fonctionnent mieux. Vous pouvez prétraiter la propriété et modifier la politique de normalisation comme expliqué dansÉléments d'unmodel-HPO-configuration.json fichier.

  • Le processus d'exportation génère automatiquement des types de fonctionnalités en fonction des types de propriétés. Par exemple, il traite lesString propriétés comme des caractéristiques catégoriellesFloat et lesInt propriétés comme des caractéristiques numériques. Si nécessaire, vous pouvez modifier le type de fonction après l'exportation (voirÉléments d'unmodel-HPO-configuration.json fichier).

Réglez les plages d'hyperparamètres et les valeurs par défaut

L'opération de traitement des données déduit des plages de configuration des hyperparamètres à partir du graphique. Si les plages d'hyperparamètres et les valeurs par défaut du modèle généré ne fonctionnent pas correctement pour les données de votre graphique, vous pouvez modifier le fichier de configuration HPO pour créer votre propre stratégie de réglage des hyperparamètres.

Voici quelques bonnes pratiques :

  • Lorsque le graphique s'agrandit, la taille des dimensions masquées par défaut n'est peut-être pas suffisamment grande pour contenir toutes les informations. Vous pouvez modifier l'num-hiddenhyperparamètre pour contrôler la taille des dimensions masquées.

  • Pour les modèles d'intégration de graphes de connaissances (KGE), vous souhaiterez peut-être modifier le modèle spécifique utilisé en fonction de la structure de votre graphe et de votre budget.

    TrainsEles modèles ont du mal à gérer les relations one-to-many (1-N), many-to-one (N-1) et many-to-many (N-N). DistMultles modèles ont du mal à gérer les relations symétriques. RotatEest efficace pour modéliser toutes sortes de relations mais coûte plus cher queTrainsE etDistMult pendant la formation.

  • Dans certains cas, lorsque l'identification des nœuds et les informations sur leurs caractéristiques sont importantes, vous`concat-node-embed` devez indiquer au modèle Neptune ML d'obtenir la représentation initiale d'un nœud en concaténant ses fonctionnalités avec ses incorporations initiales.

  • Lorsque vous obtenez des performances relativement bonnes sur certains hyperparamètres, vous pouvez ajuster l'espace de recherche des hyperparamètres en fonction de ces résultats.

Arrêt anticipé du processus de formation des modèles dans Neptune ML

Un arrêt anticipé peut réduire de manière significative le temps d'exécution de l'entraînement du modèle et les coûts associés sans dégrader les performances du modèle. Cela permet également d'éviter que le modèle ne soit trop ajusté aux données d'entraînement.

L'arrêt anticipé dépend de mesures régulières des performances des ensembles de validation. Au début, les performances s'améliorent au fur et à mesure de l'entraînement, mais lorsque le modèle commence à se surajuster, il recommence à décliner. La fonction d'arrêt anticipé identifie le moment où le modèle commence à être surajusté et interrompt l'entraînement du modèle à ce moment-là.

Neptune ML surveille les appels de métriques de validation et compare la métrique de validation la plus récente à la moyenne des mesures de validation des dernières névaluations, où nest un nombre défini à l'aide duwindow-for-early-stop paramètre. Dès que la métrique de validation est inférieure à cette moyenne, Neptune ML arrête l'entraînement du modèle et enregistre le meilleur modèle à ce jour.

Vous pouvez contrôler l'arrêt anticipé à l'aide des paramètres suivants :

  • window-for-early-stop— La valeur de ce paramètre est un entier qui indique le nombre de scores de validation récents à calculer en moyenne pour décider d'un arrêt anticipé. La valeur par défaut est 3.

  • enable-early-stop— Utilisez ce paramètre booléen pour désactiver la fonction d'arrêt anticipé. Par défaut, cette valeur est true.

Arrêt anticipé du processus HPO dans Neptune ML

La fonction d'arrêt anticipé de Neptune ML arrête également les tâches d'entraînement qui ne donnent pas de bons résultats par rapport à d'autres tâches de formation, à l'aide de la fonction de démarrage à chaud de SageMaker HPO. Cela permet également de réduire les coûts et d'améliorer la qualité du HPO.

Reportez-vous à la section Exécuter une tâche de réglage des hyperparamètres lors d'un démarrage à chaud pour une description de son fonctionnement.

Warm Start permet de transmettre les informations apprises lors de tâches de formation précédentes aux tâches de formation suivantes et offre deux avantages distincts :

  • Tout d'abord, les résultats des tâches d'entraînement précédentes sont utilisés pour sélectionner de bonnes combinaisons d'hyperparamètres à rechercher dans la nouvelle tâche de réglage.

  • Ensuite, il permet un arrêt anticipé pour accéder à un plus grand nombre de séries de modèles, ce qui réduit le temps de réglage.

Cette fonctionnalité est activée automatiquement dans Neptune ML et vous permet de trouver un équilibre entre le temps d'entraînement et les performances du modèle. Si vous êtes satisfait des performances du modèle actuel, vous pouvez utiliser ce modèle. Sinon, vous exécutez davantage de HPO démarrés à chaud avec les résultats des essais précédents afin de découvrir un meilleur modèle.

Bénéficiez de services d'assistance professionnels

AWSpropose des services d'assistance professionnels pour vous aider à résoudre les problèmes liés à l'apprentissage automatique sur les projets Neptune. Si vous êtes bloqué, demandez de l'AWSaide.