Esempi di utilizzo dei parametri all'interno additionalParams per l'ottimizzazione della configurazione di addestramento del modello - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempi di utilizzo dei parametri all'interno additionalParams per l'ottimizzazione della configurazione di addestramento del modello

Gli esempi seguenti mostrano come utilizzare la funzionalità "additionalParams" nei grafici delle proprietà e nei modelli di RDF dati per configurare vari aspetti del processo di addestramento dei modelli per un'applicazione Neptune ML. Gli esempi coprono un'ampia gamma di funzionalità, tra cui la specificazione di tassi di suddivisione predefiniti per i dati di addestramento/convalidazione/test, la definizione di attività di classificazione dei nodi, regressione e previsione dei collegamenti, nonché la configurazione di diversi tipi di funzionalità come bucket numerici, incorporamenti di testo, datetime e dati categorici. Queste configurazioni dettagliate consentono di personalizzare la pipeline di machine learning in base ai requisiti specifici di dati e modellazione, sbloccando tutto il potenziale delle funzionalità di Neptune ML.

Indice

Esempi di grafi di proprietà con additionalParams

Definizione di un coefficiente di divisione per la configurazione dell'addestramento dei modelli

Nell'esempio seguente, il parametro split_rate imposta il coefficiente di divisione predefinito per l'addestramento dei modelli. Se non viene specificato alcun coefficiente di divisione predefinito, l'addestramento utilizza un valore di [0,9, 0,1, 0,0]. È possibile sovrascrivere il valore predefinito per ogni destinazione specificando un valore split_rate per ogni destinazione.

Nell'esempio seguente il campo default split_rate indica che occorre usare un coefficiente di divisione di [0.7,0.1,0.2], a meno che non venga sovrascritto per ogni singola destinazione:"

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

Definizione di un'attività di classificazione dei nodi per la configurazione dell'addestramento dei modelli

Per indicare qual è la proprietà del nodo contenente esempi etichettati ai fini dell'addestramento, aggiungi un elemento di classificazione dei nodi all'array targets, usando "type" : "classification". Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

Nell'esempio seguente la destinazione node indica che la proprietà genre di ogni nodo Movie deve essere trattata come un'etichetta della classe nodo. Il valore split_rate sovrascrive il coefficiente di divisione predefinito:

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

Definizione di un'attività di classificazione dei nodi multi-classe per la configurazione dell'addestramento dei modelli

Per indicare qual è la proprietà del nodo contenente più esempi etichettati ai fini dell'addestramento, aggiungi un elemento di classificazione dei nodi all'array targets usando "type" : "classification" e separator per specificare un carattere da usare per dividere un valore della proprietà di destinazione in più valori categoriali. Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

Nell'esempio seguente la destinazione node indica che la proprietà genre di ogni nodo Movie deve essere trattata come un'etichetta della classe nodo. Il campo separator indica che ogni proprietà di genere contiene più valori separati da punto e virgola:

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

Definizione di un'attività di regressione dei nodi per la configurazione dell'addestramento dei modelli

Per indicare qual è la proprietà del nodo contenente le regressioni etichettate ai fini dell'addestramento, aggiungi un elemento di regressione dei nodi all'array targets usando "type" : "regression". Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

La destinazione node seguente indica che la proprietà rating di ogni nodo Movie deve essere trattata come un'etichetta di regressione del nodo.

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

Definizione di un'attività di classificazione degli archi per la configurazione dell'addestramento dei modelli

Per indicare qual è la proprietà dell'arco contenente esempi etichettati ai fini dell'addestramento, aggiungi un elemento arco all'array targets, usando "type" : "regression". Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

La destinazione edge seguente indica che la proprietà metAtLocation di ogni arco knows deve essere trattata come un'etichetta della classe arco:

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

Definizione di un'attività di classificazione degli archi multi-classe per la configurazione dell'addestramento dei modelli

Per indicare qual è la proprietà dell'arco contenente più esempi etichettati ai fini dell'addestramento, aggiungi un elemento edge all'array targets usando "type" : "classification" e un campo separator per specificare un carattere da usare per dividere un valore della proprietà di destinazione in più valori categoriali. Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

