SageMaker HyperPod FAQ - Amazon SageMaker

SageMaker HyperPod FAQ

다음 자주 묻는 질문을 사용하여 SageMaker HyperPod 사용 관련 문제를 해결합니다.

Q. Amazon CloudWatch에서 내 SageMaker HyperPod 클러스터의 로그 그룹을 찾을 수 없는 이유는 무엇입니까?

기본적으로 에이전트 로그와 인스턴스 시작 로그는 HyperPod 플랫폼 계정의 CloudWatch로 전송됩니다. 사용자 수명 주기 스크립트의 경우 수명 주기 구성 로그가 계정의 CloudWatch로 전송됩니다.

HyperPod 서비스 팀이 제공하는 샘플 수명 주기 스크립트를 사용하는 경우 /var/log/provision/provisioning.log에 작성된 수명 주기 구성 로그를 찾을 수 있으며 이 문제가 발생하지 않습니다.

그러나 수명 주기 프로비저닝에서 로그를 수집하는 데 사용자 지정 경로를 사용하고 계정의 CloudWatch 에 나타나는 로그 그룹을 찾을 수 없는 경우 수명 주기 스크립트에 지정된 로그 파일 경로와 HyperPod 클러스터 인스턴스에서 실행되는 CloudWatch 에이전트가 무엇을 찾는지 일치하지 않기 때문일 수 있습니다. 이 경우 CloudWatch 에이전트에 로그를 전송하려면 수명 주기 스크립트를 올바르게 설정하고 그에 따라 CloudWatch 에이전트 구성을 설정해야 합니다. 문제를 해결하려면 다음 옵션 중 하나를 선택합니다.

  • 옵션 1: 수명 주기 스크립트를 업데이트하여 /var/log/provision/provisioning.log에 로그를 작성합니다.

  • 옵션 2: CloudWatch 에이전트를 업데이트하여 로깅 수명 주기 프로비저닝을 위한 사용자 지정 경로를 찾습니다.

    1. 각 HyperPod 클러스터 인스턴스에는 /opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json의 JSON 형식의 CloudWatch 에이전트 구성 파일이 포함되어 있습니다. 구성 파일에서 필드 이름 logs.logs_collected.files.collect_list.file_path을 찾습니다. HyperPod에 의한 기본 설정으로 키-값 페어는 "file_path": "/var/log/provision/provisioning.log"에 설명된 대로 인스턴스 수준에서 SageMaker HyperPod 로깅이어야 합니다. 다음 코드 조각은 JSON 파일이 HyperPod 기본 구성으로 어떻게 표시되는지 보여줍니다.

      "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/provision/provisioning.log", "log_group_name": "/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]", "log_stream_name": "LifecycleConfig/[InstanceGroupName]/{instance_id}", "retention_in_days": -1 } ] } }, "force_flush_interval": 3 }
    2. "file_path" 필드 이름의 값을 수명 주기 스크립트에 사용하는 사용자 지정 경로로 바꿉니다. 예를 들어 /var/log/custom-provision/custom-provisioning.log에 쓰도록 수명 주기 스크립트를 설정한 경우 다음과 같이 값과 일치하도록 값을 업데이트합니다.

      "file_path": "/var/log/custom-provision/custom-provisioning.log"
    3. 구성 파일로 CloudWatch 에이전트를 다시 시작하여 사용자 지정 경로 적용을 완료합니다. 예를 들어 다음 CloudWatch 명령은 1단계의 CloudWatch 에이전트 구성 파일로 CloudWatch 에이전트를 다시 시작하는 방법을 보여줍니다. 자세한 내용은 CloudWatch 에이전트 설치를 참조하세요.

      sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config -m ec2 -s -c \ file:/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json

Q. HyperPod는 slurm.confgres.conf와 같은 Slurm 구성 파일에서 어떤 특정 구성을 관리합니까?

HyperPod 에서 Slurm 클러스터를 생성하면 HyperPod 에이전트는 slurm.confgres.conf 파일을 /opt/slurm/etc/에 설정하여 HyperPod 클러스터 생성 요청 및 수명 주기 스크립트를 기반으로 Slurm 클러스터를 관리합니다. 다음 목록은 HyperPod 에이전트가 처리하고 덮어쓰는 특정 파라미터를 보여줍니다.

중요

