Vue d'ensemble de la façon d'utiliser la fonctionnalité Neptune ML - 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.

Vue d'ensemble de la façon d'utiliser la fonctionnalité Neptune ML

Flux de travail initial pour l'utilisation de Neptune ML

L'utilisation de la fonctionnalité Neptune ML dans Amazon Neptune implique généralement les cinq étapes suivantes de départ :

Schéma du flux de travail Neptune ML
  1. Exportation et configuration des données : l'étape d'exportation des données utilise le service d'exportation Neptune ou l'outil de ligne de commande neptune-export pour exporter les données de Neptune vers Amazon Simple Storage Service (Amazon S3) au format CSV. Un fichier de configuration nommé training-data-configuration.json est automatiquement généré au même moment et il indique comment les données exportées peuvent être chargées dans un graphe pouvant être entraîné.

  2. Prétraitement des données : dans cette étape, le jeu de données exporté est prétraité à l'aide de techniques standard visant à le préparer pour l'entraînement de modèle. Une normalisation des fonctionnalités peut être effectuée pour les données numériques, et les fonctionnalités de texte peuvent être encodées à l'aide de word2vec. À la fin de cette étape, un graphe DGL (bibliothèque Deep Graph) est généré à partir du jeu de données exporté pour l'étape d'entraînement de modèle à utiliser.

    Cette étape est mise en œuvre à l'aide d'une tâche de traitement SageMaker dans votre compte, et les données qui en résultent sont stockées dans un emplacement Amazon S3 que vous avez spécifié.

  3. Entraînement de modèle : l'étape d'entraînement de modèle entraîne le modèle de machine learning qui sera utilisé pour les prédictions.

    L'entraînement de modèle se déroule en deux phases :

    • La première phase utilise une tâche de traitement SageMaker pour générer un jeu de configurations de stratégie d'entraînement de modèle qui spécifie le type de modèle et les plages d'hyperparamètres de modèle qui seront utilisés pour l'entraînement de modèle.

    • La deuxième phase utilise ensuite une tâche de réglage de modèle SageMaker pour essayer différentes configurations d'hyperparamètres et sélectionner la tâche d'entraînement qui génère le modèle le plus performant. La tâche de réglage exécute un nombre prédéfini d'essais de tâches d'entraînement de modèle sur les données traitées. À la fin de cette phase, les paramètres de modèle entraîné de la meilleure tâche d'entraînement sont utilisés pour générer des artefacts de modèle à des fins d'inférence.

  4. Création d'un point de terminaison d'inférence dans Amazon SageMaker : le point de terminaison d'inférence est une instance de point de terminaison SageMaker lancée avec les artefacts de modèle générés par la meilleure tâche d'entraînement. Chaque modèle est lié à un seul point de terminaison. Ce point de terminaison est capable d'accepter les demandes entrantes provenant de la base de données orientée graphe et de renvoyer les prédictions de modèle pour les entrées dans les demandes. Une fois que vous avez créé le point de terminaison, celui-ci reste actif jusqu'à ce que vous le supprimiez.

  5. Interrogation du modèle de machine learning à l'aide de Gremlin : vous pouvez utiliser des extensions du langage de requête Gremlin pour effectuer des requêtes de prédictions à partir du point de terminaison d'inférence.

Note

Le workbench Neptune contient une magie linéaire et une magie cellulaire qui peuvent vous faire gagner beaucoup de temps lors de la gestion de ces étapes, à savoir :

Réalisation de prédictions basées sur l'évolution des données de graphe

Dans le cas d'un graphe en constante évolution, vous souhaiterez peut-être créer régulièrement de nouvelles prédictions par lots à l'aide de données actualisées. L'interrogation de prédictions précalculées (inférence transductive) peut être nettement plus rapide que la génération de nouvelles prédictions à la volée basées sur les données les plus récentes (inférence inductive). Les deux approches ont leur place, en fonction de la rapidité avec laquelle vos données évoluent et de vos exigences en matière de performances.

Différence entre inférence inductive et inférence transductive

Dans le cadre de l'inférence transductive, Neptune recherche et renvoie des prédictions qui ont été précalculées au moment de l'entraînement.

Dans le cadre de l'inférence inductive, Neptune construit le sous-graphe correspondant et extrait ses propriétés. Le modèle DGL GNN applique ensuite le traitement de données et l'évaluation de modèle en temps réel.

