이 튜토리얼에서는 MaxText 및 Cluster Toolkit을 사용하여 Tensor Processing Unit (TPU) v6e 클러스터에서 지도 미세 조정 (SFT)을 실행하는 방법을 보여줍니다. Cluster Toolkit을 사용하여 멀티 호스트 학습 워크로드를 실행하고 제공을 위해 결과를 Hugging Face 형식으로 다시 내보냅니다.
목표
- Cluster Toolkit 및 종속 항목을 설치합니다.
- MaxText 및 종속 항목을 설치합니다.
- Cluster Toolkit 클러스터를 배포합니다.
- Hugging Face 모델을 MaxText 형식으로 변환합니다.
- TPU에서 SFT 학습 워크로드를 실행합니다.
- 제공을 위해 세부 조정된 모델을 Hugging Face 형식으로 다시 변환합니다.
비용
이 문서에서는 비용이 청구될 수 있는 구성요소를 사용합니다 Google Cloud.
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 정리를 참조하세요.
시작하기 전에
이 튜토리얼을 사용하려면 Hugging Face 액세스 토큰이 필요합니다. Hugging Face에서 무료 계정을 등록할 수 있습니다. 계정이 있으면 액세스 토큰을 생성합니다.
- Hugging Face 시작 페이지에서 계정 아바타를 클릭하고 액세스 토큰을 선택합니다.
- 액세스 토큰 페이지에서 새 토큰 만들기 를 클릭합니다.
- 읽기 토큰 유형을 선택하고 토큰 이름을 입력합니다.
- 액세스 토큰이 표시됩니다. 토큰을 안전한 곳에 저장합니다.
- Hugging Face 웹사이트에서 학습할 모델의 라이선스
계약에 동의합니다. 이 튜토리얼에서는
gemma4-31b모델을 사용합니다.
튜토리얼을 완료하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
이 튜토리얼을 완료하려면 다음 안내를 따르세요.
- TPU 관리자 (
roles/tpu.admin) - 서비스 계정 사용자 (
roles/iam.serviceAccountUser) - Compute 편집자 (
roles/compute.editor)
- TPU 관리자 (
-
MaxText 컨테이너 이미지를 준비하려면 다음 안내를 따르세요.
- Cloud Build 편집자 (
roles/cloudbuild.builds.editor) - Artifact Registry 관리자 (
roles/artifactregistry.admin) - 스토리지 관리자 (
roles/storage.admin) - 서비스 사용량 관리자 (
roles/serviceusage.serviceUsageAdmin)
- Cloud Build 편집자 (
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
환경 변수 설정
다음 스크립트를 실행하여 환경 변수를 설정합니다.
다음을 바꿉니다.
- YOUR_PROJECT_ID: 프로젝트 Google Cloud 의 ID입니다.
- YOUR_REGION: 클러스터를 배포할 리전입니다.
- YOUR_ZONE: 클러스터를 배포할 영역입니다.
- YOUR_REPOSITORY_NAME: MaxText 이미지의 Artifact Registry 저장소 이름입니다.
- YOUR_RESERVATION_NAME: 예약의 이름입니다.
- YOUR_HF_TOKEN: Hugging Face 액세스 토큰입니다.
- YOUR_BUCKET_NAME: Cloud Storage 버킷의 전역적으로 고유한 이름입니다.
Cluster Toolkit 종속 항목 설치
Linux 또는 macOS 클라이언트 또는 워크스테이션에서 이 튜토리얼을 완료하려면 종속 항목 설치에서 Cluster Toolkit 문서의 관련 단계를 따르세요.
Cloud Shell을 사용하는 경우 이 섹션을 건너뛸 수 있습니다.
Cluster Toolkit 설치
Cluster Toolkit 설치의 안내에 따라 Cluster Toolkit의 사전 빌드된 번들을 설치합니다.
MaxText 컨테이너 이미지 준비
필수 종속 항목 설치를 포함하여 MaxText 컨테이너 이미지를 준비하려면 다음 단계를 완료하세요.
Cloud Storage 버킷을 만듭니다.
Artifact Registry 저장소를 만듭니다.
다음 콘텐츠로 파일 이름이
cloudbuild.yaml인 파일을 저장소의 루트 디렉터리에 만듭니다.Cloud Build를 사용하여 MaxText Docker 이미지를 빌드합니다.
Cluster Toolkit 클러스터 만들기
32개의 v6e TPU 칩으로 Cluster Toolkit 클러스터를 만들고 배포하려면 다음 단계를 완료하세요.
gke.gcsfuse.profileUser라는 커스텀 Identity and Access Management (IAM) 역할을 만듭니다.Cloud Storage 버킷을 만듭니다.
기본적으로 클러스터 노드 풀 서비스 계정에는 Cloud Storage 버킷에 쓸 수 있는 필수 권한이 없습니다. 노드 풀 서비스 계정에서 Cloud Storage 버킷에 쓸 수 있도록 하려면
Storage Admin역할을 부여해야 합니다. 이 역할을 부여하려면node_pool_service_account모듈을 업데이트하여gke-tpu-v6e-advanced.yaml파일을 수정합니다.gke-tpu-v6e-advanced.yaml블루프린트를 사용하고--vars플래그를 사용하여 필수 변수를 전달하여 Cluster Toolkit 클러스터를 배포합니다.
모델을 MaxText 형식으로 변환
MaxText 형식으로 모델을 학습시키려면 Hugging Face 형식에서 MaxText 형식으로 변환해야 합니다.
Cluster Toolkit 클러스터 만들기를 완료한 후 Docker를 구성합니다.
후속 명령어를 간소화하려면 기본 프로젝트, 클러스터, 위치를 구성합니다.
Hugging Face 형식에서 MaxText 형식으로 모델을 변환하고 Cloud Storage 버킷에 저장하려면 다음 스크립트를 실행합니다.
변환 작업의 상태를 확인하려면 다음 명령어를 실행합니다.
학습 워크로드 시작
변환 프로세스가 완료되면 다음 명령어를 실행하여 SFT 워크로드를 시작할 수 있습니다.
학습 작업의 상태를 확인하려면 다음 명령어를 실행합니다.
학습된 모델을 Hugging Face 형식으로 다시 변환
학습 워크로드가 완료되면 모델을 Hugging Face 형식으로 다시 변환합니다.
변환 작업의 상태를 확인하려면 다음 명령어를 실행합니다.
정리
추가 비용이 발생하지 않도록 하려면 이 튜토리얼 중에 만든 리소스를 삭제합니다.
다음 단계
- Cloud TPU에 대한 자세한 내용은 Cloud TPU 소개를 참조하세요.
v6e-32TPU의 아키텍처 및 구성 세부정보는 TPU v6e를 참조하세요.