Tutorial: Set up W&B Launch on Vertex AI
3 minute read
W&B Launch 를 사용하여 Vertex AI 트레이닝 작업으로 실행하기 위한 작업을 제출할 수 있습니다. Vertex AI 트레이닝 작업을 통해 Vertex AI 플랫폼에서 제공되거나 사용자 정의된 알고리즘을 사용하여 기계학습 모델을 트레이닝할 수 있습니다. Launch 작업이 시작되면 Vertex AI는 기본 인프라, 확장 및 오케스트레이션을 관리합니다.
W&B Launch 는 google-cloud-aiplatform SDK의 CustomJob 클래스를 통해 Vertex AI와 연동됩니다. CustomJob 의 파라미터는 Launch 대기열 설정으로 제어할 수 있습니다. Vertex AI는 GCP 외부의 개인 레지스트리에서 이미지를 가져오도록 구성할 수 없습니다. 즉, W&B Launch 와 함께 Vertex AI를 사용하려면 컨테이너 이미지를 GCP 또는 공용 레지스트리에 저장해야 합니다. Vertex 작업에 컨테이너 이미지를 엑세스할 수 있도록 설정하는 방법에 대한 자세한 내용은 Vertex AI 설명서를 참조하십시오.
전제 조건
- Vertex AI API가 활성화된 GCP 프로젝트를 만들거나 엑세스합니다. API 활성화에 대한 자세한 내용은 GCP API Console 문서를 참조하십시오.
- Vertex에서 실행하려는 이미지를 저장할 GCP Artifact Registry 저장소를 만듭니다. 자세한 내용은 GCP Artifact Registry 문서를 참조하십시오.
- Vertex AI가 메타데이터를 저장할 스테이징 GCS 버킷을 만듭니다. 이 버킷은 스테이징 버킷으로 사용하려면 Vertex AI 워크로드와 동일한 리전에 있어야 합니다. 동일한 버킷을 스테이징 및 빌드 컨텍스트에 사용할 수 있습니다.
- Vertex AI 작업을 시작하는 데 필요한 권한이 있는 서비스 계정을 만듭니다. 서비스 계정에 권한을 할당하는 방법에 대한 자세한 내용은 GCP IAM 문서를 참조하십시오.
- Vertex 작업을 관리할 수 있는 권한을 서비스 계정에 부여합니다.
| 권한 | 리소스 범위 | 설명 | 
|---|---|---|
| aiplatform.customJobs.create | 지정된 GCP 프로젝트 | 프로젝트 내에서 새로운 기계학습 작업을 생성할 수 있습니다. | 
| aiplatform.customJobs.list | 지정된 GCP 프로젝트 | 프로젝트 내에서 기계학습 작업 목록을 볼 수 있습니다. | 
| aiplatform.customJobs.get | 지정된 GCP 프로젝트 | 프로젝트 내에서 특정 기계학습 작업에 대한 정보를 검색할 수 있습니다. | 
spec.service_account 필드를 사용하여 W&B run 에 대한 사용자 정의 서비스 계정을 선택할 수 있습니다.Vertex AI에 대한 대기열 구성
Vertex AI 리소스에 대한 대기열 구성은 Vertex AI Python SDK의 CustomJob 생성자와 CustomJob 의 run 메소드에 대한 입력을 지정합니다. 리소스 구성은 spec 및 run 키 아래에 저장됩니다.
- spec키에는 Vertex AI Python SDK의- CustomJob생성자의 명명된 인수에 대한 값이 포함되어 있습니다.
- run키에는 Vertex AI Python SDK의- CustomJob클래스의- run메소드의 명명된 인수에 대한 값이 포함되어 있습니다.
실행 환경의 사용자 정의는 주로 spec.worker_pool_specs 목록에서 발생합니다. 작업자 풀 사양은 작업을 실행할 작업자 그룹을 정의합니다. 기본 구성의 작업자 사양은 가속기가 없는 단일 n1-standard-4 머신을 요청합니다. 필요에 따라 머신 유형, 가속기 유형 및 수를 변경할 수 있습니다.
사용 가능한 머신 유형 및 가속기 유형에 대한 자세한 내용은 Vertex AI 설명서를 참조하십시오.
대기열 만들기
Vertex AI를 컴퓨팅 리소스로 사용하는 W&B App 에서 대기열을 만듭니다.
- Launch 페이지로 이동합니다.
- 대기열 만들기 버튼을 클릭합니다.
- 대기열을 만들려는 Entity 를 선택합니다.
- 이름 필드에 대기열 이름을 입력합니다.
- 리소스 로 GCP Vertex 를 선택합니다.
- 설정 필드 내에서 이전 섹션에서 정의한 Vertex AI CustomJob에 대한 정보를 제공합니다. 기본적으로 W&B는 다음과 유사한 YAML 및 JSON 요청 본문을 채웁니다.
spec:
  worker_pool_specs:
    - machine_spec:
        machine_type: n1-standard-4
        accelerator_type: ACCELERATOR_TYPE_UNSPECIFIED
        accelerator_count: 0
      replica_count: 1
      container_spec:
        image_uri: ${image_uri}
  staging_bucket: <REQUIRED>
run:
  restart_job_on_worker_restart: false
- 대기열을 구성한 후 대기열 만들기 버튼을 클릭합니다.
최소한 다음을 지정해야 합니다.
- spec.worker_pool_specs: 비어 있지 않은 작업자 풀 사양 목록
- spec.staging_bucket: Vertex AI 자산 및 메타데이터를 스테이징하는 데 사용될 GCS 버킷
일부 Vertex AI 문서는 모든 키가 카멜 케이스인 작업자 풀 사양(예:  workerPoolSpecs)을 보여줍니다. Vertex AI Python SDK는 이러한 키에 대해 스네이크 케이스(예: worker_pool_specs)를 사용합니다.
Launch 대기열 구성의 모든 키는 스네이크 케이스를 사용해야 합니다.
Launch 에이전트 구성
Launch 에이전트는 기본적으로 ~/.config/wandb/launch-config.yaml 에 있는 구성 파일을 통해 구성할 수 있습니다.
max_jobs: <n-concurrent-jobs>
queues:
  - <queue-name>
Launch 에이전트가 Vertex AI에서 실행되는 이미지를 빌드하도록 하려면 고급 에이전트 설정을 참조하십시오.
에이전트 권한 설정
이 서비스 계정으로 인증하는 방법은 여러 가지가 있습니다. 이는 Workload Identity, 다운로드된 서비스 계정 JSON, 환경 변수, Google Cloud Platform 코맨드라인 툴 또는 이러한 방법의 조합을 통해 수행할 수 있습니다.
[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.