Amazon Web Services 한국 블로그

Amazon SageMaker HyperPod, Amazon EKS 지원 시작

오늘부터 파운데이션 모델(FM) 개발을 위해 복원력을 핵심으로 설계된 목적별 인프라인 Amazon SageMaker HyperPod에서 Amazon Elastic Kubernetes Service(EKS)를 지원하게 되었습니다. 이 새로운 기능을 통해 고객은 EKS를 사용하여 HyperPod 클러스터를 오케스트레이션하고, 대규모 모델 훈련을 위해 설계된 Amazon SageMaker HyperPod의 탄력적인 환경과 Kubernetes의 강력한 성능을 결합할 수 있습니다. Amazon SageMaker HyperPod는 1천여 개의 인공 지능(AI) 액셀러레이터에서 효율적으로 규모를 조정하여 훈련 시간을 최대 40% 단축할 수 있도록 지원합니다.

이제 고객은 Amazon SageMaker HyperPod를 통해 Kubernetes 기반 인터페이스를 사용하여 클러스터를 관리할 수 있습니다. 이 통합을 통해 훈련, 미세 조정, 실험, 추론 등 다양한 워크로드를 최적화하기 위해 Slurm과 Amazon EKS 사이를 원활하게 전환할 수 있습니다. CloudWatch Observability EKS 추가 기능은 통합 대시보드에서 CPU, 네트워크, 디스크 및 기타 하위 수준 노드 지표에 대한 인사이트를 얻을 수 있는 포괄적인 모니터링 기능을 제공합니다. 이렇게 향상된 관찰성은 전체 클러스터의 리소스 사용률, 노드 수준 지표, 포드 수준 성능, 컨테이너별 사용률 데이터로 확장되어 효율적인 문제 해결과 최적화를 용이하게 합니다.

re:Invent 2023에서 출시Amazon SageMaker HyperPod는 대규모 모델을 효율적으로 훈련하고 배포하고자 하는 AI 스타트업과 기업을 위한 필수 솔루션으로 자리 잡았습니다. Amazon SageMaker HyperPod는 모델 병렬데이터 병렬 소프트웨어 최적화를 제공하여 훈련 시간을 최대 20% 단축하는 SageMaker의 분산 훈련 라이브러리와 호환됩니다. SageMaker HyperPod는 결함이 있는 인스턴스를 자동으로 감지하여 복구하거나 교체하므로 데이터 과학자가 몇 주 또는 몇 달 동안 중단 없이 모델을 훈련할 수 있습니다. 이를 통해 데이터 과학자는 인프라 관리가 아닌 모델 개발에 집중할 수 있습니다.

Amazon EKS와 Amazon SageMaker HyperPod의 통합은 확장성과 풍부한 오픈 소스 도구로 기계 학습(ML) 워크로드에서 널리 사용되고 있는 Kubernetes의 장점을 활용합니다. 조직에서 생성형 AI 사용 사례에 필요한 애플리케이션을 비롯한 애플리케이션을 구축하기 위해 Kubernetes로 표준화하는 경우가 많습니다. 이렇게 하면 규정 준수 및 거버넌스 표준을 충족하면서 여러 환경에서 기능을 재사용할 수 있기 때문입니다. 오늘 발표로 고객은 1천여 개의 AI 액셀러레이터에 걸쳐 규모를 조정하고 리소스 사용률을 최적화할 수 있습니다. 이러한 유연성은 개발자 경험, 컨테이너식 앱 관리, FM 훈련 및 추론 워크로드를 위한 동적 조정을 향상시킵니다.

Amazon SageMaker HyperPod의 Amazon EKS 지원은 심층적 상태 확인, 자동화된 노드 복구, 작업 자동 재개 기능을 통해 복원력을 강화하여 대규모 또는 장기 실행 작업에 대한 중단 없는 훈련을 보장합니다. 고객이 자체 CLI 도구를 사용할 수도 있지만 Kubernetes 환경용으로 설계된 HyperPod CLI를 옵션으로 사용하여 작업 관리를 간소화할 수 있습니다. Amazon CloudWatch Container Insights와의 통합을 통한 고급 관찰성으로 클러스터 성능, 상태 및 사용률에 대한 보다 심층적인 인사이트를 얻을 수 있습니다. 또한 데이터 과학자는 자동화된 ML 워크플로에 Kubeflow와 같은 도구를 사용할 수 있습니다. 이 통합에는 Amazon SageMaker 관리형 MLflow도 포함되어 실험 추적 및 모델 관리를 위한 강력한 솔루션을 제공합니다.

