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à.
Artefatti generati dall'addestramento dei modelli in Neptune ML
Dopo l'addestramento del modello, Neptune ML utilizza i parametri del modello con le prestazioni di addestramento migliori per generare gli artefatti del modello necessari per avviare l'endpoint di inferenza e fornire previsioni del modello. Il processo di addestramento crea un pacchetto con gli artefatti e lo archivia nella posizione di output Amazon S3 del miglior processo di addestramento SageMaker.
Le sezioni seguenti descrivono cosa è incluso negli artefatti del modello per le diverse attività e illustrano in che modo il comando di trasformazione del modello usa un modello addestrato preesistente per generare gli artefatti anche su nuovi dati del grafo.
Artefatti generati per diverse attività
Il contenuto degli artefatti del modello generati dal processo di addestramento dipende dall'attività di machine learning di destinazione:
-
Classificazione e regressione dei nodi: per la previsione delle proprietà dei nodi, gli artefatti includono i parametri del modello, gli incorporamenti dei nodi dal codificatore GNN, le previsioni del modello per i nodi nel grafo di addestramento e alcuni file di configurazione per l'endpoint di inferenza. Nelle attività di classificazione e regressione dei nodi, le previsioni del modello vengono precalcolate per i nodi presenti durante l'addestramento per ridurre la latenza delle query.
-
Classificazione e regressione degli archi: per la previsione delle proprietà degli archi, gli artefatti includono anche i parametri del modello e gli incorporamenti dei nodi. I parametri del decodificatore del modello sono particolarmente importanti per l'inferenza, in quanto la classificazione degli archi o le previsioni di regressione degli archi vengono calcolate applicando il decodificatore del modello agli incorporamenti del vertice di origine e del vertice di destinazione di un arco.
-
Previsione dei collegamenti: per la previsione dei collegamenti, oltre agli artefatti generati per la previsione delle proprietà degli archi, anche il grafo DGL viene incluso come artefatto perché la previsione dei collegamenti richiede il grafo di addestramento per eseguire le previsioni. L'obiettivo della previsione dei collegamenti è prevedere i vertici di destinazione che probabilmente si combineranno con un vertice di origine per formare un arco di un tipo specifico nel grafo. A tale scopo, l'incorporamento dei nodi del vertice di origine e una rappresentazione appresa per il tipo di arco vengono combinati con gli incorporamenti dei nodi di tutti i possibili vertici di destinazione per generare un punteggio di probabilità degli archi per ciascuno dei vertici di destinazione. I punteggi vengono quindi ordinati per classificare i potenziali vertici di destinazione e restituire i migliori candidati.
Per ogni tipo di attività, i pesi del modello di rete neurale a grafo (GNN) della libreria DGL vengono salvati nell'artefatto del modello. Questo consente a Neptune ML di calcolare nuovi output del modello man mano che il grafo cambia (inferenza induttiva), oltre a usare previsioni e incorporamenti precalcolati (inferenza trasduttiva) per ridurre la latenza.
Generazione di nuovi artefatti del modello
Gli artefatti del modello generati dopo l'addestramento del modello in Neptune ML sono direttamente collegati al processo di addestramento. Questo significa che gli incorporamenti e le previsioni precalcolati esistono solo per le entità presenti nel grafo di addestramento originale. Sebbene la modalità di inferenza induttiva per gli endpoint Neptune ML possa calcolare previsioni per nuove entità in tempo reale, potrebbe essere necessario generare previsioni in batch su nuove entità senza eseguire query su un endpoint.
Per ottenere previsioni del modello in batch per le nuove entità che sono state aggiunte al grafo, è necessario ricalcolare i nuovi artefatti del modello per i nuovi dati del grafo. Questa operazione viene eseguita utilizzando il comando modeltransform
. Puoi usare il comando modeltransform
per ottenere solo previsioni in batch senza configurare un endpoint o per generare tutte le previsioni per poterle riscrivere nel grafo.
Poiché l'addestramento del modello esegue implicitamente una trasformazione del modello alla fine del processo di addestramento, gli artefatti del modello vengono sempre ricalcolati da un processo di addestramento sui dati del grafo di addestramento. Tuttavia, il comando modeltransform
può anche calcolare gli artefatti del modello su dati del grafi che non sono stati utilizzati per addestrare un modello. A tale scopo, i nuovi dati del grafo devono essere elaborati utilizzando le stesse codifiche di funzionalità dei dati del grafo originale e devono rispettare lo stesso schema del grafo.
Per eseguire questa operazione è prima di tutto necessario creare un nuovo processo di elaborazione dei dati che sia un clone del processo di elaborazione dei dati eseguito sui dati del grafo di addestramento originale ed eseguirlo sui nuovi dati del grafo (consulta Elaborazione dei dati del grafo aggiornati per Neptune ML). Quindi, occorre chiamare il comando modeltransform
con l'ID dataProcessingJobId
nuovo e l'ID modelTrainingJobId
precedente per ricalcolare gli artefatti del modello sui dati del grafo aggiornati.
Per la previsione delle proprietà dei nodi, gli incorporamenti e le previsioni dei nodi vengono ricalcolati sui nuovi dati del grafo, anche per i nodi presenti nel grafo di addestramento originale.
Per la previsione delle proprietà degli archi e la previsione dei collegamenti, anche gli incorporamenti dei nodi vengono ricalcolati e sostituiscono allo stesso modo gli eventuali incorporamenti dei nodi esistenti. Per ricalcolare gli incorporamenti dei nodi, Neptune ML applica il codificatore GNN appreso dal precedente modello addestrato ai nodi dei nuovi dati del grafo con le nuove funzionalità.
Per i nodi che non dispongono di funzionalità, vengono riutilizzate le rappresentazioni iniziali apprese durante l'addestramento del modello originale. Per i nuovi nodi che non dispongono di funzionalità e che non erano presenti nel grafo di addestramento originale, Neptune ML inizializza la loro rappresentazione come media delle rappresentazioni iniziali apprese dei nodi di quel tipo di nodo presenti nel grafo di addestramento originale. Questo approccio può causare un calo delle prestazioni nelle previsioni del modello se sono presenti molti nuovi nodi privi di funzionalità, poiché verranno tutti inizializzati in base all'incorporamento iniziale medio per quel tipo di nodo.
Se il modello viene addestrato con concat-node-embed
impostato su true, le rappresentazioni iniziali dei nodi vengono create concatenando le funzionalità dei nodi con la rappresentazione iniziale apprendibile. Pertanto, per il grafo aggiornato, la rappresentazione iniziale dei nuovi nodi utilizza anche gli incorporamenti iniziali medi dei nodi, concatenati con le nuove funzionalità dei nodi.
Inoltre, le eliminazioni dei nodi non sono attualmente supportate. Se i nodi sono stati rimossi nel grafo aggiornato, è necessario riaddestrare il modello in base ai dati del grafo aggiornato.
Il ricalcolo degli artefatti del modello riutilizza i parametri del modello appresi su un nuovo grafo e deve essere eseguito solo quando il nuovo grafo è molto simile a quello precedente. Se il nuovo grafo non è sufficientemente simile, è necessario riaddestrare il modello per ottenere prestazioni simili sui nuovi dati del grafo. Ciò che si intente per sufficientemente simile dipende dalla struttura dei dati del grafo, ma come regola generale è consigliabile riaddestrare il modello se i nuovi dati differiscono di oltre il 10-20% dai dati del grafo di addestramento originale.
Per i grafi in cui tutti i nodi dispongono di funzionalità, si applica il limite superiore della soglia (differenza del 20%), ma per i grafi in cui molti nodi sono privi di funzionalità e i nuovi nodi aggiunti al grafo non hanno proprietà, il limite inferiore (differenza del 10%) potrebbe anche essere troppo alto.
Per ulteriori informazioni sui processi di trasformazione dei modelli, consulta Comando modeltransform.