Visão geral dos modelos personalizados no Neptune ML - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Visão geral dos modelos personalizados no Neptune ML

Quando usar um modelo personalizado no Neptune ML

Os modelos integrados do Neptune ML lidam com todas as tarefas padrão compatíveis com o Neptune ML, mas pode haver casos em que você queira ter um controle mais granular sobre o modelo para uma tarefa específica ou precise personalizar o processo de treinamento de modelos. Por exemplo, um modelo personalizado é apropriado nas seguintes situações:

  • Codificação de atributos de texto de modelos de texto muito grandes precisam ser executados na GPU.

  • Você deseja usar seu próprio modelo personalizado de rede neural para grafos (GNN) desenvolvido na Deep Graph Library (DGL).

  • Você deseja usar modelos tabulares ou modelos de conjunto para classificação e regressão de nós.

Fluxo de trabalho para desenvolver e usar um modelo personalizado no Neptune ML

O suporte a modelos personalizados no Neptune ML foi projetado para se integrar perfeitamente aos fluxos de trabalho existentes do Neptune ML. Ele funciona executando código personalizado no módulo de origem na infraestrutura do Neptune ML para treinar o modelo. Assim como no caso de um modo integrado, o Neptune ML inicia automaticamente um trabalho de ajuste de hiperparâmetros do SageMaker e seleciona o melhor modelo de acordo com a métrica de avaliação. Depois, ele usa a implementação fornecida no módulo de origem para gerar artefatos de modelo para implantação.

A exportação de dados, a configuração de treinamento e o pré-processamento de dados são os mesmos para modelos personalizados e incorporados.

Depois do pré-processamento de dados, é quando você pode desenvolver e testar de forma iterativa e interativa a implementação de modelos personalizados usando Python. Quando o modelo estiver pronto para produção, você poderá fazer o upload do módulo Python resultante para o Amazon S3 da seguinte forma:

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

Depois, é possível usar o fluxo de trabalho de dados padrão normal ou incremental para implantar o modelo na produção, com algumas diferenças.

Para treinamento de modelos usando um modelo personalizado, é necessário fornecer um objeto customModelTrainingParameters JSON à API de treinamento de modelos do Neptune ML para garantir que o código personalizado seja usado. Os campos no objeto customModelTrainingParameters são os seguintes:

  • sourceS3DirectoryPath: (obrigatório) o caminho para o local do Amazon S3 onde o módulo Python que implementa seu modelo está localizado. Isso deve apontar para uma localização válida existente do Amazon S3 que contenha, no mínimo, um script de treinamento, um script de transformação e um arquivo model-hpo-configuration.json.

  • trainingEntryPointScript: (opcional) o nome do ponto de entrada no módulo de um script que executa o treinamento de modelos e usa hiperparâmetros como argumentos de linha de comando, incluindo hiperparâmetros fixos.

    Padrão: training.py.

  • transformEntryPointScript: (opcional) o nome do ponto de entrada no módulo de um script que deve ser executado após a identificação do melhor modelo da pesquisa de hiperparâmetros, para calcular os artefatos do modelo necessários para a implantação do modelo. Ele deve ser capaz de ser executado sem argumentos de linha de comando.

    Padrão: transform.py.

Por exemplo:

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

Da mesma forma, para habilitar uma transformação de modelos personalizados, você deve fornecer um objeto customModelTransformParameters JSON à API de transformação de modelos do Neptune ML, com valores de campo compatíveis com os parâmetros do modelo salvos do trabalho de treinamento. O objeto customModelTransformParameters contém os seguintes campos:

  • sourceS3DirectoryPath: (obrigatório) o caminho para o local do Amazon S3 onde o módulo Python que implementa seu modelo está localizado. Isso deve apontar para uma localização válida existente do Amazon S3 que contenha, no mínimo, um script de treinamento, um script de transformação e um arquivo model-hpo-configuration.json.

  • transformEntryPointScript: (opcional) o nome do ponto de entrada no módulo de um script que deve ser executado após a identificação do melhor modelo da pesquisa de hiperparâmetros, para calcular os artefatos do modelo necessários para a implantação do modelo. Ele deve ser capaz de ser executado sem argumentos de linha de comando.

    Padrão: transform.py.

Por exemplo:

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