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:

  • Es necesario ejecutar las funciones de codificación de texto de modelos de texto muy grandesGPU.

  • Desea utilizar su propio modelo de red neuronal gráfica (GNN) personalizado desarrollado en 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 HyperParameter ajuste de SageMaker IA y selecciona el mejor modelo de acuerdo con 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 customModelTrainingParameters JSON objeto al entrenamiento del modelo ML de Neptune API para garantizar que se utilice su 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 customModelTransformParameters JSON objeto a la transformación del modelo ML de NeptuneAPI, 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 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)" } }'