Exemples d'utilisation de paramètres dans additionalParams pour régler la configuration d'entraînement de modèle - 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.

Exemples d'utilisation de paramètres dans additionalParams pour régler la configuration d'entraînement de modèle

Table des matières

Exemples de graphe de propriétés utilisant additionalParams

Spécification d'un taux de division par défaut pour la configuration d'entraînement de modèle

Dans l'exemple suivant, le paramètre split_rate définit le taux de division par défaut pour l'entraînement de modèle. Si aucun taux de division par défaut n'est spécifié, l'entraînement utilise une valeur de [0.9, 0.1, 0.0]. Vous pouvez remplacer la valeur par défaut pour chaque cible en spécifiant un split_rate pour chaque cible.

Dans l'exemple suivant, le champ default split_rate indique qu'un taux de division de [0.7,0.1,0.2] doit être utilisé, sauf s'il est remplacé cible par cible :

"additionalParams": { "neptune_ml": { "version": "v2.0", "split_rate": [0.7,0.1,0.2], "targets": [ (...) ], "features": [ (...) ] } }

Spécification d'une tâche de classification de nœud pour la configuration d'entraînement de modèle

Pour indiquer quelle propriété de nœud contient des exemples étiquetés à des fins d'entraînement, ajoutez un élément de classification de nœud au tableau targets en utilisant "type" : "classification". Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

Dans l'exemple suivant, la cible node indique que la propriété genre de chaque nœud Movie doit être traitée comme une étiquette de classe de nœuds. La valeur split_rate remplace le taux de division par défaut :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "node": "Movie", "property": "genre", "type": "classification", "split_rate": [0.7,0.1,0.2] } ], "features": [ (...) ] } }

Spécification d'une tâche de classification de nœud multiclasse pour la configuration d'entraînement de modèle

Pour indiquer quelle propriété de nœud contient plusieurs exemples étiquetés à des fins d'entraînement, ajoutez un élément de classification de nœud au tableau de cibles, en utilisant "type" : "classification", et separator pour spécifier un caractère qui peut être utilisé pour diviser la valeur d'une propriété cible en plusieurs valeurs catégorielles. Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

Dans l'exemple suivant, la cible node indique que la propriété genre de chaque nœud Movie doit être traitée comme une étiquette de classe de nœuds. Le champ separator indique que chaque propriété de genre contient plusieurs valeurs séparées par des points-virgules :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "node": "Movie", "property": "genre", "type": "classification", "separator": ";" } ], "features": [ (...) ] } }

Spécification d'une tâche de régression de nœud pour la configuration d'entraînement de modèle

Pour indiquer quelle propriété de nœud contient des régressions étiquetées à des fins d'entraînement, ajoutez un élément de régression de nœud au tableau de cibles, en utilisant "type" : "regression". Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

La cible node suivante indique que la propriété rating de chaque nœud Movie doit être traitée comme une étiquette de régression de nœud :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "node": "Movie", "property": "rating", "type" : "regression", "split_rate": [0.7,0.1,0.2] } ], "features": [ ... ] } }

Spécification d'une tâche de classification d'arête pour la configuration d'entraînement de modèle

Pour indiquer quelle propriété d'arête contient des exemples étiquetés à des fins d'entraînement, ajoutez un élément d'arête au tableau targets en utilisant "type" : "regression". Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

La cible edge suivante indique que la propriété metAtLocation de chaque arête knows doit être traitée comme une étiquette de classe d'arêtes.

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "edge": ["Person", "knows", "Person"], "property": "metAtLocation", "type": "classification" } ], "features": [ (...) ] } }

Spécification d'une tâche de classification d'arête multiclasse pour la configuration d'entraînement de modèle

Pour indiquer quelle propriété d'arête contient plusieurs exemples étiquetés à des fins d'entraînement, ajoutez un élément d'arête au tableau targets, en utilisant "type" : "classification", et un champ separator pour spécifier un caractère utilisé pour diviser une valeur de propriété cible en plusieurs valeurs catégorielles. Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

La cible edge suivante indique que la propriété sentiment de chaque arête repliedTo doit être traitée comme une étiquette de classe d'arêtes : Le champ de séparation indique que chaque propriété de sentiment contient plusieurs valeurs séparées par des virgules :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "edge": ["Person", "repliedTo", "Message"], "property": "sentiment", "type": "classification", "separator": "," } ], "features": [ (...) ] } }

Spécification d'une régression d'arête pour la configuration d'entraînement de modèle

Pour indiquer quelle propriété d'arête contient des exemples de régression étiquetés à des fins d'entraînement, ajoutez un élément edge au tableau targets en utilisant "type" : "regression". Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

La cible edge suivante indique que la propriété rating de chaque arête reviewed doit être traitée comme une régression d'arête :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "edge": ["Person", "reviewed", "Movie"], "property": "rating", "type" : "regression" } ], "features": [ (...) ] } }

Pour indiquer quelles arêtes doivent être utilisées à des fins d'entraînement de prédiction de lien, ajoutez un élément d'arête au tableau de cibles en utilisant "type" : "link_prediction". Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

