View a markdown version of this page

SageMaker AI 콘솔을 사용하여 SageMaker HyperPod 시작하기 - Amazon SageMaker AI

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

SageMaker AI 콘솔을 사용하여 SageMaker HyperPod 시작하기

다음 자습서에서는 새 SageMaker HyperPod 클러스터를 생성하고 SageMaker AI 콘솔 UI를 통해 Slurm으로 설정하는 방법을 보여줍니다. 자습서를 따라 세 개의 Slurm 노드인 my-controller-group, my-login-groupworker-group-1이 있는 HyperPod 클러스터를 생성합니다.

참고

HyperPod는 이제 수명 주기 스크립트 없이 Slurm 클러스터 생성을 지원합니다. AMI 기반 구성을 사용하여 완전한 기능을 갖춘 클러스터를 생성하거나, 확장 스크립트로 확장하거나, 완전한 제어를 위해 사용자 지정 수명 주기 스크립트를 계속 사용할 수 있습니다.

클러스터 생성

SageMaker HyperPod 클러스터 페이지로 이동하여 Slurm 오케스트레이션을 선택하려면 다음 단계를 따르세요.

  1. https://console.aws.amazon.com/sagemaker/에서 Amazon SageMaker AI 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 HyperPod 클러스터를 선택하고 클러스터 관리를 선택합니다.

  3. SageMaker HyperPod 클러스터 페이지에서 HyperPod 클러스터 생성을 선택합니다.

  4. HyperPod 클러스터 생성 드롭다운에서 Slurm에 의해 오케스트레이션됨을 선택합니다.

  5. Slurm 클러스터 생성 페이지에는 두 가지 옵션이 있습니다. 필요에 맞는 옵션을 선택하세요.

    1. 빠른 설정 - 기본 설정으로 즉시 시작하려면 빠른 설정을 선택합니다. 이 옵션을 사용하면 SageMaker AI는 클러스터를 생성하는 과정에서 VPC, 서브넷, 보안 그룹, Amazon S3 버킷, IAM 역할 및 FSx for Lustre와 같은 새 리소스를 생성합니다.

    2. 사용자 지정 설정 - 기존 AWS 리소스와 통합하거나 특정 네트워킹, 보안 또는 스토리지 요구 사항이 있는 경우 사용자 지정 설정을 선택합니다. 이 옵션을 사용하면 기존 리소스를 사용하거나 새 리소스를 생성할 수 있으며 필요에 가장 적합한 구성을 사용자 지정할 수 있습니다.

빠른 설정 섹션에서 다음 단계에 따라 Slurm 오케스트레이션을 사용하여 HyperPod 클러스터를 생성합니다.

일반 설정

새 클러스터의 이름을 지정합니다. 클러스터를 생성한 후에는 이름을 변경할 수 없습니다.

인스턴스 그룹

인스턴스 그룹을 추가하려면 그룹 추가를 선택합니다. 각 인스턴스 그룹을 다르게 구성할 수 있으며 다양한 인스턴스 유형을 가진 여러 인스턴스 그룹으로 구성된 이종 클러스터를 생성할 수 있습니다. 클러스터를 배포하려면 컨트롤러 및 컴퓨팅 그룹 유형에 인스턴스 그룹을 하나 이상 추가해야 합니다.

중요

한 번에 하나의 인스턴스 그룹을 추가할 수 있습니다. 여러 인스턴스 그룹을 생성하려면 각 인스턴스 그룹에 대해 프로세스를 반복합니다.

