CreateTrainingJob API로 전송되는 인수는 Launch 큐 설정에서 제어할 수 있습니다.
Amazon SageMaker는 도커 이미지를 사용하여 트레이닝 작업을 실행합니다. SageMaker가 가져오는 이미지는 Amazon Elastic Container Registry(ECR)에 저장되어 있어야 합니다. 따라서 트레이닝에 사용할 이미지를 ECR에 저장해야 합니다.
이 가이드에서는 SageMaker 트레이닝 작업을 실행하는 방법을 설명합니다. Amazon SageMaker에서 추론용 모델을 배포하는 방법은 이 예제 Launch 작업을 참조하세요.
사전 요구 사항
시작하기 전에 다음 사전 요구 사항을 충족해야 합니다.- Launch 에이전트가 도커 이미지를 대신 구축하도록 할지 결정하세요.
- AWS 리소스를 설정하고 S3, ECR, SageMaker IAM 역할 정보를 수집하세요.
- Launch 에이전트용 IAM 역할을 생성하세요.
Launch 에이전트가 도커 이미지를 구축하도록 할지 결정하기
W&B Launch 에이전트가 도커 이미지를 대신 구축하도록 할지 결정하세요. 다음 두 가지 옵션 중 하나를 선택할 수 있습니다.- Launch 에이전트가 도커 이미지를 구축하고, 이미지를 Amazon ECR에 푸시한 뒤, SageMaker 트레이닝 작업까지 대신 제출하도록 허용합니다. 이 옵션을 사용하면 트레이닝 코드를 빠르게 반복 개선하는 ML 엔지니어가 작업을 더 간편하게 진행할 수 있습니다.
- 트레이닝 또는 추론 스크립트가 포함된 기존 도커 이미지를 사용합니다. 이 옵션은 기존 CI 시스템과 함께 사용하기에 적합합니다. 이 옵션을 선택하면 Amazon ECR의 컨테이너 레지스트리에 도커 이미지를 직접 업로드해야 합니다.
AWS 리소스 설정
사용할 AWS 리전에 다음 AWS 리소스가 설정되어 있어야 합니다.- 컨테이너 이미지를 저장할 ECR 저장소
- SageMaker 트레이닝 작업의 입력과 출력을 저장할 S3 버킷 1개 이상
- SageMaker가 트레이닝 작업을 실행하고 Amazon ECR 및 Amazon S3와 상호 작용할 수 있도록 허용하는 Amazon SageMaker용 IAM 역할
Launch 에이전트용 IAM 정책 생성
Launch 에이전트가 SageMaker 트레이닝 작업을 제출하고, 필요한 경우 ECR에 이미지를 푸시하려면 해당 권한을 부여하는 IAM 정책이 필요합니다. 다음 단계에 따라 정책을 생성하세요.- AWS의 IAM 화면에서 새 정책을 생성하세요.
- JSON 정책 편집기로 전환한 다음, 사용 사례에 맞는 아래 정책을 붙여넣으세요.
[BRACKETS]로 표시된 자리 표시자는 실제 값으로 바꾸세요.
- 에이전트가 사전 구축된 도커 이미지를 제출하는 경우
- 에이전트가 도커 이미지를 구축하고 제출하는 경우
- Next를 클릭하세요.
- 정책 이름과 설명을 입력하세요.
- Create policy를 클릭하세요.
Launch 에이전트용 IAM 역할 생성
Launch 에이전트가 Amazon SageMaker 트레이닝 작업을 생성하려면 관련 권한이 필요합니다. 이전 섹션에서 생성한 정책을 전용 역할에 연결하면 에이전트가 런타임에 해당 역할을 수임하여 권한을 얻을 수 있습니다. 다음 절차에 따라 IAM 역할을 생성하세요.- AWS의 IAM 화면에서 새 역할을 생성합니다.
- Trusted Entity에서 AWS Account(또는 조직의 정책에 맞는 다른 옵션)를 선택합니다.
- 권한 화면을 스크롤하여 이전 섹션에서 생성한 정책 이름을 선택합니다.
- 역할의 이름과 설명을 입력합니다.
- Create role을 선택합니다.
- 역할의 ARN을 기록해 둡니다. 이 ARN은 Launch 에이전트를 설정할 때 지정합니다.
- Launch 에이전트가 이미지를 구축하도록 하려면 고급 에이전트 설정에서 필요한 추가 권한을 확인하세요.
- SageMaker 큐의
kms:CreateGrant권한은 연결된ResourceConfig에VolumeKmsKeyId가 지정되어 있고 연결된 역할에 이 액션을 허용하는 정책이 없는 경우에만 필요합니다.
SageMaker용 Launch 큐 설정하기
AWS 사전 요구 사항이 준비되었다면 작업을 SageMaker로 라우팅하는 W&B Launch 큐를 생성할 수 있습니다. W&B App에서 SageMaker를 컴퓨팅 리소스로 사용하는 큐를 생성하세요.- Launch App으로 이동하세요.
- Create Queue를 클릭하세요.
- 큐를 생성할 Entity를 선택하세요.
- Name 필드에 큐 이름을 입력하세요.
- Resource로 SageMaker를 선택하세요.
- Configuration 필드에 SageMaker 작업 정보를 입력하세요. 기본적으로 W&B는 YAML 및 JSON 형식의
CreateTrainingJob요청 본문을 자동으로 채워 줍니다.
RoleArn: SageMaker 실행 IAM 역할의 ARN입니다(사전 요구 사항 참조). Launch 에이전트 IAM 역할과 혼동하지 마세요.OutputDataConfig.S3OutputPath: SageMaker가 출력을 저장할 위치를 지정하는 Amazon S3 URI입니다.ResourceConfig: 리소스 설정으로, 필수 항목입니다. 리소스 설정 옵션은 AWSResourceConfig문서를 참조하세요.StoppingCondition: 트레이닝 작업의 중지 조건으로, 필수 항목입니다. 옵션은 AWSStoppingCondition문서를 참조하세요.
- Create Queue를 클릭하세요.
Launch 에이전트 설정
다음 섹션에서는 에이전트를 배포할 수 있는 위치와 배포 위치에 따라 에이전트를 설정하는 방법을 설명합니다. Amazon SageMaker 큐용 Launch 에이전트는 여러 위치에 배포할 수 있습니다. 로컬 머신, EC2 인스턴스 또는 EKS 클러스터 중에서 선택하세요. 에이전트를 배포한 위치에 맞게 Launch 에이전트를 설정하세요.Launch 에이전트를 실행할 위치 결정하기
프로덕션 워크로드를 운영하거나 이미 EKS 클러스터가 있는 고객이라면, 이 Helm chart를 사용해 Launch 에이전트를 EKS 클러스터에 배포할 것을 권장합니다. EKS 클러스터가 없는 상태에서 프로덕션 워크로드를 운영한다면 EC2 인스턴스가 좋은 선택입니다. Launch 에이전트 인스턴스는 항상 실행 상태로 유지되지만, 에이전트에는t2.micro 크기의 EC2 인스턴스면 충분하므로 비용 부담이 적습니다.
실험 목적이거나 개인적으로 사용하는 경우에는 로컬 머신에서 Launch 에이전트를 실행하여 빠르게 시작할 수 있습니다.
사용 사례에 맞는 탭의 안내에 따라 Launch 에이전트를 설정하세요.
- EKS
- EC2
- 로컬 머신
EKS 클러스터에 에이전트를 설치할 때는 W&B 관리형 Helm chart를 사용할 것을 권장합니다.
Launch 에이전트 설정하기
에이전트를 실행할 위치를 정했다면, 에이전트가 SageMaker 큐를 폴링하고 AWS에 인증할 수 있도록 설정하세요. Launch 에이전트는launch-config.yaml이라는 YAML 설정 파일로 설정합니다.
W&B는 기본적으로 ~/.config/wandb/launch-config.yaml에서 설정 파일을 찾습니다. 필요한 경우 Launch 에이전트를 활성화할 때 -c 플래그로 다른 디렉터리를 지정할 수 있습니다.
다음 YAML 스니펫은 핵심 에이전트 설정 옵션을 지정하는 방법을 보여줍니다.
launch-config.yaml
wandb launch-agent 명령으로 에이전트를 시작하세요.
이제 Launch 에이전트가 실행 중이며, SageMaker 큐를 폴링하여 작업을 확인합니다.
선택: Launch 작업 도커 이미지를 Amazon ECR에 푸시하기
이 섹션은 Launch 에이전트가 트레이닝 또는 추론 로직이 포함된 기존 도커 이미지를 사용하는 경우에만 해당합니다. Launch 에이전트는 두 가지 동작 옵션을 지원합니다.