Übersicht über benutzerdefinierte Modelle in Neptune ML - Amazon Neptune

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.

Übersicht über benutzerdefinierte Modelle in Neptune ML

Wann sollte ein benutzerdefiniertes Modell in Neptune ML verwendet werden

Die integrierten Modelle von Neptune ML behandeln alle von Neptune ML unterstützten Standardaufgaben. Es kann jedoch Fälle geben, in denen Sie das Modell für eine bestimmte Aufgabe genauer steuern möchten oder den Modelltrainingsprozess anpassen müssen. Sie sollten in den folgenden Situationen ein benutzerdefiniertes Modell verwenden:

  • Die Feature-Kodierung für Text-Features sehr großer Textmodelle muss auf einer GPU ausgeführt werden.

  • Sie möchten ein eigenes benutzerdefiniertes Graph-Neural-Network (GNN)-Modell verwenden, das in der Deep Graph Library (DGL) entwickelt wurde.

  • Sie möchten tabellarische Modelle oder Ensemblemodelle für die Klassifizierung und Regression von Knoten verwenden.

Workflow für die Entwicklung und Verwendung eines benutzerdefinierten Modells in Neptune ML

Die Unterstützung benutzerdefinierter Modelle in Neptune ML soll die nahtlose Integration in vorhandene Neptune-ML-Workflows ermöglichen. Dabei wird benutzerdefinierter Code in Ihrem Quellmodul in der Neptune-ML-Infrastruktur ausgeführt, um das Modell zu trainieren. Genau wie bei einem integrierten Modus startet Neptune ML automatisch einen SageMaker-Hyperparameter-Optimierungsauftrag und wählt das beste Modell anhand der Auswertungsmetrik aus. Anschließend werden über die in Ihrem Quellmodul bereitgestellte Implementierung Modellartefakte zur Bereitstellung generiert.

Datenexport, Trainingskonfiguration und Datenvorverarbeitung sind für benutzerdefinierte und integrierte Modelle identisch.

Nach der Datenvorverarbeitung können Sie Ihre benutzerdefinierte Modellimplementierung iterativ und interaktiv mit Python entwickeln und testen. Wenn Ihr Modell für die Produktion bereit ist, können Sie das resultierende Python-Modul wie folgt zu Amazon S3 hochladen:

aws s3 cp --recursive (source path to module) s3://(bucket name)/(destination path for your module)

Anschließend können Sie das Modell über den normalen Standard-Daten-Workflow oder den inkrementellen Daten-Workflow in der Produktion bereitstellen. Es gibt jedoch einige Unterschiede.

Für das Modelltraining anhand eines benutzerdefinierten Modells müssen Sie der Neptune-ML-Modelltrainings-API das JSON-Objekt customModelTrainingParameters bereitstellen, um sicherzustellen, dass Ihr benutzerdefinierter Code verwendet wird. Die Felder im Objekt customModelTrainingParameters sind:

  • sourceS3DirectoryPath   –   (Erforderlich) Der Pfad zum Amazon-S3-Speicherort des Python-Moduls, das Ihr Modell implementiert. Dieser Pfad muss auf einen gültigen, vorhandenen Amazon-S3-Speicherort verweisen, der mindestens ein Trainingsskript, ein Transformationsskript und die Datei model-hpo-configuration.json enthält.

  • trainingEntryPointScript   –   (Optional) Der Name des Einstiegspunkts in Ihrem Modul für ein Skript, das Modelltrainings durchführt und Hyperparameter als Befehlszeilenargumente verwendet, einschließlich fester Hyperparameter.

    Standard: training.py.

  • transformEntryPointScript   –   (Optional) Der Name des Einstiegspunkts in Ihrem Modul für ein Skript, das ausgeführt werden soll, nachdem das beste Modell aus der Hyperparametersuche identifiziert wurde, um die für die Modellbereitstellung notwendigen Modellartefakte zu berechnen. Es sollte ohne Befehlszeilenargumente ausgeführt werden können.

    Standard: transform.py.

Zum Beispiel:

curl \ -X POST https://(your Neptune endpoint)/ml/modeltraining -H 'Content-Type: application/json' \ -d '{ "id" : "(a unique model-training job ID)", "dataProcessingJobId" : "(the data-processing job-id of a completed job)", "trainModelS3Location" : "s3://(your Amazon S3 bucket)/neptune-model-graph-autotrainer" "modelName": "custom", "customModelTrainingParameters" : { "sourceS3DirectoryPath": "s3://(your Amazon S3 bucket)/(path to your Python module)", "trainingEntryPointScript": "(your training script entry-point name in the Python module)", "transformEntryPointScript": "(your transform script entry-point name in the Python module)" } }'

Um eine benutzerdefinierte Modelltransformation zu aktivieren, müssen Sie der Neptune-ML-Modelltransformations-API das JSON-Objekt customModelTransformParameters mit Feldwerten bereitstellen, die mit den gespeicherten Modellparametern aus dem Trainingsauftrag kompatibel sind. Das Objekt customModelTransformParameters enthält die folgenden Felder:

  • sourceS3DirectoryPath   –   (Erforderlich) Der Pfad zum Amazon-S3-Speicherort des Python-Moduls, das Ihr Modell implementiert. Dieser Pfad muss auf einen gültigen, vorhandenen Amazon-S3-Speicherort verweisen, der mindestens ein Trainingsskript, ein Transformationsskript und die Datei model-hpo-configuration.json enthält.

  • transformEntryPointScript   –   (Optional) Der Name des Einstiegspunkts in Ihrem Modul für ein Skript, das ausgeführt werden soll, nachdem das beste Modell aus der Hyperparametersuche identifiziert wurde, um die für die Modellbereitstellung notwendigen Modellartefakte zu berechnen. Es sollte ohne Befehlszeilenargumente ausgeführt werden können.

    Standard: transform.py.

Zum Beispiel:

curl \ -X POST https://(your Neptune endpoint)/ml/modeltransform -H 'Content-Type: application/json' \ -d '{ "id" : "(a unique model-training job ID)", "trainingJobName" : "(name of a completed SageMaker training job)", "modelTransformOutputS3Location" : "s3://(your Amazon S3 bucket)/neptune-model-transform/" "customModelTransformParameters" : { "sourceS3DirectoryPath": "s3://(your Amazon S3 bucket)/(path to your Python module)", "transformEntryPointScript": "(your transform script entry-point name in the Python module)" } }'