La cible edge suivante indique que les arêtes cites doivent être utilisées pour la prédiction de lien :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "edge": ["Article", "cites", "Article"], "type" : "link_prediction" } ], "features": [ (...) ] } }

Spécification d'une fonctionnalité de compartiment numérique

Vous pouvez spécifier une fonctionnalité de données numériques pour une propriété de nœud en ajoutant "type": "bucket_numerical" au tableau features.

La fonctionnalité node suivante indique que la propriété age de chaque nœud Person doit être traitée comme une fonctionnalité de compartiment numérique :

"additionalParams": { "neptune_ml": { "targets": [ ... ], "features": [ { "node": "Person", "property": "age", "type": "bucket_numerical", "range": [1, 100], "bucket_cnt": 5, "slide_window_size": 3, "imputer": "median" } ] } }

Spécification d'une fonctionnalité Word2Vec

Vous pouvez spécifier une fonctionnalité Word2Vec pour une propriété de nœud en ajoutant "type": "text_word2vec" au tableau features.

La fonctionnalité node suivante indique que la propriété description de chaque nœud Movie doit être traitée comme une fonctionnalité Word2Vec :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ ... ], "features": [ { "node": "Movie", "property": "description", "type": "text_word2vec", "language": "en_core_web_lg" } ] } }

Spécification d'une fonctionnalité FastText

Vous pouvez spécifier une fonctionnalité FastText pour une propriété de nœud en ajoutant "type": "text_fasttext" au tableau features. Le champ language est obligatoire et doit spécifier l'un des codes de langue suivants :

  • en   (anglais)

  • zh   (chinois)

  • hi   (hindi)

  • es   (espagnol)

  • fr   (français)

Notez que l'encodage text_fasttext ne peut pas gérer plus d'une langue à la fois dans une fonctionnalité.

La fonctionnalité node suivante indique que la propriété description française de chaque nœud Movie doit être traitée comme une fonctionnalité FastText :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ ... ], "features": [ { "node": "Movie", "property": "description", "type": "text_fasttext", "language": "fr", "max_length": 1024 } ] } }

Spécification d'une fonctionnalité Sentence BERT

Vous pouvez spécifier une fonctionnalité Sentence BERT pour une propriété de nœud en ajoutant "type": "text_sbert" au tableau features. Il n'est pas nécessaire de spécifier la langue, car la méthode encode automatiquement les fonctionnalités de texte à l'aide d'un modèle de langue multilingue.

La fonctionnalité node suivante indique que la propriété description de chaque nœud Movie doit être traitée comme une fonctionnalité Sentence BERT :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ ... ], "features": [ { "node": "Movie", "property": "description", "type": "text_sbert128", } ] } }

Spécification d'une fonctionnalité TF-IDF

Vous pouvez spécifier une fonctionnalité TF-IDF pour une propriété de nœud en ajoutant "type": "text_tfidf" au tableau features.

La fonctionnalité node suivante indique que la propriété bio de chaque nœud Person doit être traitée comme une fonctionnalité TF-IDF :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ ... ], "features": [ { "node": "Movie", "property": "bio", "type": "text_tfidf", "ngram_range": [1, 2], "min_df": 5, "max_features": 1000 } ] } }

Spécification d'une fonctionnalité datetime

Le processus d'exportation déduit automatiquement des fonctionnalités datetime pour les propriétés de date. Toutefois, si vous souhaitez limiter l'élément datetime_parts utilisé pour une fonctionnalité datetime ou remplacer une spécification de fonctionnalité afin qu'une propriété qui serait normalement traitée comme une fonctionnalité auto soit explicitement traitée comme une fonctionnalité datetime, vous pouvez le faire en ajoutant un élément "type": "datetime" au tableau de fonctionnalités.

La fonctionnalité node suivante indique que la propriété createdAt de chaque nœud Post doit être traitée comme une fonctionnalité datetime :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ ... ], "features": [ { "node": "Post", "property": "createdAt", "type": "datetime", "datetime_parts": ["month", "weekday", "hour"] } ] } }

Spécification d'une fonctionnalité category

Le processus d'exportation déduit automatiquement des fonctionnalités auto pour les propriétés de chaîne et pour les propriétés numériques qui contiennent des valeurs multiples. Pour les propriétés numériques contenant des valeurs uniques, il déduit des fonctionnalités numerical. Pour les propriétés de date, il déduit des fonctionnalités datetime.

Si vous souhaitez remplacer une spécification de fonctionnalité afin qu'une propriété soit traitée comme une fonctionnalité catégorielle, ajoutez un élément "type": "category" au tableau de fonctionnalités. Si la propriété contient plusieurs valeurs, incluez un champ separator. Par exemple :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ ... ], "features": [ { "node": "Post", "property": "tag", "type": "category", "separator": "|" } ] } }

Spécification d'une fonctionnalité numerical

Le processus d'exportation déduit automatiquement des fonctionnalités auto pour les propriétés de chaîne et pour les propriétés numériques qui contiennent des valeurs multiples. Pour les propriétés numériques contenant des valeurs uniques, il déduit des fonctionnalités numerical. Pour les propriétés de date, il déduit des fonctionnalités datetime.