La destinazione edge seguente indica che la proprietà sentiment di ogni arco repliedTo deve essere trattata come un'etichetta della classe arco. Il campo separatore indica che ogni proprietà sentiment contiene più valori separati da virgole:

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

Definizione di un'attività di regressione degli archi per la configurazione dell'addestramento dei modelli

Per indicare qual è la proprietà dell'arco contenente esempi di regressione etichettati ai fini dell'addestramento, aggiungi un elemento edge all'array targets, usando "type" : "regression". Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

La destinazione edge seguente indica che la proprietà rating di ogni arco reviewed deve essere trattata come regressione degli archi:

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

Per indicare gli archi da usare ai fini dell'addestramento delle previsioni dei collegamenti, aggiungi un elemento edge all'array targets usando "type" : "link_prediction". Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

La destinazione edge seguente indica che è necessario usare gli archi cites per la previsione dei collegamenti:

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

Definizione di una funzionalità bucket numerico

È possibile specificare una funzionalità dati numerici per una proprietà del nodo aggiungendo "type": "bucket_numerical" all'array features.

La funzionalità node seguente indica che la proprietà age di ogni nodo Person deve essere trattata come una funzionalità bucket numerico:

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

Definizione di una funzionalità Word2Vec

È possibile specificare una funzionalità Word2Vec per una proprietà del nodo aggiungendo "type": "text_word2vec" all'array features.

La funzionalità node seguente indica che la proprietà description di ogni nodo Movie deve essere trattata come una funzionalità Word2Vec:

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

Definizione di una funzionalità FastText

È possibile specificare una funzionalità FastText per una proprietà del nodo aggiungendo "type": "text_fasttext" all'array features. Il campo language è obbligatorio e deve specificare uno dei codici di lingua seguenti:

  • en   (inglese)

  • zh   (cinese)

  • hi   (hindi)

  • es   (spagnolo)

  • fr   (francese)

Tieni presente che la codifica text_fasttext non può gestire più di una lingua alla volta in una funzionalità.

La funzionalità node seguente indica che la proprietà description francese di ogni nodo Movie deve essere trattata come una funzionalità FastText:

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

Definizione di una funzionalità Sentence BERT

È possibile specificare una funzionalità Sentence BERT per una proprietà del nodo aggiungendo "type": "text_sbert" all'array features. Non è necessario specificare la lingua, poiché il metodo codifica automaticamente le funzionalità di testo utilizzando un modello linguistico multilingue.

La funzionalità node seguente indica che la proprietà description di ogni nodo Movie deve essere trattata come una funzionalità Sentence BERT:

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

Definizione di una funzionalità TF-IDF

È possibile specificare una funzionalità TF-IDF per una proprietà del nodo aggiungendo "type": "text_tfidf" all'array features.

La funzionalità node seguente indica che la proprietà bio di ogni nodo Person deve essere trattata come una funzionalità 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 } ] } }

Definizione di una funzionalità datetime

Il processo di esportazione deduce automaticamente le funzionalità datetime per le proprietà data. Tuttavia, per limitare l'uso di datetime_parts per una funzionalità datetime o ignorare una specifica di funzionalità affinché una proprietà che normalmente verrebbe trattata come una funzionalità auto venga trattata esplicitamente come una funzionalità datetime, puoi aggiungere l'elemento "type": "datetime" all'array features.

La funzionalità node seguente indica che la proprietà createdAt di ogni nodo Post deve essere trattata come una funzionalità datetime:

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

Definizione di una funzionalità category

Il processo di esportazione deduce automaticamente le funzionalità auto delle proprietà stringa e delle proprietà numeriche contenenti più valori. Per le proprietà numeriche contenenti valori singoli, deduce funzionalità numerical. Per le proprietà data deduce funzionalità datetime.

Se desideri sovrascrivere la specifica di una funzionalità affinché una proprietà venga trattata come una funzionalità categoriale, aggiungi un elemento "type": "category" all'array features. Se la proprietà contiene più valori, includi un campo separator. Per esempio:

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