이 단계를 따라 인스턴스 그룹을 추가합니다.

  1. 인스턴스 그룹 유형에서 인스턴스 그룹의 유형을 선택합니다. 이 자습서에서는 my-controller-group컨트롤러(헤드)를, my-login-group로그인을, worker-group-1컴퓨팅(워커)을 선택합니다.

  2. 이름에 인스턴스 그룹의 이름을 지정합니다. 이 자습서에서는 my-controller-group, my-login-groupworker-group-1라는 인스턴스 그룹을 세 개 생성합니다.

  3. 인스턴스 용량에서 온디맨드 용량 또는 훈련 계획을 선택하여 컴퓨팅 리소스를 예약합니다.

  4. 인스턴스 유형에서 인스턴스 그룹의 인스턴스를 선택합니다. 이 자습서에서는 my-controller-group에 대해 ml.c5.xlarge, my-login-group에 대해 ml.m5.4xlarge, worker-group-1ml.trn1.32xlarge를 선택합니다.

    중요

    할당량이 충분하고 계정에 대해 할당되지 않은 IP 주소가 충분한 인스턴스 유형을 선택해야 합니다. 할당량을 보거나 추가로 요청하려면 SageMaker HyperPod 할당량 섹션을 참조하세요.

  5. 인스턴스 수량 에서 클러스터 사용에 대한 인스턴스 할당량을 초과하지 않는 정수를 지정합니다. 이 자습서에서는 세 그룹 모두에 대해 1을 입력합니다.

  6. 대상 가용 영역에서 인스턴스를 프로비저닝할 가용 영역을 선택합니다. 가용 영역은 가속화된 컴퓨팅 용량의 위치와 일치해야 합니다.

  7. 인스턴스당 추가 스토리지 볼륨(GB) - 선택 사항에서 1~16,384 사이의 정수를 지정하여 추가 Elastic Block Store(EBS) 볼륨의 크기를 기가바이트(GB) 단위로 설정합니다. EBS 볼륨은 인스턴스 그룹의 각 인스턴스에 연결됩니다. 추가 EBS 볼륨의 기본 탑재 경로는 /opt/sagemaker입니다. 클러스터가 성공적으로 생성된 후 클러스터 인스턴스(노드)에 SSH를 넣고 df -h 명령을 실행하여 EBS 볼륨이 올바르게 마운트되었는지 확인할 수 있습니다. 추가 EBS 볼륨을 연결하면 Amazon Elastic Block Store 사용 설명서Amazon EBS 볼륨 섹션에 설명된 대로 안정적이고 인스턴스가 아니며 독립적으로 지속되는 스토리지가 제공됩니다.

  8. 인스턴스 그룹 추가를 선택합니다.

빠른 설정 기본값

이 섹션에는 클러스터 생성 프로세스 중에 생성될 모든 새 AWS 리소스를 포함하여 클러스터 생성에 대한 모든 기본 설정이 나열됩니다. 기본 설정을 검토합니다.

참고

빠른 설정은 기본 수명 주기 스크립트를 자동으로 사용합니다. 새로운 AMI 기반 구성 옵션(수명 주기 스크립트 없음)은 사용자 지정 설정을 통해서만 사용할 수 있습니다. 수명 주기 스크립트 없이 클러스터를 생성하려면 사용자 지정 설정을 선택하고 수명 주기 스크립트에서 없음을 선택합니다.

사용자 지정 설정 섹션에서 다음 단계에 따라 Slurm 오케스트레이션을 사용하여 HyperPod 클러스터를 생성합니다.

일반 설정

새 클러스터의 이름을 지정합니다. 클러스터를 생성한 후에는 이름을 변경할 수 없습니다.

인스턴스 복구에서 자동 - 권장 또는 없음을 선택합니다.

네트워킹

클러스터 생성을 위한 네트워크 설정을 구성합니다. 클러스터를 생성한 후에는 이 설정을 변경할 수 없습니다.

  1. VPC의 경우, SageMaker AI에 VPC에 대한 액세스 권한을 부여하는 VPC가 이미 있는 경우 자체 VPC를 선택합니다. 새 VPC를 생성하려는 경우 Amazon Virtual Private Cloud 사용 설명서VPC 생성의 지침을 따르세요. 기본 SageMaker AI VPC를 사용하기 위해 없음 상태로 둘 수 있습니다.

  2. VPC IPv4 CIDR 블록에 VPC의 시작 IP를 입력합니다.

  3. 가용 영역에서 HyperPod가 클러스터의 서브넷을 생성할 가용 영역(AZ)을 선택합니다. 가속화된 컴퓨팅 용량의 위치와 일치하는 AZ를 선택합니다.

  4. 보안 그룹의 경우, 보안 그룹을 생성하거나 VPC 내에서 리소스 간 통신을 허용하는 규칙이 구성된 보안 그룹을 최대 5개 선택합니다.

인스턴스 그룹

인스턴스 그룹을 추가하려면 그룹 추가를 선택합니다. 각 인스턴스 그룹을 다르게 구성할 수 있으며 다양한 인스턴스 유형을 가진 여러 인스턴스 그룹으로 구성된 이종 클러스터를 생성할 수 있습니다. 클러스터를 배포하려면 인스턴스 그룹을 하나 이상 추가해야 합니다.