HyperPod에서 관리하는 이러한 파라미터를 변경하지 않는 것이 좋습니다.

  • slurm.conf에서 HyperPod는, ClusterName, SlurmctldHost, PartitionNameNodeName 같은 기본 파라미터를 설정합니다.

    또한 자동 재개 기능을 활성화하려면 HyperPod에 다음과 같이 설정된 TaskPluginSchedulerParameters 파라미터가 필요합니다. HyperPod 에이전트는 기본적으로 필요한 값으로 이러한 두 파라미터를 설정합니다.

    TaskPlugin=task/none SchedulerParameters=permit_job_expansion
  • gres.conf에서 HyperPod는 GPU 노드용 NodeName를 관리합니다.

Q. HyperPod의 Slurm 노드에서 어떻게 Docker를 실행해야 하나요?

HyperPod에서 실행되는 Slurm 노드에서 Docker를 실행하는 데 도움이 되도록 HyperPod 서비스 팀은 클러스터 생성을 위한 수명 주기 구성의 일부로 포함할 수 있는 설정 스크립트를 제공합니다. 자세한 내용은 HyperPod에서 제공하는 기본 수명 주기 스크립트로 시작합니다.HyperPod의 Slurm 컴퓨팅 노드에서 Docker 컨테이너 실행 섹션을 참조하세요.

Q. Slurm에서 Docker 또는 Enroot 컨테이너를 시작하기 위해 P 인스턴스의 로컬 NVMe 스토어를 사용하려면 어떻게 해야 하나요?

헤드 노드의 기본 루트 볼륨은 일반적으로 100GB EBS 볼륨으로 제한되므로 로컬 NVMe 인스턴스 스토어를 사용하도록 Docker 및 Enroot를 설정해야 합니다. NVMe 스토어를 설정하고 Docker 컨테이너를 시작하는 데 사용하는 방법을 알아보려면 HyperPod의 Slurm 컴퓨팅 노드에서 Docker 컨테이너 실행 섹션을 참조하세요.

Q. EFA 보안 그룹을 설정하는 방법은 무엇인가요?

EFA 지원 인스턴스를 사용하여 HyperPod 클러스터를 생성하려면 보안 그룹 자체를 오가는 모든 인바운드 및 아웃바운드 트래픽을 허용하도록 보안 그룹을 설정해야 합니다. 자세한 내용은 Amazon EC2 사용 설명서1단계: EFA 지원 보안 그룹 준비를 참조하세요.

Q. HyperPod 클러스터 노드를 모니터링하려면 어떻게 해야 하나요? HyperPod에서 내보낸 CloudWatch 지표가 있나요?

HyperPod 클러스터의 리소스 사용률을 관찰하려면 HyperPod 클러스터를 Amazon Managed Grafana 및 Amazon Managed Service for Prometheus와 통합하는 것이 좋습니다. 다양한 오픈 소스 Grafana 대시보드 및 내보내기 패키지를 사용하면 HyperPod 클러스터 리소스와 관련된 지표를 내보내고 시각화할 수 있습니다. Amazon Managed Grafana 및 Amazon Managed Service for Prometheus에서 SageMaker HyperPod를 설정하는 방법에 대한 자세한 내용은 SageMaker HyperPod 클러스터 리소스 모니터링 섹션을 참조하세요. SageMaker HyperPod는 현재 시스템 지표를 Amazon CloudWatch 로 내보내는 것을 지원하지 않습니다.

Q. HyperPod 클러스터 노드에 추가 스토리지를 추가할 수 있나요? 클러스터 인스턴스의 로컬 인스턴스 스토어는 제한됩니다.

워크로드에 기본 인스턴스 스토리지가 충분하지 않은 경우 인스턴스당 추가 스토리지를 구성할 수 있습니다. 2024년 6월 20일 릴리스부터 SageMaker HyperPod 클러스터의 각 인스턴스에 Amazon Elastic Block Store(EBS) 볼륨을 추가할 수 있습니다. 이 기능은 2024년 6월 20일 이전에 생성된 SageMaker HyperPod 클러스터의 기존 인스턴스 그룹에 적용할 수 없습니다. 2024년 6월 20일 이전에 생성된 기존 SageMaker HyperPod 클러스터를 패치하고 새 인스턴스 그룹을 추가하여 이 기능을 활용할 수 있습니다. 이 기능은 2024년 6월 20일 이후에 생성된 모든 SageMaker HyperPod 클러스터에 대해 완전히 유효합니다.