개괄적으로 설명하면, 클라우드 관리자가 HyperPod 클러스터 API를 사용하여 Amazon SageMaker HyperPod 클러스터를 생성하고 HyperPod 서비스가 이를 완벽하게 관리하므로 ML 인프라 구축 및 최적화와 관련된 획일적이고 과중한 작업을 수행할 필요가 없습니다. Amazon EKS는 Slurm이 HyperPod 노드를 오케스트레이션하는 방식과 유사하게 이러한 HyperPod 노드를 오케스트레이션하는 데 사용되어 고객에게 친숙한 Kubernetes 기반 관리자 경험을 제공합니다.

Amazon SageMaker HyperPod에서 Amazon EKS 지원을 시작하는 방법을 살펴보겠습니다.
먼저 시나리오를 준비하고 사전 조건을 확인한 후 Amazon SageMaker HyperPod EKS 워크숍에 따라 VPC 및 스토리지 리소스로 구성된 단일 AWS CloudFormation 스택으로 Amazon EKS 클러스터를 생성합니다.

Amazon SageMaker HyperPod 클러스터를 생성하고 관리하는 데 AWS Management Console 또는 AWS Command Line Interface(AWS CLI)를 사용할 수 있습니다. AWS CLI를 사용하여 JSON 파일에 클러스터 구성을 지정합니다. 이전에 생성한 Amazon EKS 클러스터를 SageMaker HyperPod 클러스터의 오케스트레이터로 선택했습니다. 그런 다음 프라이빗 Subnet을 사용하여 ‘worker-group-1’이라는 클러스터 워커 노드를 생성하고, NodeRecoveryAutomatic으로 설정하여 자동 노드 복구를 활성화하고, OnStartDeepHealthChecksInstanceStressInstanceConnectivity를 추가하여 심층적 상태 확인을 활성화합니다.

cat > eli-cluster-config.json << EOL
{
    "ClusterName": "example-hp-cluster",
    "Orchestrator": {
        "Eks": {
            "ClusterArn": "${EKS_CLUSTER_ARN}"
        }
    },
    "InstanceGroups": [
        {
            "InstanceGroupName": "worker-group-1",
            "InstanceType": "ml.p5.48xlarge",
            "InstanceCount": 32,
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://${BUCKET_NAME}",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "${EXECUTION_ROLE}",
            "ThreadsPerCore": 1,
            "OnStartDeepHealthChecks": [
                "InstanceStress",
                "InstanceConnectivity"
            ],
        },
  ....
    ],
    "VpcConfig": {
        "SecurityGroupIds": [
            "$SECURITY_GROUP"
        ],
        "Subnets": [
            "$SUBNET_ID"
        ]
    },
    "ResilienceConfig": {
        "NodeRecovery": "Automatic"
    }
}
EOL

InstanceStorageConfigs를 추가하여 HyperPod 노드에서 추가 Amazon EBS 볼륨을 프로비저닝하고 탑재할 수 있습니다.

SageMaker HyperPod API를 사용하여 클러스터를 생성하기 위해 다음 AWS CLI 명령을 실행합니다.

aws sagemaker create-cluster \ 
--cli-input-json file://eli-cluster-config.json

AWS 명령이 새 HyperPod 클러스터의 ARN을 반환합니다.

{
"ClusterArn": "arn:aws:sagemaker:us-east-2:ACCOUNT-ID:cluster/wccy5z4n4m49"
}

그런 다음 SageMaker Console에서 HyperPod 클러스터 상태를 확인하고 상태가 InService로 변경될 때까지 기다립니다.

또는 AWS CLI에서 describe-cluster 명령을 실행하여 클러스터 상태를 확인할 수 있습니다.

aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster

클러스터가 준비되면 SageMaker HyperPod 클러스터 노드에 액세스할 수 있습니다. 대부분의 작업에서 kubectl 명령을 사용하여 개발 환경의 리소스와 작업을 관리할 수 있으며, Kubernetes 오케스트레이션의 모든 기능을 사용하면서 SageMaker HyperPod의 관리형 인프라의 이점을 누릴 수 있습니다. 이번에는 고급 문제 해결이나 직접 노드 액세스를 위해 Access your SageMaker HyperPod cluster nodes의 지침에 따라 AWS Systems Manager(SSM)를 사용하여 개별 노드에 로그인합니다.

