메인 콘텐츠로 건너뛰기
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는 Google Cloud 외부의 프라이빗 레지스트리에서 이미지를 가져오도록 설정할 수 없습니다. 즉, Vertex AI를 W&B Launch 와 함께 사용하려면 컨테이너 이미지를 Google Cloud 또는 퍼블릭 레지스트리에 저장해야 합니다. 컨테이너 이미지를 Vertex 작업에서 엑세스할 수 있게 만드는 방법에 대한 자세한 내용은 Vertex AI 문서를 참조하세요.

사전 요구 사항

  1. Vertex AI API가 활성화된 Google Cloud 프로젝트를 생성하거나 엑세스합니다. API 활성화에 대한 자세한 내용은 Google Cloud API 콘솔 문서를 참조하세요.
  2. Google Cloud Artifact Registry 저장소를 생성하여 Vertex에서 실행할 이미지를 저장합니다. 자세한 내용은 Google Cloud Artifact Registry 문서를 참조하세요.
  3. 스테이징 GCS 버킷을 생성하여 Vertex AI가 메타데이터를 저장할 수 있도록 합니다. 이 버킷은 스테이징 버킷으로 사용되기 위해 Vertex AI 워크로드와 동일한 지역(region)에 있어야 합니다. 동일한 버킷을 스테이징 및 빌드 컨텍스트 용도로 사용할 수 있습니다.
  4. 서비스 계정을 생성하여 Vertex AI 작업을 구동하는 데 필요한 권한을 부여합니다. 서비스 계정에 권한을 할당하는 방법에 대한 자세한 내용은 Google Cloud IAM 문서를 참조하세요.
  5. 서비스 계정에 Vertex 작업을 관리할 수 있는 권한을 부여합니다
권한리소스 범위설명
aiplatform.customJobs.create지정된 Google Cloud 프로젝트프로젝트 내에서 새로운 기계학습 작업을 생성할 수 있도록 허용합니다.
aiplatform.customJobs.list지정된 Google Cloud 프로젝트프로젝트 내의 기계학습 작업 목록을 볼 수 있도록 허용합니다.
aiplatform.customJobs.get지정된 Google Cloud 프로젝트프로젝트 내의 특정 기계학습 작업에 대한 정보를 가져올 수 있도록 허용합니다.
Vertex AI 워크로드가 표준이 아닌 서비스 계정의 ID를 사용하도록 하려면, 서비스 계정 생성 및 필요한 권한에 대한 Vertex AI 문서를 참조하세요. Launch 큐 설정의 spec.service_account 필드를 사용하여 W&B Runs 에 대한 커스텀 서비스 계정을 선택할 수 있습니다.

Vertex AI를 위한 큐 설정

Vertex AI 리소스에 대한 큐 설정은 Vertex AI Python SDK의 CustomJob 생성자 인수와 CustomJobrun 메소드에 대한 입력을 지정합니다. 리소스 설정은 specrun 키 아래에 저장됩니다:
  • spec 키는 Vertex AI Python SDK의 CustomJob 생성자의 이름이 지정된 인수에 대한 값을 포함합니다.
  • run 키는 Vertex AI Python SDK의 CustomJob 클래스의 run 메소드의 이름이 지정된 인수에 대한 값을 포함합니다.
실행 환경의 커스터마이징은 주로 spec.worker_pool_specs 리스트에서 이루어집니다. 워커 풀 스펙은 작업을 실행할 워커 그룹을 정의합니다. 기본 설정의 워커 스펙은 가속기가 없는 단일 n1-standard-4 머신을 요청합니다. 필요에 따라 머신 유형, 가속기 유형 및 개수를 변경할 수 있습니다. 사용 가능한 머신 유형 및 가속기 유형에 대한 자세한 내용은 Vertex AI 문서를 참조하세요.

큐 생성하기

W&B 앱에서 Vertex AI를 컴퓨팅 리소스로 사용하는 큐를 생성합니다:
  1. Launch 페이지로 이동합니다.
  2. Create Queue 버튼을 클릭합니다.
  3. 큐를 생성하고자 하는 Entity 를 선택합니다.
  4. Name 필드에 큐의 이름을 입력합니다.
  5. ResourceGoogle Cloud Vertex AI 를 선택합니다.
  6. Configuration 필드에 이전 섹션에서 정의한 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
  1. 큐 설정을 마친 후, Create Queue 버튼을 클릭합니다.
최소한 다음 사항을 지정해야 합니다:
  • spec.worker_pool_specs : 비어 있지 않은 워커 풀 명세 리스트.
  • spec.staging_bucket : Vertex AI 아티팩트 및 메타데이터 스테이징에 사용될 GCS 버킷.
일부 Vertex AI 문서에서는 workerPoolSpecs 와 같이 모든 키를 camel case로 표시합니다. Vertex AI Python SDK는 이러한 키에 대해 worker_pool_specs 와 같이 snake case를 사용합니다.Launch 큐 설정의 모든 키는 snake case를 사용해야 합니다.

Launch 에이전트 설정

Launch 에이전트는 기본적으로 ~/.config/wandb/launch-config.yaml 에 위치한 설정 파일을 통해 설정할 수 있습니다.
max_jobs: <n-concurrent-jobs>
queues:
  - <queue-name>
Launch 에이전트가 Vertex AI에서 실행될 이미지를 직접 빌드하도록 하려면 고급 에이전트 설정을 참조하세요.

에이전트 권한 설정

이 서비스 계정으로 인증하는 방법은 여러 가지가 있습니다. Workload Identity, 다운로드된 서비스 계정 JSON, 환경 변수, Google Cloud 플랫폼 커맨드라인 툴 또는 이러한 방법들의 조합을 통해 인증할 수 있습니다.