Neptune ML에서 모델 훈련을 통해 제작한 아티팩트 - Amazon Neptune

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

Neptune ML에서 모델 훈련을 통해 제작한 아티팩트

모델 훈련 후 Neptune ML은 가장 잘 훈련된 모델 파라미터를 사용하여 추론 엔드포인트를 시작하고 모델 예측을 제공하는 데 필요한 모델 아티팩트를 생성합니다. 이러한 아티팩트는 훈련 작업별로 패키징되어 최적 SageMaker 훈련 작업의 Amazon S3 출력 위치에 저장됩니다.

다음 섹션에서는 다양한 작업을 위한 모델 아티팩트에 무엇이 포함되는지를 알아보고, model transform 명령이 기존에 훈련된 모델을 사용하여 새 그래프 데이터에서도 아티팩트를 생성하는 방법을 설명합니다.

다양한 작업을 위해 생성된 아티팩트

훈련 프로세스에서 생성되는 모델 아티팩트의 콘텐츠는 대상 기계 학습 작업에 따라 달라집니다.

  • 노드 분류 및 회귀   –   노드 속성 예측의 경우 아티팩트에는 모델 파라미터, GNN 인코더의 노드 임베딩, 훈련 그래프의 노드에 대한 모델 예측, 추론 엔드포인트에 대한 일부 구성 파일이 포함됩니다. 노드 분류 및 노드 회귀 작업에서는 훈련 중에 있는 노드에 대해 모델 예측을 미리 계산하여 쿼리 지연 시간을 줄입니다.

  • 엣지 분류 및 회귀   –   엣지 속성 예측의 경우 아티팩트에는 모델 파라미터와 노드 임베딩도 포함됩니다. 모델 디코더의 파라미터는 모델 디코더를 엣지 소스 및 대상 버텍스의 임베딩에 적용하여 엣지 분류 또는 엣지 회귀 예측을 계산하기 때문에 추론에 특히 중요합니다.

  • 연결 예측   –   연결 예측에는 예측을 수행하기 위한 훈련 그래프가 필요하기 때문에 엣지 속성 예측을 위해 생성된 아티팩트 외에 DGL 그래프도 아티팩트로 포함됩니다. 연결 예측의 목적은 소스 버텍스와 결합하여 그래프에서 특정 유형의 엣지를 형성할 가능성이 있는 대상 버텍스를 예측하는 것입니다. 이를 위해 소스 버텍스의 노드 임베딩과 엣지 유형에 대해 학습된 표현을 가능한 모든 대상 버텍스의 노드 임베딩과 결합하여 각 대상 버텍스에 대한 엣지 가능성 점수를 산출합니다. 그런 다음 점수를 정렬하여 잠재적 대상 버텍스의 순위를 매기고 상위 후보를 반환합니다.

각 작업 유형에 대해 DGL의 그래프 신경망 모델 가중치가 모델 아티팩트에 저장됩니다. 이를 통해 Neptune ML은 사전 계산된 예측 및 임베딩(변환 추론)을 사용하여 지연 시간을 줄일뿐더러 그래프 변경(유도 추론)에 따라 새로운 모델 출력을 계산할 수 있습니다.

새 모델 아티팩트 생성

Neptune ML에서 모델 훈련 후 생성된 모델 아티팩트는 훈련 프로세스와 직접적으로 연결됩니다. 즉, 사전 계산된 임베딩 및 예측은 기존 훈련 그래프에 있던 엔터티에 대해서만 존재합니다. Neptune ML 엔드포인트의 유도 추론 모드에서는 새 엔터티에 대한 예측을 실시간으로 계산할 수 있지만, 엔드포인트를 쿼리하지 않고 새 엔터티에 대한 배치 예측을 생성하는 것이 좋습니다.

그래프에 추가된 새 엔터티에 대한 배치 모델 예측을 가져오려면 새 그래프 데이터에 맞게 새 모델 아티팩트를 다시 계산해야 합니다. 이 작업은 modeltransform 명령을 사용하여 수행할 수 있습니다. 엔드포인트를 설정하지 않고 배치 예측만 하려는 경우 또는 모든 예측을 생성하여 그래프에 다시 기록하려는 경우 modeltransform 명령을 사용합니다.

