> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tutorial: Set up W&B Launch on Vertex AI

> Set up W&B Launch on Google Cloud Vertex AI using CustomJob specs and Artifact Registry for ML workloads.

이 튜토리얼에서는 작업을 Vertex AI 트레이닝 작업으로 제출하고 실행하도록 W\&B Launch를 설정하여 트레이닝 워크로드를 Google Cloud의 관리형 인프라로 이전하는 방법을 안내합니다. Vertex AI 트레이닝 작업을 사용하면 Vertex AI 플랫폼에서 제공되는 알고리즘이나 맞춤형 알고리즘으로 머신러닝 모델을 트레이닝할 수 있습니다. Launch 작업을 시작하면 Vertex AI가 기반 인프라, 확장, 오케스트레이션을 관리합니다. 이 가이드는 이미 W\&B Launch를 사용하고 있으며 Google Cloud Vertex AI에서 작업을 실행하려는 ML 엔지니어와 플랫폼 관리자를 대상으로 합니다.

W\&B Launch는 `google-cloud-aiplatform` SDK의 `CustomJob` 클래스를 통해 Vertex AI와 연동됩니다. Launch 큐 설정으로 `CustomJob`의 매개변수를 제어할 수 있습니다. Google Cloud 외부의 비공개 레지스트리에서 이미지를 가져오도록 Vertex AI를 설정할 수는 없습니다. 따라서 W\&B Launch와 함께 Vertex AI를 사용하려면 컨테이너 이미지를 Google Cloud 또는 공개 레지스트리에 저장해야 합니다. Vertex 작업에서 컨테이너 이미지에 액세스할 수 있도록 하는 방법은 Vertex AI 문서를 참조하세요.

<h2 id="prerequisites">
  사전 요구 사항
</h2>

Launch 큐를 설정하기 전에 다음 Google Cloud 리소스와 권한이 준비되어 있는지 확인하세요:

1. **Vertex AI API가 활성화된 Google Cloud 프로젝트를 생성하거나 액세스하세요.** API 활성화에 대한 자세한 내용은 [Google Cloud API Console 문서](https://support.google.com/googleapi/answer/6158841?hl=en)를 참고하세요.
2. **Google Cloud Artifact Registry 저장소를 생성하세요.** Vertex에서 실행할 이미지를 저장하는 데 사용합니다. 자세한 내용은 [Google Cloud Artifact Registry 문서](https://cloud.google.com/artifact-registry/docs/overview)를 참고하세요.
3. **스테이징 GCS 버킷을 생성하세요.** Vertex AI가 메타데이터를 저장하는 데 사용합니다. 스테이징 버킷으로 사용하려면 이 버킷은 Vertex AI 워크로드와 동일한 리전에 있어야 합니다. 스테이징과 구축 컨텍스트에 동일한 버킷을 사용할 수 있습니다.
4. **서비스 계정을 생성하세요.** Vertex AI 작업을 시작하는 데 필요한 권한을 부여하세요. 서비스 계정에 권한을 부여하는 방법에 대한 자세한 내용은 [Google Cloud IAM 문서](https://cloud.google.com/iam/docs/creating-managing-service-accounts)를 참고하세요.
5. **서비스 계정에 Vertex 작업을 관리할 권한을 부여하세요.** 필요한 권한은 다음 table과 같습니다:

| 권한 | 리소스 범위 | 설명 |
| - | - | - |
| `aiplatform.customJobs.create` | 지정된 Google Cloud 프로젝트 | 프로젝트 내에서 새로운 머신러닝 작업을 생성할 수 있습니다. |
| `aiplatform.customJobs.list` | 지정된 Google Cloud 프로젝트 | 프로젝트 내 머신러닝 작업의 목록을 조회할 수 있습니다. |
| `aiplatform.customJobs.get` | 지정된 Google Cloud 프로젝트 | 프로젝트 내 특정 머신러닝 작업의 정보를 조회할 수 있습니다. |

<Note>
  Vertex AI 워크로드가 기본 서비스 계정이 아닌 서비스 계정의 ID를 사용하도록 하려면 서비스 계정 생성 및 필요한 권한에 대한 안내를 Vertex AI 문서에서 참고하세요. Launch 큐 설정의 `spec.service_account` 필드를 사용하여 W\&B run에 사용할 맞춤형 서비스 계정을 선택하세요.
</Note>

<h2 id="configure-a-queue-for-vertex-ai">
  Vertex AI용 큐 설정
</h2>

Google Cloud 사전 요구 사항을 갖췄다면, 다음 단계는 W\&B Launch가 Vertex AI 작업을 제출하는 데 사용할 큐 설정을 계획하는 것입니다. Vertex AI 리소스의 큐 설정은 Vertex AI Python SDK의 `CustomJob` 생성자와 `CustomJob`의 `run` 방법에 전달할 입력을 지정합니다. 리소스 설정은 `spec` 및 `run` 키 아래에 저장됩니다:

* `spec` 키에는 Vertex AI Python SDK의 [`CustomJob` 생성자](https://cloud.google.com/vertex-ai/docs/pipelines/customjob-component)에 전달할 명명된 인수의 값이 포함됩니다.
* `run` 키에는 Vertex AI Python SDK의 `CustomJob` 클래스에 있는 `run` 방법에 전달할 명명된 인수의 값이 포함됩니다.

실행 환경은 `spec.worker_pool_specs` 목록에서 맞춤 설정합니다. 워커 풀 사양은 작업을 실행하는 워커 그룹을 정의합니다. 기본 설정의 워커 사양은 가속기가 없는 `n1-standard-4` 머신 한 대를 요청합니다. 필요에 맞게 머신 유형, 가속기 유형 및 수를 변경할 수 있습니다.

사용 가능한 머신 유형 및 가속기 유형에 대한 자세한 내용은 [Vertex AI 문서](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/MachineSpec)를 참조하세요.

<h2 id="create-a-queue">
  큐 생성
</h2>

큐 설정 계획을 세웠다면 이제 W\&B App에서 Vertex AI를 컴퓨팅 리소스로 사용하는 큐를 생성하세요.

1. [Launch 페이지](https://forge.coreweave.com/wandb/launch)로 이동하세요.

2. **Create Queue** 버튼을 클릭하세요.

3. 큐를 생성할 **Entity**를 선택하세요.

4. **Name** 필드에 큐 이름을 입력하세요.

5. **Resource**로 **Google Cloud Vertex AI**를 선택하세요.

6. **Configuration** 필드에 [Vertex AI용 큐 설정](#configure-a-queue-for-vertex-ai)에서 정의한 Vertex AI `CustomJob` 정보를 입력하세요. W\&B는 기본적으로 다음과 비슷한 YAML 및 JSON 요청 본문을 채워 줍니다.

   ```yaml theme={"system"}
   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: [STAGING-BUCKET]
   run:
     restart_job_on_worker_restart: false
   ```

7. 큐 설정을 마쳤으면 **Create Queue** 버튼을 클릭하세요.

최소한 다음 필드는 반드시 지정해야 합니다.

* `spec.worker_pool_specs`: 비어 있지 않은 워커 풀 사양 목록입니다.
* `spec.staging_bucket`: Vertex AI 에셋과 메타데이터를 스테이징하는 데 사용할 GCS 버킷입니다.

<Warning>
  일부 Vertex AI 문서에서는 워커 풀 사양의 모든 키를 카멜 케이스로 표기합니다(예: `workerPoolSpecs`). 하지만 Vertex AI Python SDK는 이러한 키에 스네이크 케이스를 사용합니다(예: `worker_pool_specs`).

  Launch 큐 설정의 모든 키에는 스네이크 케이스를 사용해야 합니다.
</Warning>

<h2 id="configure-a-launch-agent">
  launch 에이전트 설정
</h2>

큐를 생성했으면 큐를 폴링하고 Vertex AI로 작업을 디스패치하도록 launch 에이전트를 설정하세요. launch 에이전트는 설정 파일로 설정할 수 있으며, 이 파일은 기본적으로 `~/.config/wandb/launch-config.yaml`에 있습니다.

```yaml theme={"system"}
max_jobs: [N-CONCURRENT-JOBS]
queues:
  - [QUEUE-NAME]
```

Launch 에이전트가 Vertex AI에서 실행되는 이미지를 구축하도록 하려면 [고급 에이전트 설정](/ko/products/wandb/platform/launch/setup-agent-advanced)을 참조하세요.

<h2 id="set-up-agent-permissions">
  에이전트 권한 설정
</h2>

마지막으로, Launch 에이전트가 사전 요구 사항에서 생성한 서비스 계정으로 작동하는 데 필요한 사용자 인증 정보를 제공하세요. 이 서비스 계정으로 인증하는 방법은 여러 가지가 있습니다. 워크로드 ID, 다운로드한 서비스 계정 JSON, 환경 변수, Google Cloud Platform 명령줄 도구 또는 이러한 방법의 조합을 통해 인증할 수 있습니다.


## Related topics

- [Run SkyPilot on CKS](/products/cks/tutorials/skypilot.md)