Si vous souhaitez remplacer une spécification de fonctionnalité afin qu'une propriété soit traitée comme une fonctionnalité numerical, ajoutez un élément "type": "numerical" au tableau de fonctionnalités. Si la propriété contient plusieurs valeurs, incluez un champ separator. Par exemple :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ ... ], "features": [ { "node": "Recording", "property": "duration", "type": "numerical", "separator": "," } ] } }

Spécification d'une fonctionnalité auto

Le processus d'exportation déduit automatiquement des fonctionnalités auto pour les propriétés de chaîne et pour les propriétés numériques qui contiennent des valeurs multiples. Pour les propriétés numériques contenant des valeurs uniques, il déduit des fonctionnalités numerical. Pour les propriétés de date, il déduit des fonctionnalités datetime.

Si vous souhaitez remplacer une spécification de fonctionnalité afin qu'une propriété soit traitée comme une fonctionnalité auto, ajoutez un élément "type": "auto" au tableau de fonctionnalités. Si la propriété contient plusieurs valeurs, incluez un champ separator. Par exemple :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ ... ], "features": [ { "node": "User", "property": "role", "type": "auto", "separator": "," } ] } }

Exemples RDF utilisant additionalParams

Spécification d'un taux de division par défaut pour la configuration d'entraînement de modèle

Dans l'exemple suivant, le paramètre split_rate définit le taux de division par défaut pour l'entraînement de modèle. Si aucun taux de division par défaut n'est spécifié, l'entraînement utilise une valeur de [0.9, 0.1, 0.0]. Vous pouvez remplacer la valeur par défaut pour chaque cible en spécifiant un split_rate pour chaque cible.

Dans l'exemple suivant, le champ default split_rate indique qu'un taux de division de [0.7,0.1,0.2] doit être utilisé, sauf s'il est remplacé cible par cible :

"additionalParams": { "neptune_ml": { "version": "v2.0", "split_rate": [0.7,0.1,0.2], "targets": [ (...) ] } }

Spécification d'une tâche de classification de nœud pour la configuration d'entraînement de modèle

Pour indiquer quelle propriété de nœud contient des exemples étiquetés à des fins d'entraînement, ajoutez un élément de classification de nœud au tableau targets en utilisant "type" : "classification". Ajoutez un champ de nœud pour indiquer le type de nœud des nœuds cibles. Ajoutez un champ predicate pour définir les données littérales utilisées comme fonctionnalité de nœud cible du nœud cible. Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

Dans l'exemple suivant, la cible node indique que la propriété genre de chaque nœud Movie doit être traitée comme une étiquette de classe de nœuds. La valeur split_rate remplace le taux de division par défaut :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "node": "http://aws.amazon.com/neptune/csv2rdf/class/Movie", "predicate": "http://aws.amazon.com/neptune/csv2rdf/datatypeProperty/genre", "type": "classification", "split_rate": [0.7,0.1,0.2] } ] } }

Spécification d'une tâche de régression de nœud pour la configuration d'entraînement de modèle

Pour indiquer quelle propriété de nœud contient des régressions étiquetées à des fins d'entraînement, ajoutez un élément de régression de nœud au tableau de cibles, en utilisant "type" : "regression". Ajoutez un champ node pour indiquer le type de nœud des nœuds cibles. Ajoutez un champ predicate pour définir les données littérales utilisées comme fonctionnalité de nœud cible du nœud cible. Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

La cible node suivante indique que la propriété rating de chaque nœud Movie doit être traitée comme une étiquette de régression de nœud :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "node": "http://aws.amazon.com/neptune/csv2rdf/class/Movie", "predicate": "http://aws.amazon.com/neptune/csv2rdf/datatypeProperty/rating", "type": "regression", "split_rate": [0.7,0.1,0.2] } ] } }

Pour indiquer quelles arêtes doivent être utilisées à des fins d'entraînement de prédiction de lien, ajoutez un élément d'arête au tableau de cibles en utilisant "type" : "link_prediction". Ajoutez les champs subject, predicate et object pour spécifier le type d'arête. Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

La cible edge suivante indique que les arêtes directed qui connectent Directors à Movies doivent être utilisées pour la prédiction de lien :

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "subject": "http://aws.amazon.com/neptune/csv2rdf/class/Director", "predicate": "http://aws.amazon.com/neptune/csv2rdf/datatypeProperty/directed", "object": "http://aws.amazon.com/neptune/csv2rdf/class/Movie", "type" : "link_prediction" } ] } }

Pour indiquer que toutes les arêtes doivent être utilisées à des fins d'entraînement de prédiction de lien, ajoutez un élément edge au tableau de cibles en utilisant "type" : "link_prediction". N'ajoutez pas de champs subject, predicate ni object. Ajoutez un champ split_rate si vous souhaitez remplacer le taux de division par défaut.

"additionalParams": { "neptune_ml": { "version": "v2.0", "targets": [ { "type" : "link_prediction" } ] } }