모델 훈련은 훈련 프로세스가 끝날 때 암시적으로 모델 변환을 수행하므로, 훈련 작업을 통해 항상 훈련 그래프 데이터에서 모델 아티팩트가 다시 계산됩니다. 그러나 이 modeltransform 명령은 모델 훈련에 사용되지 않은 그래프 데이터에서 모델 아티팩트를 계산할 수도 있습니다. 이를 위해서는 원본 그래프 데이터와 동일한 특성 인코딩을 사용하여 새 그래프 데이터를 처리하고 동일한 그래프 스키마를 준수해야 합니다.

먼저 원본 훈련 그래프 데이터에서 실행한 데이터 처리 작업의 복제본인 새 데이터 처리 작업을 만든 후 새 그래프 데이터에서 실행하여 작업을 수행할 수 있습니다(Neptune ML의 업데이트된 그래프 데이터 처리 참조). 그런 다음 새 dataProcessingJobId 및 기존 modelTrainingJobId와 함께 modeltransform 명령을 호출하여 업데이트된 그래프 데이터에서 모델 아티팩트를 다시 계산합니다.

노드 속성 예측의 경우, 새 그래프 데이터에서 노드 임베딩과 예측이 다시 계산되며, 이는 원래 훈련 그래프에 있던 노드의 경우에도 마찬가지입니다.

엣지 속성 예측 및 연결 예측의 경우 노드 임베딩도 다시 계산되며 기존 노드 임베딩도 마찬가지로 재정의됩니다. 노드 임베딩을 재계산하기 위해 Neptune ML은 이전에 훈련된 모델에서 학습한 GNN 인코더를 새 특성이 있는 새 그래프 데이터의 노드에 적용합니다.

특성이 없는 노드의 경우 원본 모델 훈련에서 학습한 초기 표현이 재사용됩니다. 특성이 없고 원래 훈련 그래프에는 없었던 새 노드의 경우 Neptune ML은 원래 훈련 그래프에 있는 해당 노드 유형의 학습된 초기 노드 표현의 평균으로 해당 표현을 초기화합니다. 이로 인해 특성이 없는 새 노드가 많은 경우 해당 노드 유형의 평균 초기 임베딩으로 모두 초기화되어 모델 예측의 성능이 약간 저하될 수 있습니다.

concat-node-embed를 true로 설정하여 모델을 훈련한 경우 노드 특성을 학습 가능한 초기 표현과 결합하여 초기 노드 표현을 생성합니다. 따라서 업데이트된 그래프의 경우 새 노드의 초기 노드 표현에는 새 노드 특성과 결합된 평균 초기 노드 임베딩도 사용됩니다.

또한 현재 노드 삭제는 지원되지 않습니다. 업데이트된 그래프에서 노드가 제거된 경우 업데이트된 그래프 데이터를 기반으로 모델을 재훈련해야 합니다.

모델 아티팩트를 다시 계산하면 학습된 모델 파라미터가 새 그래프에서 재사용되므로, 새 그래프가 이전 그래프와 매우 유사한 경우에만 작업을 수행해야 합니다. 새 그래프가 충분히 유사하지 않은 경우 새 그래프 데이터에서 유사한 모델 성능을 얻을 수 있도록 모델을 다시 훈련해야 합니다. 충분히 유사한 것으로 간주되는 요소는 그래프 데이터의 구조에 따라 다르지만, 경험상 새 데이터가 원래 훈련 그래프 데이터와 10~20% 이상 차이가 나는 경우에는 모델을 다시 훈련해야 합니다.

모든 노드에 특성이 있는 그래프의 경우 임계값의 상한(20% 차이)이 적용되지만, 많은 노드에 특성이 없고 그래프에 추가된 새 노드에 속성이 없는 그래프의 경우 하한 값(10% 차이)도 너무 높을 수 있습니다.

모델 변환 작업에 대한 자세한 정보는 modeltransform 명령의 내용을 참조하세요.