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.
Artefacts produits par l'entraînement de modèle dans Neptune ML
Après l'entraînement de modèle, Neptune ML utilise les paramètres de modèle les mieux entraînés pour générer les artefacts de modèle qui sont nécessaires pour le lancement du point de terminaison d'inférence et la fourniture de prédictions de modèle. Ces artefacts sont regroupés par la tâche d'entraînement et stockés dans l'emplacement de sortie Amazon S3 de la meilleure tâche d'entraînement SageMaker.
Les sections suivantes décrivent ce qui est inclus dans les artefacts de modèle pour les différentes tâches et comment la commande de transformation de modèle utilise un modèle entraîné préexistant pour générer des artefacts même sur de nouvelles données de graphe.
Artefacts générés pour différentes tâches
Le contenu des artefacts de modèle générés par le processus d'entraînement dépend de la tâche de machine learning cible :
-
Classification et régression de nœud : pour la prédiction d'une propriété d'un nœud, les artefacts incluent les paramètres de modèle, les intégrations de nœud provenant de l'encodeur GNN, les prédictions de modèle pour les nœuds figurant dans le graphe d'entraînement et certains fichiers de configuration du point de terminaison d'inférence. Dans les tâches de classification et de régression de nœud, les prédictions de modèle sont précalculées pour les nœuds présents pendant l'entraînement afin de réduire la latence des requêtes.
-
Classification et régression d'arête : pour la prédiction d'une propriété d'une arête, les artefacts incluent également les paramètres de modèle et les intégrations de nœud. Les paramètres du décodeur de modèle sont particulièrement importants pour l'inférence, car nous calculons les prédictions de classification ou de régression d'arête en appliquant le décodeur de modèle aux intégrations des sommets source et de destination d'une arête.
-
Prédiction de lien : pour la prédiction de lien, outre les artefacts générés pour la prédiction d'une propriété d'une arête, le graphe DGL est également inclus en tant qu'artefact, car la prédiction de lien nécessite le graphe d'entraînement pour effectuer des prédictions. L'objectif de la prédiction de lien est de prédire les sommets de destination susceptibles de se combiner avec un sommet source pour former une arête d'un type particulier dans le graphe. Pour ce faire, l'intégration de nœud du sommet source et une représentation apprise pour le type d'arête sont combinées avec les intégrations de nœuds de tous les sommets de destination possibles, afin de produire un score de probabilité d'arête pour chacun des sommets de destination. Les scores sont ensuite triés pour classer les sommets de destination potentiels et renvoyer les meilleurs candidats.
Pour chacun des types de tâche, les poids du modèle de réseau de neurones en graphes issu de la bibliothèque DGL sont enregistrés dans l'artefact du modèle. Cela permet à Neptune ML de calculer de nouvelles sorties du modèle à mesure que le graphe change (inférence inductive), en plus d'utiliser des prédictions et des intégrations précalculées (inférence transductive) pour réduire la latence.
Génération de nouveaux artefacts de modèle
Les artefacts de modèle générés après l'entraînement de modèle dans Neptune ML sont directement liés au processus d'entraînement. Cela signifie que les intégrations et les prédictions précalculées n'existent que pour les entités qui figuraient dans le graphe d'entraînement d'origine. Bien que le mode d'inférence inductive pour les points de terminaison Neptune ML puisse calculer des prédictions pour de nouvelles entités en temps réel, vous souhaiterez peut-être générer des prédictions par lots sur de nouvelles entités sans interroger un point de terminaison.
Afin d'obtenir des prédictions de modèle par lots pour de nouvelles entités ajoutées au graphe, les nouveaux artefacts de modèle doivent être recalculés pour les nouvelles données de graphe. Cela se fait à l'aide de la commande modeltransform
. Vous utilisez la commande modeltransform
lorsque vous souhaitez uniquement des prédictions par lots sans configurer de point de terminaison, ou lorsque vous souhaitez générer toutes les prédictions afin de pouvoir les réécrire dans le graphe.
Étant donné que l'entraînement de modèle effectue implicitement une transformation de modèle à la fin du processus d'entraînement, les artefacts de modèle sont toujours recalculés sur les données de graphe d'entraînement par une tâche d'entraînement. Toutefois, la commande modeltransform
peut également calculer des artefacts de modèle sur des données de graphe qui n'ont pas été utilisées pour l'entraînement d'un modèle. Pour ce faire, les nouvelles données de graphe doivent être traitées à l'aide des mêmes encodages de fonctionnalité que les données de graphe d'origine et doivent adhérer au même schéma de graphe.
Vous pouvez effectuer cela en commençant par créer une nouvelle tâche de traitement de données qui constitue un clone de la tâche de traitement de données exécutée sur les données de graphe d'entraînement d'origine, puis en l'exécutant sur les nouvelles données de graphe (voir Traitement de données de graphe mises à jour pour Neptune ML). Ensuite, appelez la commande modeltransform
avec le nouvel identifiant dataProcessingJobId
et l'ancien identifiant modelTrainingJobId
pour recalculer les artefacts de modèle sur les données de graphe mises à jour.
Pour la prédiction d'une propriété d'un nœud, les intégrations et les prédictions de nœud sont recalculées sur les nouvelles données de graphe, même pour les nœuds présents dans le graphe d'entraînement d'origine.
Pour la prédiction d'une propriété d'arête et la prédiction de lien, les intégrations de nœud sont également recalculées et remplacent de la même manière toutes les intégrations de nœud existantes. Pour recalculer les intégrations de nœud, Neptune ML applique l'encodeur GNN appris à partir du modèle entraîné précédent aux nœuds des nouvelles données de graphe avec leurs nouvelles fonctionnalités.
Pour les nœuds dépourvus de fonctionnalités, les représentations initiales apprises à partir de l'entraînement de modèle d'origine sont réutilisées. Pour les nouveaux nœuds dépourvus de fonctionnalités et qui n'étaient pas présents dans le graphe d'entraînement d'origine, Neptune ML initialise leur représentation comme la moyenne des représentations de nœud initiales apprises de ce type de nœud présentes dans le graphe d'entraînement d'origine. Cela peut entraîner une baisse des performances dans les prédictions de modèle si de nombreux nouveaux nœuds n'ont pas de fonctionnalités, car ils seront tous initialisés selon l'intégration initiale moyenne pour ce type de nœud.
Si votre modèle est entraîné avec concat-node-embed
défini sur true, les représentations de nœud initiales sont créées en concaténant les fonctionnalités de nœud avec la représentation initiale pouvant être apprise. Ainsi, pour le graphe mis à jour, la représentation de nœud initiale des nouveaux nœuds utilise également les intégrations de nœud initiales moyennes, concaténées avec les nouvelles fonctionnalités de nœud.
En outre, les suppressions de nœuds ne sont actuellement pas prises en charge. Si des nœuds ont été supprimés dans le graphe mis à jour, vous devez réentraîner le modèle sur les données de graphe mises à jour.
Le recalcul des artefacts de modèle réutilise les paramètres de modèle appris sur un nouveau graphe et doit être effectué uniquement lorsque le nouveau graphe est très similaire à l'ancien. Si votre nouveau graphe n'est pas suffisamment similaire, vous devez réentraîner le modèle pour obtenir des performances de modèle similaires sur les nouvelles données de graphe. Ce qui constitue une similitude suffisante dépend de la structure de vos données de graphe, mais en règle générale, vous devez réentraîner votre modèle si vos nouvelles données diffèrent de plus de 10 à 20 % des données de graphe d'entraînement d'origine.
Pour les graphes où tous les nœuds ont des fonctionnalités, le seuil supérieur (20 % de différence) s'applique, mais pour les graphes où de nombreux nœuds n'ont pas de fonctionnalités et où les nouveaux nœuds ajoutés au graphe n'ont pas de propriétés, le seuil inférieur (10 % de différence) peut même s'avérer trop élevé.
Consultez Commande modeltransform pour plus d'informations sur les tâches de transformation de modèle.