Ü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-Codierung für Textmerkmale sehr großer Textmodelle muss ausgeführt werdenGPU.

  • Sie möchten Ihr 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 KI-Tuning-Job und wählt anhand der Bewertungsmetrik das beste Modell 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 ein Modelltraining mit einem benutzerdefinierten Modell müssen Sie dem Neptune ML-Modelltraining ein customModelTrainingParameters JSON Objekt zur Verfügung stellen, API 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.

    Standardwert: 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.

    Standardwert: transform.py.

Beispielsweise:

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-Modelltransformation ebenfalls ein customModelTransformParameters JSON Objekt mit Feldwerten bereitstellenAPI, die mit den gespeicherten Modellparametern aus dem Trainingsjob 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.

    Standardwert: transform.py.

Beispielsweise:

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 AI 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)" } }'