Información general sobre los modelos personalizados de Neptune ML - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Información general sobre los modelos personalizados de Neptune ML

Cuándo usar un modelo personalizado en Neptune ML

Los modelos integrados de Neptune ML gestionan todas las tareas estándar compatibles con Neptune ML, pero puede haber casos en los que desee tener un control más detallado sobre el modelo para una tarea concreta o necesite personalizar el proceso de entrenamiento de modelos. Por ejemplo, un modelo personalizado es adecuado en las siguientes situaciones:

  • La codificación de características para las características de texto de los modelos de texto muy grandes deben ejecutarse en la GPU.

  • Desea utilizar su propio modelo de red neuronal gráfica (GNN) personalizado y desarrollado en la biblioteca Deep Graph Library (DGL).

  • Desea utilizar modelos tabulares o modelos de ensamblaje para la clasificación y regresión de nodos.

Flujo de trabajo para desarrollar y usar un modelo personalizado en Neptune ML

El soporte de modelos personalizados en Neptune ML se ha diseñado para integrarse sin problemas en los flujos de trabajo existentes de Neptune ML. Funciona mediante la ejecución de código personalizado en el módulo de origen de la infraestructura de Neptune ML para entrenar el modelo. Al igual que en el caso de un modo integrado, Neptune ML lanza automáticamente un trabajo de ajuste de hiperparámetros de SageMaker y selecciona el mejor modelo según la métrica de evaluación. A continuación, utiliza la implementación proporcionada en el módulo de origen para generar artefactos de modelos para su implementación.

La exportación de datos, la configuración de entrenamientos y el preprocesamiento de datos son los mismos para un modelo personalizado que para uno integrado.

Una vez realizado el preprocesamiento de los datos, puede desarrollar y probar de forma iterativa e interactiva la implementación de su modelo personalizado mediante Python. Cuando el modelo esté listo para la producción, puede cargar el módulo de Python resultante en Amazon S3 de la siguiente manera:

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

A continuación, puede usar el flujo de trabajo de datos normal predeterminado o incremental para implementar el modelo en producción, con algunas diferencias.

Para el entrenamiento de modelos con un modelo personalizado, debe proporcionar un objeto customModelTrainingParameters de JSON a la API de entrenamiento de modelos de Neptune ML para garantizar que se utilice el código personalizado. Los campos del objeto customModelTrainingParameters son los siguientes:

  • sourceS3DirectoryPath: (obligatorio) la ruta a la ubicación de Amazon S3 donde se encuentra el módulo de Python que implementa el modelo. Debe apuntar a una ubicación válida de Amazon S3 existente que incluya, como mínimo, un script de entrenamiento, un script de transformación y un archivo model-hpo-configuration.json.

  • trainingEntryPointScript: (opcional) el nombre del punto de entrada en el módulo de un script que realiza el entrenamiento de modelos y utiliza los hiperparámetros como argumentos de la línea de comandos, incluidos los hiperparámetros fijos.

    Valor predeterminado: training.py.

  • transformEntryPointScript: (opcional) el nombre del punto de entrada en el módulo de un script que debe ejecutarse después de identificar el mejor modelo de la búsqueda de hiperparámetros, con el fin de calcular los artefactos de modelos necesarios para su implementación. Debería poder ejecutarse sin argumentos de línea de comandos.

    Valor predeterminado: transform.py.

Por ejemplo:

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

Del mismo modo, para habilitar una transformación de modelo personalizada, debe proporcionar un objeto customModelTransformParameters de JSON a la API de transformación de Neptune ML, con valores de campo que sean compatibles con los parámetros del modelo guardados del trabajo de entrenamiento. El objeto customModelTransformParameters incluye estos campos:

  • sourceS3DirectoryPath: (obligatorio) la ruta a la ubicación de Amazon S3 donde se encuentra el módulo de Python que implementa el modelo. Debe apuntar a una ubicación válida de Amazon S3 existente que incluya, como mínimo, un script de entrenamiento, un script de transformación y un archivo model-hpo-configuration.json.

  • transformEntryPointScript: (opcional) el nombre del punto de entrada en el módulo de un script que debe ejecutarse después de identificar el mejor modelo de la búsqueda de hiperparámetros, con el fin de calcular los artefactos de modelos necesarios para su implementación. Debería poder ejecutarse sin argumentos de línea de comandos.

    Valor predeterminado: transform.py.

Por ejemplo:

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