Neptune ML의 사용자 지정 모델 개요 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Neptune ML의 사용자 지정 모델 개요

Neptune ML에서 사용자 지정 모델을 사용해야 하는 경우

Neptune ML의 내장 모델은 Neptune ML에서 지원하는 모든 표준 작업을 처리하지만, 특정 작업을 위해 모델을 더 세밀하게 제어하고 싶거나 모델 훈련 프로세스를 사용자 지정해야 하는 경우가 있을 수 있습니다. 예를 들어, 다음과 같은 상황에는 사용자 지정 모델이 적합합니다.

  • GPU에서 실행해야 하는 매우 큰 텍스트 모델의 텍스트 특성에 대한 특성 인코딩이 필요합니다.

  • 딥 그래프 라이브러리(DGL)에서 개발한 자체 사용자 지정 그래프 신경망(GNN) 모델을 사용하고 싶습니다.

  • 노드 분류 및 회귀에 표 형식 모델이나 앙상블 모델을 사용하려고 합니다.

Neptune ML에서 사용자 지정 모델을 개발하고 사용하기 위한 워크플로우

Neptune ML의 사용자 지정 모델 지원은 기존 Neptune ML 워크플로우에 원활하게 통합되도록 설계되었습니다. Neptune ML 인프라의 소스 모듈에서 사용자 지정 코드를 실행하여 모델을 훈련하는 방식으로 작동합니다. 내장 모드의 경우와 마찬가지로 Neptune ML은 SageMaker 하이퍼파라미터 조정 작업을 자동으로 시작하고 평가 지표에 따라 최적의 모델을 선택합니다. 그런 다음 소스 모듈에 제공된 구현을 사용하여 배포할 모델 아티팩트를 생성합니다.

데이터 내보내기, 훈련 구성, 데이터 전처리는 사용자 지정 모델의 경우와 내장 모델의 경우 동일합니다.

데이터 전처리 후는 Python을 활용하여 사용자 지정 모델 구현을 반복적이고 대화식으로 개발하고 테스트할 수 있는 시기입니다. 모델이 프로덕션 준비가 되면 다음과 같이 결과 Python 모듈을 Amazon S3에 업로드할 수 있습니다.

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

그런 다음 몇 가지 차이점을 제외하고 일반 기본 또는 증분 데이터 워크플로우를 사용하여 프로덕션에 모델을 배포할 수 있습니다.

사용자 지정 모델을 사용한 모델 훈련의 경우 사용자 지정 코드가 활용되도록 Neptune ML 모델 훈련 API에 customModelTrainingParameters JSON 객체를 제공해야 합니다. customModelTrainingParameters 객체의 필드는 다음과 같습니다.

  • sourceS3DirectoryPath   –   (필수) 모델을 구현하는 Python 모듈이 위치한 Amazon S3 위치 경로입니다. 이는 최소한 훈련 스크립트, 변환 스크립트 및 model-hpo-configuration.json 파일을 포함하는 유효한 기존 Amazon S3 위치를 가리켜야 합니다.

  • trainingEntryPointScript   –   (선택 사항) 모델 훈련을 수행하고 하이퍼파라미터를 명령줄 인수로 취하는 스크립트(예: 고정값 하이퍼파라미터)의 모듈 내 진입점 이름입니다.

    기본값: training.py.

  • transformEntryPointScript   –   (선택 사항) 모델 배포에 필요한 모델 아티팩트를 계산하기 위해 하이퍼파라미터 검색에서 최적의 모델을 식별한 후 실행해야 하는 스크립트의 모듈 내 진입점 이름입니다. 명령줄 인수 없이 실행할 수 있어야 합니다.

    기본값: transform.py.

예:

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

마찬가지로 사용자 지정 모델 변환을 활성화하려면 훈련 작업에서 저장된 모델 파라미터와 호환되는 필드 값과 함께 customModelTransformParameters JSON 객체를 Neptune ML 모델 변환 API에 제공해야 합니다. customModelTransformParameters 객체에는 다음과 같은 필드가 포함됩니다.

  • sourceS3DirectoryPath   –   (필수) 모델을 구현하는 Python 모듈이 위치한 Amazon S3 위치 경로입니다. 이는 최소한 훈련 스크립트, 변환 스크립트 및 model-hpo-configuration.json 파일을 포함하는 유효한 기존 Amazon S3 위치를 가리켜야 합니다.

  • transformEntryPointScript   –   (선택 사항) 모델 배포에 필요한 모델 아티팩트를 계산하기 위해 하이퍼파라미터 검색에서 최적의 모델을 식별한 후 실행해야 하는 스크립트의 모듈 내 진입점 이름입니다. 명령줄 인수 없이 실행할 수 있어야 합니다.

    기본값: transform.py.

예:

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