SageMaker Kubeflow 파이프라인 구성 요소 - Amazon SageMaker

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

SageMaker Kubeflow 파이프라인 구성 요소

Kubeflow 파이프라인용 SageMaker 구성 요소를 사용하면 Kubeflow 파이프라인에서 네이티브 SageMaker 훈련, 튜닝, 엔드포인트 배포 및 배치 변환 작업을 생성하고 모니터링할 수 있습니다. 에서 Kubeflow Pipeline 작업을 실행하면 데이터 처리 및 훈련 작업을 Kubernetes 클러스터에서 SageMaker의 기계 학습 최적화 관리형 서비스로 SageMaker이동합니다. 이 설명서에서는 Kubernetes와 Kubeflow에 대한 사전 지식이 있다고 가정합니다.

Kubeflow 파이프라인이란 무엇인가요?

Kubeflow Pipelines(KFP)는 Docker 컨테이너를 기반으로 휴대용, 확장 가능한 기계 학습(ML) 워크플로를 구축하고 배포하기 위한 플랫폼입니다. Kubeflow 파이프라인 플랫폼은 다음과 같은 요소로 구성됩니다.

  • 실험, 작업, 실행을 관리하고 추적하기 위한 사용자 인터페이스(UI).

  • 다단계 ML 워크플로를 스케줄링하기 위한 엔진(Argo).

  • 파이프라인 및 구성 요소를 정의하고 조작하기 SDK 위한 입니다.

  • 를 사용하여 시스템과 상호 작용하기 위한 노트북입니다SDK.

파이프라인은 방향성 비순환 그래프로 표현된 ML 워크플로의 설명입니다. 워크플로의 모든 단계는 AWS SDK for Python (Boto3) 모듈인 Kubeflow 파이프라인 구성 요소 로 표시됩니다.

Kubeflow 파이프라인에 대한 자세한 내용은 Kubeflow 파이프라인 설명서를 참조하세요.

Kubeflow 파이프라인 구성 요소란 무엇인가요?

Kubeflow 파이프라인 구성 요소는 Kubeflow 파이프라인의 한 단계를 실행하는 데 사용되는 코드 세트입니다. 구성 요소는 도커 이미지에 내장된 Python 모듈로 표시됩니다. 파이프라인이 실행되면 Kubeflow를 실행하는 Kubernetes 클러스터의 작업자 노드 중 하나에서 구성 요소의 컨테이너가 인스턴스화되고 로직이 실행됩니다. 파이프라인 구성 요소는 이전 구성 요소의 출력을 읽고 파이프라인의 다음 구성 요소가 사용할 수 있는 출력을 생성할 수 있습니다. 이러한 구성 요소를 사용하면 기본 Kubernetes 인프라와 상호 작용할 필요 없이 실험 및 프로덕션 환경을 위한 파이프라인을 빠르고 쉽게 작성할 수 있습니다.

Kubeflow 파이프라인에서 SageMaker 구성 요소를 사용할 수 있습니다. 사용자 지정 컨테이너에 로직을 캡슐화하는 대신 구성 요소를 로드하고 Kubeflow 파이프라인을 사용하여 파이프라인을 설명하면 됩니다SDK. 파이프라인이 실행되면 지침이 SageMaker 작업 또는 배포로 변환됩니다. 그런 다음 워크로드는 의 완전 관리형 인프라에서 실행됩니다 SageMaker.

Kubeflow 파이프라인에 구성 SageMaker 요소를 사용하는 이유는 무엇입니까?

SageMaker Kubeflow 파이프라인용 구성 요소는 에서 컴퓨팅 집약적 작업을 시작하는 대안을 제공합니다 SageMaker. 구성 요소는 Kubeflow 파이프라인의 이식성 및 오케스트레이션 SageMaker 과 통합됩니다. Kubeflow 파이프라인용 SageMaker 구성 요소를 사용하면 Kubeflow 파이프라인 워크플로의 일부로 SageMaker 리소스를 생성하고 모니터링할 수 있습니다. 파이프라인의 각 작업은 로컬 Kubernetes 클러스터 SageMaker 대신 에서 실행되므로 데이터 레이블 지정, 대규모 하이퍼파라미터 튜닝 및 분산 훈련 작업, 원클릭 안전하고 확장 가능한 모델 배포와 같은 주요 SageMaker 기능을 활용할 수 있습니다. 의 작업 파라미터, 상태, 로그 및 출력 SageMaker 은 Kubeflow 파이프라인 UI에서 계속 액세스할 수 있습니다.

구성 SageMaker 요소는 데이터 준비부터 ML 모델 구축, 훈련 및 배포에 이르기까지 주요 SageMaker 기능을 ML 워크플로에 통합합니다. 이러한 구성 요소를 사용하여 완전히 빌드된 Kubeflow 파이프라인을 만들거나 필요에 따라 개별 구성 요소를 워크플로에 통합할 수 있습니다. 구성 요소는 하나 또는 두 가지 버전으로 제공됩니다. 구성 요소의 각 버전은 서로 다른 백엔드를 활용합니다. 이러한 버전에 대한 자세한 내용은 SageMaker Kubeflow 파이프라인 버전 구성 요소섹션을 참조하세요.