L'inférence inductive peut donc générer des prédictions impliquant des nœuds et des arêtes qui n'étaient pas présents au moment de l'entraînement et qui reflètent l'état actuel du graphe. Cela se fait toutefois au prix d'une latence plus élevée.

Si votre graphe est dynamique, vous pouvez utiliser l'inférence inductive pour être sûr de prendre en compte les données les plus récentes, mais si votre graphe est statique, l'inférence transductive est plus rapide et plus efficace.

L'inférence inductive est désactivée par défaut. Vous pouvez l'activer pour une requête en utilisant le prédicat Gremlin Neptune#ml.inductiveInference dans la requête, comme suit :

.with( "Neptune#ml.inductiveInference")

Flux de travail transductifs incrémentiels

Lorsque vous mettez à jour les artefacts de modèle en réexécutant simplement les étapes 1 à 3 (de l'exportation et de la configuration des données à la transformation de modèle), Neptune ML propose des méthodes plus simples pour mettre à jour vos prédictions ML par lots à l'aide de nouvelles données. L'une consiste à utiliser un flux de travail basé sur un modèle incrémentiel et une autre consiste à utiliser le réentraînement de modèle avec démarrage à chaud.

Flux de travail basé sur un modèle incrémentiel

Dans ce flux de travail, vous mettez à jour les prédictions ML sans réentraîner le modèle ML.

Note

Vous pouvez le faire uniquement quand les données de graphe ont été mises à jour avec de nouveaux nœuds et/ou arêtes. Cela ne fonctionne pas actuellement quand des nœuds sont supprimés.

  1. Exportation et configuration des données : cette étape est identique à celle du flux de travail principal.

  2. Prétraitement des données incrémentielles : cette étape est similaire à l'étape de prétraitement des données du flux de travail principal, mais utilise la même configuration de traitement que celle utilisée précédemment, qui correspond à un modèle entraîné spécifique.

  3. Transformation de modèle : à la place d'une étape d'entraînement de modèle, cette étape de transformation de modèle prend le modèle entraîné du flux de travail principal et les résultats de l'étape de prétraitement des données incrémentielles, et génère de nouveaux artefacts de modèle à utiliser pour l'inférence. L'étape de transformation de modèle lance une tâche de traitement SageMaker pour effectuer le calcul qui génère les artefacts de modèle mis à jour.

  4. Mise à jour du point de terminaison d'inférence Amazon SageMaker : éventuellement, si vous disposez d'un point de terminaison d'inférence existant, cette étape met à jour le point de terminaison avec les nouveaux artefacts de modèle générés par l'étape de transformation de modèle. Vous pouvez également créer un nouveau point de terminaison d'inférence avec les nouveaux artefacts de modèle.

Réentraînement de modèle avec démarrrage à chaud

À l'aide de ce flux de travail, vous pouvez entraîner et déployer un nouveau modèle ML pour effectuer des prédictions à l'aide des données de graphe incrémentielles, mais démarrer à partir d'un modèle existant généré à l'aide du flux de travail principal :

  1. Exportation et configuration des données : cette étape est identique à celle du flux de travail principal.

  2. Prétraitement des données incrémentielles : cette étape est identique à celle figurant dans le flux de travail d'inférence du modèle incrémentiel. Les nouvelles données de graphe doivent être traitées avec la même méthode de traitement que celle utilisée précédemment pour l'entraînement de modèle.

  3. Entraînement de modèle avec démarrage à chaud : l'entraînement de modèle est similaire à ce qui se passe dans le flux de travail principal, mais vous pouvez accélérer la recherche d'hyperparamètres de modèle en exploitant les informations issues de la tâche d'entraînement de modèle précédente.

  4. Mise à jour du point de terminaison d'inférence Amazon SageMaker : cette étape est identique à celle figurant dans le flux de travail d'inférence du modèle incrémentiel.

Flux de travail pour les modèles personnalisés dans Neptune ML

Neptune ML vous permet d'implémenter, d'entraîner et de déployer vos propres modèles personnalisés pour toutes les tâches prises en charge par Neptune ML. Le flux de travail pour le développement et le déploiement d'un modèle personnalisé est essentiellement le même que pour les modèles intégrés, à quelques différences près, comme expliqué dans Flux de travail de modèle personnalisé.