중요

한 번에 하나의 인스턴스 그룹을 추가할 수 있습니다. 여러 인스턴스 그룹을 생성하려면 각 인스턴스 그룹에 대해 프로세스를 반복합니다.

이 단계를 따라 인스턴스 그룹을 추가합니다.

  1. 인스턴스 그룹 유형에서 인스턴스 그룹의 유형을 선택합니다. 이 자습서에서는 my-controller-group컨트롤러(헤드)를, my-login-group로그인을, worker-group-1컴퓨팅(워커)을 선택합니다.

  2. 이름에 인스턴스 그룹의 이름을 지정합니다. 이 자습서에서는 my-controller-group, my-login-groupworker-group-1라는 인스턴스 그룹을 세 개 생성합니다.

  3. 인스턴스 용량에서 온디맨드 용량 또는 훈련 계획을 선택하여 컴퓨팅 리소스를 예약합니다.

  4. 인스턴스 유형에서 인스턴스 그룹의 인스턴스를 선택합니다. 이 자습서에서는 my-controller-group에 대해 ml.c5.xlarge, my-login-group에 대해 ml.m5.4xlarge, worker-group-1ml.trn1.32xlarge를 선택합니다.

    중요

    할당량이 충분하고 계정에 대해 할당되지 않은 IP 주소가 충분한 인스턴스 유형을 선택해야 합니다. 할당량을 보거나 추가로 요청하려면 SageMaker HyperPod 할당량 섹션을 참조하세요.

  5. 인스턴스 수량 에서 클러스터 사용에 대한 인스턴스 할당량을 초과하지 않는 정수를 지정합니다. 이 자습서에서는 세 그룹 모두에 대해 1을 입력합니다.

  6. 대상 가용 영역에서 인스턴스를 프로비저닝할 가용 영역을 선택합니다. 가용 영역은 가속화된 컴퓨팅 용량의 위치와 일치해야 합니다.

  7. 인스턴스당 추가 스토리지 볼륨(GB) - 선택 사항에서 1~16,384 사이의 정수를 지정하여 추가 Elastic Block Store(EBS) 볼륨의 크기를 기가바이트(GB) 단위로 설정합니다. EBS 볼륨은 인스턴스 그룹의 각 인스턴스에 연결됩니다. 추가 EBS 볼륨의 기본 탑재 경로는 /opt/sagemaker입니다. 클러스터가 성공적으로 생성된 후 클러스터 인스턴스(노드)에 SSH를 넣고 df -h 명령을 실행하여 EBS 볼륨이 올바르게 마운트되었는지 확인할 수 있습니다. 추가 EBS 볼륨을 연결하면 Amazon Elastic Block Store 사용 설명서Amazon EBS 볼륨 섹션에 설명된 대로 안정적이고 인스턴스가 아니며 독립적으로 지속되는 스토리지가 제공됩니다.

  8. Slurm 파티션 이름(컴퓨팅 그룹만 해당)에이 컴퓨팅 인스턴스 그룹의 Slurm 파티션 이름을 입력합니다. 파티션은 서로 다른 노드 세트에서 작업이 예약되는 방식을 구성하는 논리적 대기열 역할을 합니다.

  9. 인스턴스 그룹 추가를 선택합니다.

수명 주기 구성 - 선택 사항

