Présentation des modèles personnalisés dans Neptune ML - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Présentation des modèles personnalisés dans Neptune ML

Quand utiliser un modèle personnalisé dans Neptune ML

Les modèles intégrés de Neptune ML gèrent toutes les tâches standard prises en charge par Neptune ML, mais il peut arriver que vous souhaitiez avoir un contrôle plus précis sur le modèle pour une tâche particulière ou que vous ayez besoin de personnaliser le processus de formation au modèle. Par exemple, un modèle personnalisé convient dans les cas suivants :

  • Le codage des fonctionnalités pour les fonctions de texte de très grands modèles de texte doit être exécuté sur GPU.

  • Vous souhaitez utiliser votre propre modèle Graph Neural Network (GNN) personnalisé développé dans Deep Graph Library (DGL).

  • Vous souhaitez utiliser des modèles tabulaires ou des modèles d'ensemble pour la classification et la régression des nœuds.

Workflow pour développer et utiliser un modèle personnalisé dans Neptune ML

La prise en charge des modèles personnalisés dans Neptune ML est conçue pour s'intégrer de manière transparente dans les workflows Neptune ML existants. Il fonctionne en exécutant du code personnalisé dans votre module source sur l'infrastructure de Neptune ML pour entraîner le modèle. Tout comme pour un mode intégré, Neptune ML lance automatiquement une tâche de réglage SageMaker HyperParameter et sélectionne le meilleur modèle en fonction de la mesure d'évaluation. Il utilise ensuite l'implémentation fournie dans votre module source pour générer des artefacts de modèle à déployer.

L'exportation des données, la configuration de formation et le prétraitement des données sont les mêmes pour un modèle personnalisé que pour un modèle intégré.

Après le prétraitement des données, vous pouvez développer et tester de manière itérative et interactive votre implémentation de modèle personnalisé à l'aide de Python. Lorsque votre modèle est prêt pour la production, vous pouvez télécharger le module Python obtenu sur Amazon S3 comme suit :

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

Ensuite, vous pouvez utiliser la normaledéfautou leincrémentielleflux de données pour déployer le modèle en production, avec quelques différences.

Pour la formation sur modèle utilisant un modèle personnalisé, vous devez fournir uncustomModelTrainingParametersJSON s'oppose à l'API de formation du modèle Neptune ML pour s'assurer que votre code personnalisé est utilisé. Les champs de lacustomModelTrainingParametersobjet sont les suivants :

  • sourceS3DirectoryPath— (Obligatoire) Chemin d'accès vers l'emplacement Amazon S3 où se trouve le module Python implémentant votre modèle. Cela doit pointer vers un emplacement Amazon S3 existant valide qui contient, au minimum, un script de formation, un script de transformation et unmodel-hpo-configuration.jsondans le fichier.

  • trainingEntryPointScript— (Facultatif) Le nom du point d'entrée dans votre module d'un script qui effectue une formation au modèle et prend des hyperparamètres comme arguments de ligne de commande, y compris des hyperparamètres fixes.

    Par défaut :training.py.

  • transformEntryPointScript— (Facultatif) Le nom du point d'entrée dans votre module d'un script qui doit être exécuté après l'identification du meilleur modèle de la recherche d'hyperparamètres, afin de calculer les artefacts de modèle nécessaires au déploiement du modèle. Il devrait pouvoir être exécuté sans argument de ligne de commande.

    Par défaut :transform.py.

Par Exemple:

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

De même, pour activer une transformation de modèle personnalisée, vous devez fournir uncustomModelTransformParametersObjet JSON vers l'API de transformation de modèle Neptune ML, avec des valeurs de champ compatibles avec les paramètres de modèle enregistrés de la tâche de formation. LecustomModelTransformParametersobjet contient les champs suivants :

  • sourceS3DirectoryPath— (Obligatoire) Chemin d'accès vers l'emplacement Amazon S3 où se trouve le module Python implémentant votre modèle. Cela doit pointer vers un emplacement Amazon S3 existant valide qui contient, au minimum, un script de formation, un script de transformation et unmodel-hpo-configuration.jsondans le fichier.

  • transformEntryPointScript— (Facultatif) Le nom du point d'entrée dans votre module d'un script qui doit être exécuté après l'identification du meilleur modèle de la recherche d'hyperparamètres, afin de calculer les artefacts de modèle nécessaires au déploiement du modèle. Il devrait pouvoir être exécuté sans argument de ligne de commande.

    Par défaut :transform.py.

Par Exemple:

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