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 intégrés additionalParams pour ajuster la configuration d'entraînement des modèles
Les exemples suivants montrent comment utiliser la fonctionnalité « additionalParams » dans les modèles de graphes de propriétés et de RDF données pour configurer divers aspects du processus d'apprentissage des modèles pour une application Neptune ML. Les exemples couvrent un large éventail de fonctionnalités, notamment la spécification des taux de division par défaut pour les données de formation/validation/test, la définition de tâches de classification des nœuds, de régression et de prédiction de liens, ainsi que la configuration de différents types de fonctionnalités tels que les compartiments numériques, les intégrations de texte, la date et l'heure et les données catégorielles. Ces configurations détaillées vous permettent d'adapter le pipeline d'apprentissage automatique à vos exigences spécifiques en matière de données et de modélisation, libérant ainsi tout le potentiel des fonctionnalités de Neptune ML.
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
- Spécification d'une tâche de classification de nœud pour la configuration d'entraînement de modèle
- Spécification d'une tâche de classification de nœud multiclasse pour la configuration d'entraînement de modèle
- Spécification d'une tâche de régression de nœud pour la configuration d'entraînement de modèle
- Spécification d'une tâche de classification d'arête pour la configuration d'entraînement de modèle
- Spécification d'une tâche de classification d'arête multiclasse pour la configuration d'entraînement de modèle
- Spécification d'une régression d'arête pour la configuration d'entraînement de modèle
- Spécification d'une tâche de prédiction de lien pour la configuration d'entraînement de modèle
- Spécification d'une fonctionnalité de compartiment numérique
- Spécification d'une fonctionnalité Word2Vec
- Spécification d'une fonctionnalité FastText
- Spécification d'une fonctionnalité Sentence BERT
- Spécification d'une fonctionnalité TF-IDF
- Spécification d'une fonctionnalité datetime
- Spécification d'une fonctionnalité category
- Spécification d'une fonctionnalité numerical
- Spécification d'une fonctionnalité auto
- RDFexemples utilisant additionalParams
- Spécification d'un taux de division par défaut pour la configuration d'entraînement de modèle
- Spécification d'une tâche de classification de nœud pour la configuration d'entraînement de modèle
- Spécification d'une tâche de régression de nœud pour la configuration d'entraînement de modèle
- Spécification d'une tâche de prédiction de lien pour des arêtes spécifiques
- Spécification d'une tâche de prédiction de lien pour toutes les arêtes
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": [
(...)
] } }
Spécification d'une tâche de prédiction de lien pour la configuration d'entraînement de modèle
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": "," } ] } }
RDFexemples 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] } ] } }
Spécification d'une tâche de prédiction de lien pour des arêtes spécifiques
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" } ] } }
Spécification d'une tâche de prédiction de lien pour toutes les arêtes
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" } ] } }