클러스터의 노드가 프로비저닝되는 방법을 구성합니다. 선택 사항은 Amazon S3 버킷 요구 사항, 인터넷 액세스 요구 사항 및 프로비저닝 복잡성에 영향을 미칩니다. HyperPod는 세 가지 노드 수명 주기 구성 옵션을 지원하며, 각 옵션은 프로비저닝 프로세스에 대해 서로 다른 수준의 제어를 제공합니다.

  1. 수명 주기 스크립트에서 다음 옵션 중 하나를 선택하여 클러스터에서 노드가 프로비저닝되는 방식을 제어합니다.

    • 없음 - HyperPod는 AMI 기반 구성을 사용하여 노드를 자동으로 구성합니다. Slurm 데몬, Docker, Enroot, Pyxis, MariaDB를 사용한 Slurm 회계, SSH 키 생성 및 전파, 로그 교체 및 홈 디렉터리 설정은 모두 스크립트 또는 Amazon S3 버킷 없이 구성됩니다. 모든 소프트웨어는 AMI에 사전 패키징되므로 프로비저닝 중에 인터넷에 액세스할 필요가 없습니다. 새 클러스터의 가장 간단한 경로입니다.

    • 기본 수명 주기 스크립트 사용 - 기본 수명 주기 스크립트는 선택한 Amazon S3 버킷에 업로드되고 노드를 프로비저닝하는 데 사용됩니다. 이 옵션은 Awsome 분산 훈련 리포지토리(ADTR)의 스크립트를 사용합니다.

    • 사용자 지정 수명 주기 스크립트 사용 - Amazon S3 버킷에서 수명 주기 스크립트를 선택합니다. 이는 Slurm이 시작되는 시점을 포함하여 스크립트가 전체 프로비저닝 시퀀스를 소유하는 API의 OnCreate 경로에 해당합니다. 이 옵션을 선택하면 HyperPod는 AMI 기반 구성을 실행하지 않습니다.

    다음 표에는 세 가지 옵션이 요약되어 있습니다.

    옵션 HyperPod가 수행하는 작업 Amazon S3 버킷이 필요합니까? 인터넷 액세스가 필요합니까?
    없음 (AMI-based configuration) Configures nodes automatically with Slurm and essential packages No No
    기본 수명 주기 스크립트 사용 Uploads and runs ADTR scripts from Amazon S3 Yes Yes
    사용자 지정 수명 주기 스크립트 사용 Runs your scripts from Amazon S3; you own the full provisioning sequence Yes Depends on your scripts
  2. S3의 확장 스크립트 파일 - 선택 사항(수명 주기 스크립트에서 없음을 선택하면 표시됨)에 확장 스크립트의 Amazon S3 URI를 입력합니다. 확장 스크립트를 사용하면 전체 수명 주기 스크립트 세트를 관리하지 않고도 기본 구성 외에도 관찰성, 시스템 보안 서비스 데몬(SSSD) 및 Amazon S3 버킷 탑재와 같은 추가 선택적 기능을 프로비저닝할 수 있습니다.

    진입점 스크립트에 전체 Amazon S3 URI를 입력합니다. 예:

    s3://DOC-EXAMPLE-BUCKET/extensions/run_extensions.sh

    HyperPod는 진입점 스크립트가 있는 전체 폴더를 다운로드합니다. 모든 지원 파일이 진입점 스크립트와 동일한 디렉터리에 있도록 Amazon S3 폴더를 구성합니다.

    참고

    API에서 이는를 LifeCycleConfig 사용하여 OnInitComplete에서를 지정하는 것과 일치합니다SourceS3Uri. 콘솔은 이를 진입점 스크립트를 직접 가리키는 단일 Amazon S3 URI 필드로 결합합니다.

    작은 정보

    ready-to-use 있는 확장 스크립트는 Awsome 분산 훈련 리포지토리의 확장 폴더를 참조하세요. run_extensions.sh 스크립트는 간단한 부울 토글을 사용하여 여러 기능을 오케스트레이션하여 각 기능을 활성화하거나 비활성화합니다.

  3. 수명 주기 스크립트용 S3 버킷의 경우(기본 수명 주기 스크립트 사용 또는 사용자 지정 수명 주기 스크립트 사용을 선택한 경우 표시됨) 새 버킷을 생성하거나 기존 버킷을 사용하여 수명 주기 스크립트를 저장하도록 선택합니다.

참고

선택적 노드 수명 주기 구성은 Slurm 오케스트레이션 클러스터에서만 지원됩니다. Continuous를 사용하는 Amazon EKS 오케스트레이션 클러스터 및 Slurm 클러스터에는 모든 인스턴스 그룹에 수명 주기 스크립트가 NodeProvisioningMode 계속 필요합니다.

참고

확장 스크립트가 있는 없음 옵션과 사용자 지정 수명 주기 스크립트 사용 옵션은 상호 배타적입니다. AMI 기반 구성을 동일한 인스턴스 그룹의 확장 스크립트 및 사용자 지정 수명 주기 스크립트와 결합할 수 없습니다. API에서 이는 OnCreate를 의미하며 함께 지정할 수 OnInitComplete 없습니다.

권한

HyperPod가 사용자를 대신하여 필요한 AWS 리소스를 실행하고 액세스할 수 있도록 허용하는 IAM 역할을 선택하거나 생성합니다.

스토리지