Kubeflow 파이프라인용 SageMaker 구성 요소를 사용하는 경우 추가 요금이 부과되지 않습니다. 이러한 구성 요소를 통해 사용하는 모든 SageMaker 리소스에 대해 요금이 부과됩니다.

SageMaker Kubeflow 파이프라인 버전 구성 요소

SageMaker Kubeflow 파이프라인의 구성 요소는 두 가지 버전으로 제공됩니다. 각 버전은 서로 다른 백엔드를 활용하여 에서 리소스를 생성하고 관리합니다 SageMaker.

  • Kubeflow 파이프라인용 SageMaker 구성 요소 버전 1(v1.x 이하)은 Boto3(AWS SDK for Python (Boto3))를 백엔드로 사용합니다.

  • Kubeflow 파이프라인용 SageMaker 구성 요소의 버전 2(v2.0.0-alpha2 이상)는 SageMaker Kubernetes용 연산자(ACK)를 사용합니다.

    AWS 는 AWS 클라우드 리소스를 관리하는 Kubernetes 네이티브 방식을 용이하게 ACK하기 위해 도입되었습니다. ACK 에는 AWS 서비스별 컨트롤러 세트가 포함되어 있으며, 그 중 하나는 컨트롤러입니다 SageMaker. SageMaker 컨트롤러는 Kubernetes를 제어 영역으로 사용하여 기계 학습 개발자와 데이터 과학자가 에서 기계 학습(ML) 모델을 훈련, 조정 및 배포하는 것을 더 쉽게 만듭니다 SageMaker. 자세한 내용은 SageMaker Kubernetes용 연산자를 참조하세요.

Kubeflow 파이프라인용 SageMaker 구성 요소의 두 버전이 모두 지원됩니다. 하지만 버전 2는 몇 가지 추가 이점을 제공합니다. 특히 다음을 제공합니다.

  1. Kubeflow 파이프라인, KubernetesCLI(kubectl) 또는 Notebooks와 같은 기타 Kubeflow 애플리케이션을 사용하든 관계없이 모든 애플리케이션에서 SageMaker 리소스를 관리하기 위한 일관된 경험입니다.

  2. Kubeflow 파이프라인 워크플로 외부에서 SageMaker 리소스를 관리하고 모니터링할 수 있는 유연성.

  3. SageMaker 운영자가 배포의 일부이므로 릴리스 시 전체 Kubeflow AWS를 배포한 경우 SageMaker 구성 요소를 사용할 설정 시간이 없습니다.

Kubeflow 파이프라인의 SageMaker 구성 요소 목록

다음은 Kubeflow 파이프라인의 모든 SageMaker 구성 요소와 사용 가능한 버전 목록입니다. 또는 SageMaker 에서 Kubeflow 파이프라인의 모든 구성 요소를 GitHub 찾을 수 있습니다.

참고

사용 가능한 경우 언제든지 SageMaker 구성 요소의 버전 2를 사용하는 것이 좋습니다.

IAM 권한

SageMaker 구성 요소와 함께 Kubeflow 파이프라인을 배포하려면 다음과 같은 세 가지 인증 계층이 필요합니다.

  • Amazon Elastic Kubernetes Service(Amazon) 클러스터에 대한 게이트웨이 노드(로컬 시스템 또는 원격 인스턴스일 수 있음EKS) 액세스 권한을 부여하는 IAM 역할입니다.

    게이트웨이 노드에 액세스하는 사용자는 다음 역할을 맡게 됩니다.

    • Amazon EKS 클러스터 생성 및 설치 KFP

    • IAM 역할 생성

    • 샘플 입력 데이터를 위한 Amazon S3 버킷 생성

    역할에는 다음 권한이 필요합니다.

  • Kubernetes 파이프라인 포드(kfp-example-pod-role) 또는 Kubernetes 컨트롤러 포드가 에 액세스하기 SageMaker 위해 맡는 Kubernetes IAM 실행 역할입니다 SageMaker. 이 역할은 Kubernetes에서 SageMaker 작업을 생성하고 모니터링하는 데 사용됩니다.

    역할에는 다음 권한이 필요합니다.

    • AmazonSageMakerFullAccess

    사용자 지정 정책을 생성하고 연결하여 KFP 및 컨트롤러 포드에 대한 권한을 제한할 수 있습니다.

  • Amazon S3 또는 AmazonECR(kfp-example-sagemaker-execution-role )과 같은 AWS 리소스에 액세스하기 위해 SageMaker 작업이 맡는 SageMaker IAM 실행 역할입니다.

    SageMaker 작업은 이 역할을 사용하여 다음을 수행합니다.

    • SageMaker 리소스 액세스

    • Amazon S3에서 데이터 입력

    • 출력 모델을 Amazon S3에 저장

    역할에는 다음 권한이 필요합니다.

    • AmazonSageMakerFullAccess

    • AmazonS3FullAccess

파이프라인을 사용하도록 변환 SageMaker

일반 Python 처리 컨테이너훈련 컨테이너 를 이식 SageMaker 하여 기존 파이프라인을 사용하도록 변환할 수 있습니다. 추론 SageMaker 에 를 사용하는 경우 클러스터에 IAM 권한을 연결하고 아티팩트를 모델로 변환해야 합니다.