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 d'entraînement de modèle
Il y a des choses que vous pouvez faire pour améliorer les performances des modèles Neptune ML.
Choisir la propriété de nœud appropriée
Toutes les propriétés de votre graphe ne sont pas significatives ou pertinentes pour vos tâches de machine learning. Toute propriété non pertinente doit être exclue 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 pour les prédictions.
Supprimez les fonctionnalités que vous considérez redondantes ou non pertinentes afin de réduire le bruit dans les données et les corrélations superflues.
Effectuez une itération au fur et à mesure 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.
La rubrique Fonctionnalisation du Guide du développeur d'Amazon Machine Learning fournit des instructions supplémentaires relatives à la fonctionnalisation, qui sont pertinentes pour Neptune ML.
Gérer les points de données aberrants
Une aberration est un point de données très différent des autres données. Les données aberrantes peuvent gâcher ou induire en erreur le processus d'entraînement, ce qui peut conduire à un allongement du temps d'entraînement ou à des modèles moins précis. À moins qu'elles soient vraiment importantes, vous devez éliminer les aberrations 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 doublons de nœuds ou d'arêtes. Ces éléments redondants introduiront du bruit lors de l'entraînement de modèle ML. Éliminez les doublons de nœuds ou d'arêtes avant d'exporter les données.
Régler la structure du graphe
Lorsque le graphe est exporté, vous pouvez modifier la façon dont les fonctionnalités sont traitées et la façon dont le graphe 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ête, il est parfois utile de la transformer en types d'arête.
La politique de normalisation par défaut utilisée pour une propriété numérique est
min-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'un fichier model-HPO-configuration.json.Le processus d'exportation génère automatiquement des types de fonctionnalité en fonction des types de propriété. Par exemple, il traite les propriétés
String
comme des fonctionnalités catégorielles et les propriétésFloat
etInt
comme des fonctionnalités numériques. Si nécessaire, vous pouvez modifier le type de fonctionnalité après l'exportation (voir Éléments d'un fichier model-HPO-configuration.json).
Régler les plages d'hyperparamètres et les valeurs par défaut
L'opération de traitement de données déduit des plages de configuration des hyperparamètres à partir du graphe. 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 graphe, vous pouvez modifier le fichier de HPO configuration pour créer votre propre stratégie de réglage des hyperparamètres.
Voici quelques bonnes pratiques :
Lorsque le graphe devient grand, la taille de la dimension masquée par défaut peut ne pas être suffisante pour contenir toutes les informations. Vous pouvez modifier l'hyperparamètre
num-hidden
pour contrôler la taille de la dimension masquée.-
Pour les modèles Knowledge Graph Embedding (KGE), vous souhaiterez peut-être modifier le modèle spécifique utilisé en fonction de la structure de votre graphe et de votre budget.
TrainsE
les 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).DistMult
les modèles ont du mal à gérer les relations symétriques.RotatE
est bon pour modéliser toutes sortes de relations, mais il est plus coûteux queTrainsE
etDistMult
pendant la formation. Dans certains cas, quand l'identification du nœud et les informations sur les fonctionnalités du nœud sont importantes, vous devez utiliser
`concat-node-embed`
pour indiquer au modèle Neptune ML d'obtenir la représentation initiale d'un nœud en concaténant ses fonctionnalités avec ses intégrations 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 d'entraînement de modèle dans Neptune ML
L'arrêt anticipé peut réduire de manière significative le temps d'entraînement de modèle et les coûts associés sans dégrader les performances de modèle. Il empêche également le surajustement du modèle aux données d'entraînement.
L'arrêt anticipé dépend de mesures régulières des performances du jeu de validation. Initialement, les performances s'améliorent au fur et à mesure de l'entraînement, mais lorsque le modèle commence à être surajusté, elles commencent à décliner à nouveau. La fonctionnalité d'arrêt anticipé identifie le point où le modèle commence à être surajusté et interrompt l'entraînement de modèle à ce stade.
Neptune ML surveille les appels des métriques de validation et compare la métrique de validation la plus récente à la moyenne des métriques de validation des n
dernières évaluations, où n
est un nombre défini à l'aide du paramètre window-for-early-stop
. 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 stade.
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 spécifie le nombre de scores de validation récents à moyenner pour décider d'un arrêt anticipé. La valeur par défaut est3
. -
enable-early-stop
: utilisez ce paramètre booléen pour désactiver la fonctionnalité d'arrêt anticipé. Par défaut, cette valeur esttrue
.
Arrêt anticipé du HPO processus dans Neptune ML
La fonction d'arrêt anticipé de Neptune ML arrête également les tâches d'entraînement qui ne fonctionnent pas bien par rapport aux autres tâches d'entraînement, en utilisant la fonction de démarrage à HPO chaud de l' SageMaker IA. Cela peut également réduire les coûts et améliorer la qualité deHPO.
Consultez Exécution d'une tâche de réglage des hyperparamètres avec démarrage à chaud pour obtenir une description de son fonctionnement.
Le démarrage à chaud permet de transmettre les informations apprises à partir des tâches d'entraînement précédentes aux tâches d'entraînement 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 à examiner dans la nouvelle tâche de réglage.
Ensuite, il permet un arrêt anticipé pour accéder à un plus grand nombre d'exécutions de modèle, 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 de modèle et ses performances. Si vous êtes satisfait des performances du modèle actuel, vous pouvez utiliser ce modèle. Sinon, vous en exécutez d'autres HPOs qui démarrent à chaud avec les résultats des essais précédents afin de découvrir un meilleur modèle.
Bénéficier de services d'assistance professionnels
AWS propose des services de support professionnels pour vous aider à résoudre les problèmes liés à vos projets d'apprentissage automatique sur Neptune. Si vous êtes bloqué, contactez AWS Support