HyperPod 클러스터에 프로비저닝되도록 FSx for Lustre 파일 시스템을 구성합니다. FSx 구성은 클러스터 생성에는 선택 사항이지만 프로덕션 ML 워크로드에는 권장됩니다.

  1. 파일 시스템에서 기존 FSx for Lustre 파일 시스템을 선택하여 새 FSx for Lustre 파일 시스템을 생성하거나, FSx for Lustre 파일 시스템을 프로비저닝하지 않습니다.

  2. 스토리지 단위당 처리량에서 프로비저닝된 스토리지의 TiB당 사용할 수 있는 처리량을 선택합니다.

  3. 스토리지 용량에 용량 값을 TB 단위로 입력합니다.

  4. 데이터 압축 유형에서 LZ4를 선택하여 데이터 압축을 활성화합니다.

  5. Lustre 버전의 경우 새 파일 시스템에 권장되는 값을 확인합니다.

참고

AMI 기반 구성(수명 주기 스크립트에서 없음 선택) 또는 확장 스크립트를 사용하는 경우 HyperPod는 FSx for Lustre 탑재를 자동으로 처리합니다. 사용자 지정 수명 주기 스크립트를 사용하는 경우 스크립트가 파일 시스템을 탑재할 책임이 있습니다.

태그 - 선택 사항

태그 - 선택 사항 경우 키 및 값 페어를 새 클러스터에 추가하고 클러스터를 AWS 리소스로 관리합니다. 자세한 내용은 AWS 리소스 태그 지정 섹션을 참조하세요.

리소스 배포

빠른 설정 또는 사용자 지정 설정을 사용하여 클러스터 구성을 완료한 후 다음 옵션을 선택하여 리소스 프로비저닝 및 클러스터 생성을 시작합니다.

  • 제출 - SageMaker AI가 기본 구성 리소스를 프로비저닝하고 클러스터를 생성하기 시작합니다.

  • CloudFormation 템플릿 파라미터 다운로드 - 구성 파라미터 JSON 파일을 다운로드하고 AWS CLI 명령을 실행하여 CloudFormation 스택을 배포하여 구성 리소스를 프로비저닝하고 클러스터를 생성합니다. 필요한 경우 다운로드한 파라미터 JSON 파일을 편집할 수 있습니다. 이 옵션을 선택하는 경우 CloudFormation 템플릿을 사용하여 SageMaker HyperPod 클러스터 생성의 추가 지침을 참조하세요.

클러스터를 삭제하고 리소스를 정리합니다.

SageMaker HyperPod 클러스터 생성을 성공적으로 테스트한 후 클러스터를 삭제할 때까지 InService 상태에서 계속 실행됩니다. 온디맨드 요금을 기준으로 지속적인 서비스 요금이 발생하지 않도록 온디맨드 SageMaker AI 인스턴스를 사용하여 생성된 클러스터를 사용하지 않을 때는 삭제하는 것이 좋습니다. 이 자습서에서는 두 인스턴스 그룹으로 구성된 클러스터를 생성했습니다. 이 중 하나는 C5 인스턴스를 사용하므로 SageMaker HyperPod 클러스터 삭제의 지침에 따라 클러스터를 삭제해야 합니다.

그러나 예약된 컴퓨팅 용량이 있는 클러스터를 생성한 경우 클러스터의 상태는 서비스 청구에 영향을 주지 않습니다.

기본 수명 주기 스크립트 사용 또는 사용자 지정 수명 주기 스크립트 사용을 사용한 경우 클러스터 생성 중에 사용한 Amazon S3 버킷으로 이동하여 수명 주기 스크립트 파일을 제거합니다.

확장 스크립트 없이 없음(AMI 기반 구성만 해당)을 사용한 경우 수명 주기 스크립트에 Amazon S3 정리가 필요하지 않습니다.

확장 스크립트와 함께 없음을 사용한 경우 지정한 Amazon S3 버킷에서 확장 스크립트 파일을 정리합니다.

클러스터에서 워크로드 실행을 테스트한 경우 데이터를 업로드했거나 Amazon FSx for Lustre 및 Amazon Elastic File System과 같은 다른 S3 버킷 또는 파일 시스템 서비스에 아티팩트를 저장했는지 확인합니다. 발생하는 요금을 방지하려면 스토리지 또는 파일 시스템에서 모든 아티팩트와 데이터를 삭제합니다.