HyperPod CLI를 사용하여 훈련 작업 시작 - Amazon SageMaker AI

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

HyperPod CLI를 사용하여 훈련 작업 시작

SageMaker HyperPod CLI는 Amazon SageMaker HyperPod 클러스터를 관리하기 위한 명령줄 인터페이스 도구입니다. HyperPod CLI를 사용하여 기계 학습 워크로드를 위한 HyperPod 클러스터를 생성, 구성 및 모니터링할 수 있습니다. 자세한 내용은 sagemaker-hyperpod-cli GitHub 리포지토리를 참조하세요.

사전 조건

  • HyperPod CLI를 설치합니다. Amazon SageMaker HyperPod에서 Amazon Nova 사용자 지정의 경우 SageMaker HyperPod CLI를 사용하려면 release_v2브랜치를 체크아웃해야 합니다.

  • 작업을 제출하기 전에 Nova 출력 버킷이 존재하는지 확인합니다. 확인하려면를 실행합니다aws s3 ls s3://nova-111122223333/.

    버킷 이름은 레시피recipes.run.output_s3_path에서 지정한 값입니다. 이 출력 버킷은 훈련 후 생성된 매니페스트 파일을 저장합니다. 여기에는 서비스 관리형 Amazon S3 버킷에 저장된 출력 아티팩트에 대한 S3 경로가 포함됩니다. Amazon S3 또한 TensorBoard 파일 또는 평가 결과를 선택적으로 저장할 수 있습니다.

  • Amazon FSx 데이터 동기화 요구 사항 이해. Amazon FSx는 작업을 실행하기 전에 Amazon S3 훈련 데이터를 동기화하는 데 시간이 필요합니다.

Amazon Nova 사용자 지정을 위한 HyperPod CLI 설정

Amazon Nova 사용자 지정을 위한 HyperPod CLI를 설정하려면 다음 단계를 따르세요.
  1. 브랜치를 사용하여 sagemaker-hyperpod-cli GitHub 리포지토리를 복제합니다release_v2.

    git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git --branch release_v2
  2. sagemaker-hyperpod-cli 폴더로 이동합니다.

    cd sagemaker-hyperpod-cli
  3. 사전 조건에 모든 사전 조건이 있는지 확인합니다.

  4. Helm을 설정하려면 다음 단계를 따릅니다.

    1. Helm 설치 스크립트를 다운로드하려면 다음을 실행합니다.

      curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
    2. 스크립트를 실행 가능하게 만들려면 다음을 실행합니다.

      chmod 700 get_helm.sh

      이 명령은 스크립트를 실행할 수 있는 권한을 변경합니다.

    3. Helm 설치 스크립트를 실행하려면 다음을 실행합니다.

      ./get_helm.sh
    4. 설치 스크립트를 제거하려면 다음을 실행합니다.

      rm -f ./get_helm.sh
  5. 제한된 인스턴스 그룹(RIG)을 지원하는 HyperPod 종속성을 설치하려면 다음 단계를 따르세요.

    참고

    종속성을 설치하기 전에 RIG가 있는 HyperPod EKS 클러스터가 있어야 합니다. 아직 없는 경우 다음 지침에 따라 생성합니다.

    1. HyperPod EKS 클러스터에 연결하려면 다음을 실행합니다.

      aws eks update-kubeconfig --name <eks_cluster_name> --region us-east-1
    2. HyperPod EKS 클러스터에 대한 연결을 확인하려면 다음을 실행합니다.

      kubectl config current-context
    3. 표준 HyperPod 종속성에 대한 업데이트를 가져오려면 다음을 실행합니다.

      helm dependencies update helm_chart/HyperPodHelmChart
    4. 표준 HyperPod 종속성을 설치하려면 다음을 실행합니다.

      helm install dependencies helm_chart/HyperPodHelmChart --namespace kube-system
    5. 차트 Helm 디렉터리로 이동하려면 다음을 실행합니다.

      cd helm_chart
    6. RIG 특정 HyperPod 종속성을 설치하려면 다음 명령을 실행합니다.

      참고

      종속성을 설치하기 전에 다음 사항을 고려하세요.

      • 이 명령은 생성된 후 클러스터당 한 번만 실행해야 합니다.

      • yq 유틸리티가 버전 4 이상(예: v4)으로 설치되어 있는지 확인해야 합니다. 설치 스크립트에서 yq >=4를 사용할 수 있는지 확인하는 검사가 내장되어 있습니다.

      • y 메시지가 표시되면를 입력하여 설치를 확인해야 합니다. 선택적으로 확인 전에에서 의도한 설치를 볼 수 있습니다./rig-dependencies.yaml.

      chmod 700 ./install_rig_dependencies.sh && ./install_rig_dependencies.sh
    7. codesagemaker-hyperpod-cli 리포지토리의 루트로 돌아가려면 다음을 실행합니다.

      cd ..
  6. 에서 HyperPod CLI 설치를 계속하려면 다음 단계를 sagemaker-hyperpod-cli따르세요.

    1. pip를 사용하여 CLI를 설치합니다.

      pip install -e .
    2. 설치를 확인합니다.

      hyperpod --help