EKS로 오케스트레이션된 SageMaker HyperPod 클러스터에서 작업을 실행하기 위해 Run jobs on SageMaker HyperPod cluster through Amazon EKS 페이지에 설명된 단계를 따릅니다. HyperPod CLI와 네이티브 kubectl 명령을 사용하여 사용 가능한 HyperPod 클러스터를 찾고 훈련 작업(포드)을 제출할 수 있습니다. ML 실험과 훈련 실행을 관리하기 위해 Kubeflow Training Operator, KueueAmazon SageMaker 관리형 MLflow를 사용할 수 있습니다.

마지막으로 SageMaker Console에서 최근 추가된 EKS 클러스터의 상태Kubernetes 버전을 보고, 이를 통해 SageMaker HyperPod 환경에 대한 포괄적인 개요를 얻을 수 있습니다.

또한 Amazon CloudWatch Container를 사용하여 클러스터 성능과 상태 인사이트를 모니터링할 수 있습니다.

주요 사항
다음은 Amazon SageMaker HyperPod의 Amazon EKS 지원에 대해 알아야 할 몇 가지 주요 사항입니다.

복원력이 뛰어난 환경 – 이 통합은 심층적 상태 확인, 자동화된 노드 복구, 작업 자동 재개 기능으로 복원력이 한층 강화된 훈련 환경을 제공합니다. SageMaker HyperPod는 장애를 자동으로 감지, 진단 및 복구하므로 운영 중단 없이 몇 주 또는 몇 달 동안 파운데이션 모델을 지속적으로 훈련할 수 있습니다. 이를 통해 훈련 시간을 최대 40% 단축할 수 있습니다.

향상된 GPU 관찰성 Amazon CloudWatch Container Insights는 컨테이너식 애플리케이션과 마이크로서비스에 대한 자세한 지표와 로그를 제공합니다. 이를 통해 클러스터 성능과 상태를 종합적으로 모니터링할 수 있습니다.

과학자에게 친숙한 도구 – 이번 출시에는 작업 관리를 위한 사용자 지정 HyperPod CLI, 분산 훈련을 위한 Kubeflow Training Operator, 일정 예약을 위한 Kueue, 실험 추적을 위한 SageMaker 관리형 MLflow와의 통합이 포함됩니다. 또한 모델 병렬 및 데이터 병렬 최적화를 제공하여 훈련 시간을 크게 단축하는 SageMaker의 분산 훈련 라이브러리와 함께 작동합니다. 작업 자동 재개 기능과 결합된 이 라이브러리를 통해 대규모 모델을 효율적이고 중단 없이 훈련할 수 있습니다.

유연한 리소스 사용 – 이 통합으로 FM 워크로드에 대한 개발자 경험과 확장성이 향상됩니다. 데이터 과학자는 훈련 및 추론 작업 전반에서 컴퓨팅 용량을 효율적으로 공유할 수 있습니다. 기존 Amazon EKS 클러스터를 사용하거나 새 클러스터를 생성하여 HyperPod 컴퓨팅에 연결하고 작업 제출, 대기열에 추가 및 모니터링에 기존 보유 도구를 사용할 수 있습니다.

Amazon EKS에서 Amazon SageMaker HyperPod를 시작하기 위해 SageMaker HyperPod EKS 워크숍, aws-do-hyperpod project, awsome-distributed-training project 등의 리소스를 탐색할 수 있습니다. 이 릴리스는 Amazon SageMaker HyperPod를 사용할 수 있는 AWS 리전(유럽(런던) 제외)에서 정식 버전으로 제공됩니다. 요금 정보는 Amazon SageMaker 요금 페이지를 참조하세요.

이 블로그 게시물은 공동 작성되었습니다. 여기에 제시된 정보를 수집하고 다듬는 데 큰 도움을 주신 Manoj Ravi, Adhesh Garg, Tomonori Shimomura, Alex Iankoulski, Anoop Saha 및 팀 전체에게 감사의 말씀을 전합니다. 이 종합적인 기사를 작성하는 데 있어 이들의 전문 지식이 큰 역할을 했습니다.

– Eli.