Definizione di una funzionalità numerical

Il processo di esportazione deduce automaticamente le funzionalità auto delle proprietà stringa e delle proprietà numeriche contenenti più valori. Per le proprietà numeriche contenenti valori singoli, deduce funzionalità numerical. Per le proprietà data deduce funzionalità datetime.

Se desideri sovrascrivere la specifica di una funzionalità affinché una proprietà venga trattata come una funzionalità numerical, aggiungi "type": "numerical" all'array features. Se la proprietà contiene più valori, includi un campo separator. Per esempio:

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

Definizione di una funzionalità auto

Il processo di esportazione deduce automaticamente le funzionalità auto delle proprietà stringa e delle proprietà numeriche contenenti più valori. Per le proprietà numeriche contenenti valori singoli, deduce funzionalità numerical. Per le proprietà data deduce funzionalità datetime.

Se desideri sovrascrivere la specifica di una funzionalità affinché una proprietà venga trattata come una funzionalità auto, aggiungi "type": "auto" all'array features. Se la proprietà contiene più valori, includi un campo separator. Per esempio:

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

RDFesempi utilizzando additionalParams

Definizione di un coefficiente di divisione per la configurazione dell'addestramento dei modelli

Nell'esempio seguente, il parametro split_rate imposta il coefficiente di divisione predefinito per l'addestramento dei modelli. Se non viene specificato alcun coefficiente di divisione predefinito, l'addestramento utilizza un valore di [0,9, 0,1, 0,0]. È possibile sovrascrivere il valore predefinito per ogni destinazione specificando un valore split_rate per ogni destinazione.

Nell'esempio seguente il campo default split_rate indica che occorre usare un coefficiente di divisione di [0.7,0.1,0.2], a meno che non venga sovrascritto per ogni singola destinazione:"

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

Definizione di un'attività di classificazione dei nodi per la configurazione dell'addestramento dei modelli

Per indicare qual è la proprietà del nodo contenente esempi etichettati ai fini dell'addestramento, aggiungi un elemento di classificazione dei nodi all'array targets, usando "type" : "classification". Aggiungi un campo node per indicare il tipo di nodo dei nodi di destinazione. Aggiungi un campo predicate per definire i dati letterali da usare come funzionalità del nodo di destinazione del nodo di destinazione. Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

Nell'esempio seguente la destinazione node indica che la proprietà genre di ogni nodo Movie deve essere trattata come un'etichetta della classe nodo. Il valore split_rate sovrascrive il coefficiente di divisione predefinito:

"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] } ] } }

Definizione di un'attività di regressione dei nodi per la configurazione dell'addestramento dei modelli

Per indicare qual è la proprietà del nodo contenente le regressioni etichettate ai fini dell'addestramento, aggiungi un elemento di regressione dei nodi all'array targets usando "type" : "regression". Aggiungi un campo node per indicare il tipo di nodo dei nodi di destinazione. Aggiungi un campo predicate per definire i dati letterali da usare come funzionalità del nodo di destinazione del nodo di destinazione. Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

La destinazione node seguente indica che la proprietà rating di ogni nodo Movie deve essere trattata come un'etichetta di regressione del nodo.

"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] } ] } }

Per indicare gli archi da usare ai fini dell'addestramento delle previsioni dei collegamenti, aggiungi un elemento edge all'array targets usando "type" : "link_prediction". Aggiungi i campi subject, predicate e object per specificare il tipo di arco. Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

La destinazione edge seguente indica che è necessario usare gli archi directed che connettono Directors a Movies per la previsione dei collegamenti:

"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" } ] } }

Per indicare che è necessario usare tutti gli archi ai fini dell'addestramento delle previsioni dei collegamenti, aggiungi un elemento edge all'array targets usando "type" : "link_prediction". Non aggiungere i campi subject, predicate o object. Aggiungi un campo split_rate per sovrascrivere il coefficiente di divisione predefinito.

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