Panoramica dei modelli personalizzati in Neptune ML - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Panoramica dei modelli personalizzati in Neptune ML

Quando usare un modello personalizzato in Neptune ML

I modelli predefiniti di Neptune ML gestiscono tutte le attività standard supportate da Neptune ML, ma in alcuni casi potrebbe essere necessario un controllo più granulare sul modello per un'attività specifica o personalizzare il processo di addestramento del modello. Un modello personalizzato, ad esempio, è appropriato nelle seguenti situazioni:

  • È necessario eseguire la codifica delle funzionalità per le funzionalità di testo di modelli di testo molto grandi su istanze GPU.

  • Vuoi usare un modello di rete neurale a grafo (GNN) personalizzato sviluppato in Deep Graph Library (DGL).

  • Vuoi usare modelli tabulari o modelli di insieme per la classificazione e la regressione dei nodi.

Flusso di lavoro per lo sviluppo e l'utilizzo di un modello personalizzato in Neptune ML

Il supporto di modelli personalizzati in Neptune ML è progettato per integrarsi perfettamente nei flussi di lavoro Neptune ML esistenti. Il codice personalizzato viene eseguito nel modulo di origine sull'infrastruttura di Neptune ML per addestrare il modello. Proprio come nel caso di un modello predefinito, Neptune ML avvia automaticamente un processo di ottimizzazione degli iperparametri SageMaker e seleziona il modello migliore in base alla metrica di valutazione. Utilizza quindi l'implementazione fornita nel modulo di origine per generare gli artefatti del modello da implementare.

Le fasi di esportazione dei dati, configurazione di addestramento e pre-elaborazione dei dati sono le stesse sia per i modelli personalizzati che per quelli predefiniti.

Dopo la pre-elaborazione dei dati è possibile sviluppare e testare l'implementazione del modello personalizzato in modo iterativo e interattivo con Python. Quando il modello è pronto per la produzione, puoi caricare il modulo Python risultante su Amazon S3 in questo modo:

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

Quindi, puoi utilizzare il normale flusso di lavoro dei dati predefinito o incrementale per implementare il modello in produzione, con alcune differenze.

Per l'addestramento dei modelli con un modello personalizzato, è necessario fornire un oggetto JSON customModelTrainingParameters all'API di addestramento dei modelli Neptune ML per assicurarsi che venga usato il codice personalizzato. I campi nell'oggetto customModelTrainingParameters sono i seguenti:

  • sourceS3DirectoryPath (obbligatorio): percorso della posizione Amazon S3 in cui si trova il modulo Python che implementa il modello. Deve indicare una posizione Amazon S3 esistente valida che contenga almeno uno script di addestramento, uno script di trasformazione e un file model-hpo-configuration.json.

  • trainingEntryPointScript (facoltativo): nome del punto di ingresso nel modulo di uno script che esegue l'addestramento del modello e accetta gli iperparametri come argomenti della riga di comando, inclusi gli iperparametri fissi.

    Default: training.py

  • transformEntryPointScript (facoltativo): nome del punto di ingresso nel modulo di uno script che deve essere eseguito dopo aver identificato il modello migliore ottenuto dalla ricerca degli iperparametri, in modo da calcolare gli artefatti del modello necessari per l'implementazione del modello. Deve poter essere eseguito senza argomenti della riga di comando.

    Default: transform.py

Ad esempio:

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

Allo stesso modo, per abilitare una trasformazione del modello personalizzata, è necessario fornire un oggetto JSON customModelTransformParameters all'API di trasformazione dei modelli Neptune ML, con valori dei campi compatibili con i parametri del modello salvati dal processo di addestramento. L'oggetto customModelTransformParameters contiene i seguenti campi:

  • sourceS3DirectoryPath (obbligatorio): percorso della posizione Amazon S3 in cui si trova il modulo Python che implementa il modello. Deve indicare una posizione Amazon S3 esistente valida che contenga almeno uno script di addestramento, uno script di trasformazione e un file model-hpo-configuration.json.

  • transformEntryPointScript (facoltativo): nome del punto di ingresso nel modulo di uno script che deve essere eseguito dopo aver identificato il modello migliore ottenuto dalla ricerca degli iperparametri, in modo da calcolare gli artefatti del modello necessari per l'implementazione del modello. Deve poter essere eseguito senza argomenti della riga di comando.

    Default: transform.py

Ad esempio:

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