작업 제출

HyperPod CLI를 사용하여 훈련 작업을 제출할 수 있습니다.

레시피를 사용하여 작업을 제출하려면 다음 명령을 실행합니다.

hyperpod start-job [--namespace <namespace>] --recipe {{fine-tuning | evaluation | training}}/nova/<Your_Recipe_Name> --override-parameters \ '{ "instance_type":"p5d.48xlarge", "container": <Docker Image>, "recipes.run.name": <custom-run-name>, "recipes.run.output_s3_path": "<customer-s3-path>" }'
  • --recipe: 레시피를 사용하여 실행 중인 작업의 유형입니다. 유효한 값은 fine-tuning | evaluation | 입니다training.

    작업 유형
    SFT/PEFT/PPO/DPO 작업 fine-tuning
    평가 작업 evaluation
    CPT 작업 training
  • 레시피 이름: 디렉터리 아래의 리포지토리에서 이름을 찾을 수 있습니다/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipe_collection/recipes/.

  • 레시피 예: --recipe evaluation/nova/nova_lite_g5_12xl_bring_your_own_dataset_eval.

  • 컨테이너:이 필드는 필수입니다. 작업 유형에 대한 이미지를 찾으려면 다음 표를 참조하세요.

    기술 컨테이너
    DPO 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-DPO-latest
    평가 작업 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest
    CPT 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-CPT-latest
    PPO 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SMHP-PPO-TRAIN-latest
    SFT/PEFT 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest
  • 사용자 지정 실행 이름: custom-run-time 입력에는 대문자, 공백, 밑줄 등 정의 제약 조건이 있습니다. 자세한 내용은 객체 이름 및 IDs.

[선택 사항] 훈련 작업이 이미 있고 다음 작업을 위해 특정 노드를 대상으로 지정하려는 경우 다음 단계를 따릅니다.

  1. 사용 가능한 모든 노드를 가져오려면 다음 명령을 실행합니다.

    kubectl get nodes —no-headers | awk '$2 != "NotReady" && $3 != "SchedulingDisabled" {print $1}'
  2. 레이블 선택기의 src\hyperpod_cli\sagemaker_hyperpod_recipes\recipes_collection\cluster\k8s.yaml파일에 다음을 추가합니다.

    label_selector: required: kubernetes.io/hostname: - <node_name>
  3. 루트 디렉터리에서 다음 명령을 실행합니다. 이렇게 하면 SageMaker HyperPod가 사용자의 시스템에 설치되므로 작업 제출 및 기타 함수에 "하이퍼포드" 키워드를 사용할 수 있습니다. HyperPod CLI 코드가 있는 루트 폴더에서이 명령을 실행해야 합니다.

    pip install .

작업 목록 조회

작업을 나열하려면 다음 명령을 실행합니다.

hyperpod list-jobs [--namespace <namespace>] [--all-namespaces]

명령은 지정된 네임스페이스 또는 모든 네임스페이스에 걸쳐 모든 작업을 나열합니다.

작업 세부 정보 가져오기

작업의 세부 정보를 가져오려면 다음 명령을 실행합니다.

hyperpod get-job --job-name <job-name> [--namespace <namespace>] [--verbose]

명령은 특정 작업에 대한 세부 정보를 검색합니다.

포드 나열

포드를 나열하려면 다음 명령을 실행합니다.

hyperpod list-pods --job-name <job-name> [--namespace <namespace>]

명령은 지정된 네임스페이스의 특정 작업과 연결된 모든 포드를 나열합니다.

작업 취소

작업을 취소하려면 다음 명령을 실행합니다.

hyperpod cancel-job --job-name <job-name> [--namespace <namespace>]

이 명령은 지정된 네임스페이스에서 실행 중인 훈련 작업을 취소하고 삭제합니다.