3단계. 파이프라인 정의 - AWS 규범적 지침

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

3단계. 파이프라인 정의


   ML 파이프라인을 정의합니다.

이 단계에서는 파이프라인이 수행할 작업의 순서와 로직이 정의됩니다. 여기에는 개별 단계와 해당 논리적 입력 및 출력이 포함됩니다. 예를 들어, 파이프라인 시작 시 데이터 상태는 어떻습니까? 데이터가 서로 다른 세부 수준에 있는 여러 파일에서 가져온 것입니까, 아니면 단일 플랫 파일에서 가져온 것입니까? 여러 파일에서 데이터를 가져오는 경우, 사전 처리 로직을 정의하려면 모든 파일에 대해 한 단계가 필요합니까? 아니면 파일마다 별도의 단계가 필요합니까? 이것은 데이터 소스의 복잡성과 사전 처리되는 정도에 따라 결정됩니다.

참조 구현에서는 서버리스 함수 오케스트레이터인 AWS Step Functions을 사용하여 워크플로우 단계를 정의합니다. 하지만 ML Max 프레임워크는 Apache AirFlow (파이프라인 오케스트레이션을 위한 다양한 엔진 섹션 참조) 와 같은 다른 파이프라인 또는 스테이트 머신 시스템도 지원하여 ML 파이프라인의 개발 및 배포를 촉진합니다.

Step Functions SDK 사용

ML 파이프라인을 정의하려면 먼저 AWS Step Functions Data Science SDK(Step Functions SDK)에서 제공하는 상위 수준의 Python API를 사용하여 파이프라인의 두 가지 주요 구성요소인 단계데이터를 정의합니다. 파이프라인을 DAG(directed acyclic graph)로 생각할 경우 단계들은 그래프의 노드를 나타내며 데이터는 한 노드(단계)를 다음 노드와 연결하는 방향이 있는 엣지로 표시됩니다. ML 단계의 일반적인 예로는 전처리, 훈련, 평가 등이 있습니다. Step Functions SDK는 사용자가 사용할 수 있는 여러 개의 기본 제공 단계(예: TrainingStep)를 제공합니다. 데이터의 예로는 입력, 출력, 파이프라인의 일부 단계에서 생성되는 여러 중간 데이터세트 등이 있습니다. ML 파이프라인을 설계할 때는 데이터 항목의 구체적인 값을 알 수 없습니다. 템플릿(함수 매개변수와 유사함) 역할을 하고 데이터 항목의 이름과 기본 데이터 유형만 포함하는 데이터 플레이스홀더를 정의할 수 있습니다. 이렇게 하면 그래프를 따라 이동하는 데이터의 구체적인 값을 미리 알지 않고도 완전한 파이프라인 청사진을 설계할 수 있습니다. 이를 위해 Step Functions SDK의 플레이스홀더 클래스를 사용하여 이러한 데이터 템플릿을 명시적으로 모델링할 수 있습니다.

또한, ML 파이프라인에는 각 ML 단계의 동작을 세밀하게 제어하기 위한 구성 매개변수가 필요합니다. 이러한 특수 데이터 플레이스홀더를 매개변수 플레이스홀더라고 합니다. 파이프라인을 정의할 때는 대부분의 값을 알 수 없습니다. 매개변수 플레이스홀더의 예로는 파이프라인 설계 중에 정의하는 인프라 관련 매개변수(예: AWS Region 또는 컨테이너 이미지 URL)와 파이프라인을 실행할 때 정의하는 ML 모델링 관련 매개변수(예: 하이퍼파라미터)가 있습니다.

Step Functions SDK 확장

참조 구현에서 필요한 한 가지 요구 사항은 특정 매개변수 설정을 사용하여 ML 파이프라인 정의를 구체적인 ML 파이프라인 생성 및 배포와 분리하는 것이었습니다. 하지만 Step Functions SDK에 내장된 일부 단계에서는 이러한 모든 플레이스홀더 매개변수를 전달하는 것을 허용하지 않습니다. 대신 SageMaker 구성 API 호출을 통해 파이프라인 설계 시간 동안 매개변수 값을 직접 가져올 것으로 예상했습니다. 이것은 SageMaker 디자인 타임 환경이 SageMaker 런타임 환경과 동일하면 잘 작동하지만 실제 설정에서는 거의 그렇지 않습니다. 파이프라인 디자인 타임과 런타임 사이가 이렇게 긴밀하게 결합되어 있고 ML 플랫폼 인프라가 일정하게 유지될 것이라는 가정은 설계된 파이프라인의 적용성을 크게 저해합니다. 실제로 ML 파이프라인은 기본 배포 플랫폼이 조금이라도 변경되면 즉시 중단됩니다.

이 문제를 극복하고 강력한 ML 파이프라인을 만들기 위해 (한 번 설계하면 어디서나 실행되는 것을 원함) TrainingStep, ModelStep, and TransformerStep을 비롯하여 기본 제공된 단계의 일부를 확장하여 나만의 사용자 지정 단계를 구현했습니다. 이러한 확장은 ML Max 프로젝트에서 제공됩니다. 이러한 사용자 지정 단계의 인터페이스는 훨씬 더 많은 매개변수 플레이스홀더를 지원하며, 파이프라인 생성 시 또는 파이프라인 실행 시 구체적인 값으로 채울 수 있습니다.