Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Artefakte, die von Modelltrainings in Neptune ML erzeugt wurden
Nach dem Modelltraining verwendet Neptune ML die am besten trainierten Modellparameter, um Modellartefakte zu generieren, die für den Start des Inferenzendpunkts und die Bereitstellung von Modellvorhersagen notwendig sind. Diese Artefakte werden vom Trainingsauftrag verpackt und im Amazon-S3-Ausgabespeicherort des besten SageMaker-Trainingsauftrags gespeichert.
Die folgenden Abschnitte beschreiben, was in den Modellartefakten für die verschiedenen Aufgaben enthalten ist, und wie vorhandene, bereits trainierte Modelle vom Modelltransformationsbefehl verwendet werden, um auch für neue Diagrammdaten Artefakte zu erzeugen.
Artefakte, die für verschiedene Aufgaben generiert werden
Der Inhalt der vom Training generierten Modellartefakte ist von der Machine-Learning-Zielaufgabe abhängig:
-
Klassifizierung und Regression von Knoten – Für Vorhersagen von Knoteneigenschaften gehören zu den Artefakten Modellparameter, Knoteneinbettungen aus dem GNN-Encoder, Modellvorhersagen für Knoten im Trainingsdiagramm und einige Konfigurationsdateien für den Inferenzendpunkt. Bei Aufgaben für die Klassifizierung und Regression von Aufgaben werden zur Reduzierung der Abfragelatenz Modellvorhersagen für Knoten, die während des Trainings vorhanden sind, vorab berechnet.
-
Klassifizierung und Regression von Kanten – Für Vorhersagen von Kanteneigenschaften gehören zu den Artefakten auch Modellparameter und Knoteneinbettungen. Die Parameter des Modell-Decoders sind für die Inferenz besonders wichtig, da die Vorhersagen für die Klassifizierung oder Regression von Kanten durch die Anwendung des Modell-Decoders auf die Einbettungen des Quell- und Zieleckpunkts einer Kante berechnet werden.
-
Linkvorhersage – Für Linkvorhersagen ist neben den Artefakten, die für die Vorhersage der Kanteneigenschaften generiert werden, auch das DGL-Diagramm als Artefakt enthalten, da Linkvorhersagen die Ausführung von Vorhersagen durch das Trainingsdiagramm erfordern. Das Ziel von Linkvorhersagen besteht in der Vorhersage der Zieleckpunkte, die wahrscheinlich mit einem Quelleckpunkt kombiniert werden, um eine Kante eines bestimmten Typs im Diagramm zu bilden. Hierzu werden die Knoteneinbettung des Quelleckpunkts und eine erlernte Darstellung des Kantentyps mit den Knoteneinbettungen aller möglichen Zieleckpunkte kombiniert, sodass für jeden Zieleckpunkt ein Wert für die Kantenwahrscheinlichkeit berechnet wird. Die Werte werden anschließend sortiert, um die potenziellen Zieleckpunkte zu ordnen und die besten Kandidaten zurückzugeben.
Für jeden Aufgabentyp werden die Gewichtungen des Graph-Neural-Network-Modells aus der DGL im Modellartefakt gespeichert. Auf diese Weise kann Neptune ML neue Modellausgaben berechnen, wenn das Diagramm geändert wird (induktive Inferenz), und vorab berechnete Vorhersagen und Einbettungen (transduktive Inferenz) verwenden, um die Latenz zu reduzieren.
Generieren neuer Modellartefakte
Die nach dem Modelltraining in Neptune ML generierten Modellartefakte sind direkt mit dem Trainingsvorgang verbunden. Die vorab berechneten Einbettungen und Vorhersagen sind daher nur für Entitäten im ursprünglichen Trainingsdiagramm vorhanden. Obwohl der induktive Inferenzmodus für Neptune-ML-Endpunkte Vorhersagen für neue Entitäten in Echtzeit berechnen kann, sollten Sie Batch-Vorhersagen für neue Entitäten ohne Abfrage eines Endpunkts generieren.
Um Batch-Modellvorhersagen für neue Entitäten zu erhalten, die dem Diagramm hinzugefügt wurden, müssen für die neuen Diagrammdaten neue Modellartefakte neu berechnet werden. Dies erfolgt mittels des Befehls modeltransform
. Sie verwenden den Befehl modeltransform
, wenn Sie nur Batch-Vorhersagen ohne Einrichtung eines Endpunkts erhalten möchten oder wenn alle Vorhersagen generiert werden sollen, damit Sie diese zurück zum Diagramm schreiben können.
Da Modelltrainings am Ende des Trainingsvorgangs implizit eine Modelltransformation durchführen, führen Trainingsaufträge stets eine Neuberechnung der Modellartefakte anhand der Trainingsdiagrammdaten durch. Der Befehl modeltransform
kann Modellartefakte jedoch auch anhand von Diagrammdaten berechnen, die nicht zum Trainieren eines Modells verwendet wurden. Hierzu müssen die neuen Diagrammdaten mit denselben Feature-Kodierungen wie die ursprünglichen Diagrammdaten verarbeitet werden und dasselbe Diagrammschema verwenden.
Erstellen Sie zunächst einen Klon des Datenverarbeitungsauftrags, der für die ursprünglichen Trainingsdiagrammdaten ausgeführt wurde. Führen Sie diesen dann für die neuen Diagrammdaten aus (siehe Verarbeiten aktualisierter Diagrammdaten für Neptune ML). Rufen Sie dann den Befehl modeltransform
mit der neuen dataProcessingJobId
und der alten modelTrainingJobId
auf, um die Modellartefakte anhand der aktualisierten Diagrammdaten neu zu berechnen.
Für die Vorhersage von Knoteneigenschaften werden die Knoteneinbettungen und Vorhersagen anhand der neuen Diagrammdaten neu berechnet, auch für Knoten im ursprünglichen Trainingsdiagramm.
Für die Vorhersage von Kanteneigenschaften und Linkvorhersagen werden die Knoteneinbettungen ebenfalls neu berechnet. Diese überschreiben alle vorhandenen Knoteneinbettungen. Um die Knoteneinbettungen neu zu berechnen, wendet Neptune ML den erlernten GNN-Encoder aus dem zuvor trainierten Modell auf die Knoten der neuen Diagrammdaten mit ihren neuen Features an.
Für Knoten ohne Features werden die erlernten anfänglichen Darstellungen aus dem ursprünglichen Modelltraining wiederverwendet. Für neue Knoten ohne Features, die nicht im ursprünglichen Trainingsdiagramm vorhanden waren, initialisiert Neptune ML die Darstellung als Durchschnitt der erlernten anfänglichen Knotendarstellungen des Knotentyps im ursprünglichen Trainingsdiagramm. Dies kann zu Leistungsabfällen bei Modellvorhersagen führen, wenn es zahlreiche neue Knoten ohne Features gibt, da alle zur durchschnittlichen anfänglichen Einbettung für diesen Knotentyp initialisiert werden.
Wenn Ihr Modell mit concat-node-embed
als „true“ trainiert wird, werden die anfänglichen Knotendarstellungen durch die Verkettung der Knoten-Features mit der erlernbaren Anfangsdarstellung erstellt. Daher verwendet die anfängliche Knotendarstellung neuer Knoten für das aktualisierte Diagramm ebenfalls die durchschnittlichen anfänglichen Knoteneinbettungen, verkettet mit neuen Knoten-Features.
Darüber hinaus wird das Löschen von Knoten zurzeit nicht unterstützt. Wenn Knoten aus dem aktualisierten Diagramm entfernt wurden, müssen Sie das Modell anhand der aktualisierten Diagrammdaten neu trainieren.
Bei der Neuberechnung der Modellartefakte werden die erlernten Modellparameter für ein neues Diagramm wiederverwendet. Dies sollte nur erfolgen, wenn das neue Diagramm dem alten Diagramm sehr ähnlich ist. Wenn das neue Diagramm nicht ausreichend ähnlich ist, müssen Sie das Modell neu trainieren, um eine vergleichbare Modellleistung mit den neuen Diagrammdaten zu erzielen. Was als ausreichend ähnlich gilt, ist von der Struktur der Diagrammdaten abhängig. Als Faustregel sollten Sie Ihr Modell jedoch neu trainieren, wenn sich Ihre neuen Daten um mehr als 10–20 % von den ursprünglichen Trainingsdiagrammdaten unterscheiden.
Für Diagramme, in denen alle Knoten Features besitzen, gilt das obere Ende des Schwellenwerts (20 % Unterschied). Für Diagramme, in denen viele Knoten keine Features besitzen und die neuen, dem Diagramm hinzugefügten Knoten keine Eigenschaften besitzen, ist der untere Schwellenwert (10 % Unterschied) möglicherweise sogar zu hoch.
Weitere Informationen zu Modelltransformationsaufträgen finden Sie unter Der Befehl modeltransform.