HyperPod CLI를 사용하여 훈련 작업 시작
SageMaker HyperPod CLI는 Amazon SageMaker HyperPod 클러스터를 관리하기 위한 명령줄 인터페이스 도구입니다. HyperPod CLI를 사용하여 기계 학습 워크로드용 HyperPod 클러스터를 생성, 구성 및 모니터링할 수 있습니다. 자세한 내용은 sagemaker-hyperpod-cli
사전 조건
-
HyperPod CLI를 설치합니다. Amazon SageMaker HyperPod에서 Amazon Nova 사용자 지정을 수행하려면
release_v2브랜치를 체크아웃하여 SageMaker HyperPod CLI를 사용해야 합니다. -
작업을 제출하기 전에 Nova 출력 버킷이 존재하는지 확인합니다. 확인하려면
aws s3 ls s3://nova-111122223333/명령을 실행합니다.버킷 이름은 레시피에서
recipes.run.output_s3_path에 지정한 값입니다. 이 출력 버킷은 훈련 후 생성된 매니페스트 파일을 저장합니다. 여기에는 서비스 관리형 Amazon S3 버킷에 저장된 출력 아티팩트에 대한 S3 경로가 포함됩니다. 또한 선택적으로 TensorBoard 파일 또는 평가 결과를 저장할 수 있습니다. -
Amazon FSx 데이터 동기화 요구 사항을 이해합니다. Amazon FSx는 작업을 실행하기 전에 Amazon S3 훈련 데이터를 동기화하는 데 시간이 필요합니다.
Amazon Nova 사용자 지정을 위한 HyperPod CLI 설정
Amazon Nova 사용자 지정을 위해 HyperPod CLI를 설정하려면 다음 단계를 따르세요.
-
release_v2브랜치를 사용하여 sagemaker-hyperpod-cliGitHub 리포지토리를 복제합니다. git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git --branch release_v2 -
sagemaker-hyperpod-cli폴더로 이동합니다.cd sagemaker-hyperpod-cli -
사전 조건
에 모든 사전 조건이 있는지 확인합니다. -
Helm을 설정하려면 다음 단계를 따르세요.
-
Helm 설치 스크립트를 다운로드하려면 다음을 실행합니다.
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 -
스크립트를 실행 파일로 만들려면 다음을 실행합니다.
chmod 700 get_helm.sh이 명령은 스크립트를 실행할 수 있도록 권한을 변경합니다.
-
Helm 설치 스크립트를 실행하려면 다음을 실행합니다.
./get_helm.sh -
설치 스크립트를 제거하려면 다음을 실행합니다.
rm -f ./get_helm.sh
-
-
제한된 인스턴스 그룹(RIG)을 지원하는 HyperPod 종속성을 설치하려면 다음 단계를 따르세요.
참고
종속성을 설치하기 전에 RIG가 있는 HyperPod EKS 클러스터가 있어야 합니다. 아직 없는 경우, 다음 지침에 따라 생성하세요.
-
HyperPod EKS 클러스터에 연결하려면 다음을 실행합니다.
aws eks update-kubeconfig --name <eks_cluster_name> --region us-east-1 -
HyperPod EKS 클러스터에 대한 연결을 확인하려면 다음을 실행합니다.
kubectl config current-context -
표준 HyperPod 종속성에 대한 업데이트를 가져오려면 다음을 실행합니다.
helm dependencies update helm_chart/HyperPodHelmChart -
표준 HyperPod 종속성을 설치하려면 다음을 실행합니다.
helm install dependencies helm_chart/HyperPodHelmChart --namespace kube-system -
헬름 차트 디렉터리로 이동하려면 다음을 실행합니다.
cd helm_chart -
RIG 특정 HyperPod 종속성을 설치하려면 다음 명령을 실행합니다.
참고
종속성을 설치하기 전에 다음 사항을 고려하세요.
-
이 명령은 클러스터가 생성된 후 클러스터당 한 번만 실행해야 합니다.
-
yq 유틸리티가 버전 4 이상(예: v4)으로 설치되어 있는지 확인해야 합니다. 설치 스크립트에는 yq >=4인지 확인하는 검사가 내장되어 있습니다.
-
메시지가 표시되면
y를 입력하여 설치를 확인해야 합니다. 필요한 경우, 확인하기 전에./rig-dependencies.yaml에서 의도한 설치를 확인할 수 있습니다.
chmod 700 ./install_rig_dependencies.sh && ./install_rig_dependencies.sh -
-
codesagemaker-hyperpod-cli리포지토리의 루트로 돌아가려면 다음을 실행합니다.cd ..
-
-
sagemaker-hyperpod-cli에서 HyperPod CLI 설치를 계속하려면 다음 단계를 따르세요.-
pip를 사용하여 CLI를 설치합니다.
pip install -e . 설치를 확인합니다.
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평가 작업 evaluationCPT 작업 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입력에는 대문자 금지, 공백 금지, 밑줄 금지 등과 같은 정의 제약 조건이 있습니다. 자세한 내용은 객체 이름 및 ID를 참조하세요.
[선택 사항] 이미 훈련 작업이 있고 다음 작업에서 특정 노드를 대상으로 지정하려는 경우 다음 단계를 따르세요.
-
모든 사용 가능한 노드를 가져오려면 다음 명령을 실행합니다.
kubectl get nodes —no-headers | awk '$2 != "NotReady" && $3 != "SchedulingDisabled" {print $1}' -
레이블 선택기의
src\hyperpod_cli\sagemaker_hyperpod_recipes\recipes_collection\cluster\k8s.yaml파일에 다음을 추가합니다.label_selector: required: kubernetes.io/hostname: - <node_name> -
루트 디렉터리에서 다음 명령을 실행합니다. 이렇게 하면 SageMaker HyperPod가 사용자의 시스템에 설치되므로 작업 제출 및 기타 기능에 '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>]
이 명령은 지정된 네임스페이스에서 실행 중인 훈련 작업을 취소하고 삭제합니다.