Vertex AI 텐서보드 설정

Vertex AI 텐서보드를 설정하려면 다음이 필요합니다.

  1. 필요한 권한이 있는 서비스 계정 만들기
  2. Vertex AI 텐서보드 로그를 저장할 Cloud Storage 버킷 만들기
  3. Vertex AI 텐서보드 인스턴스 만들기

필요한 권한이 있는 서비스 계정 만들기

Vertex AI TensorBoard를 커스텀 학습과 통합하려면 서비스 계정을 연결해야 합니다.

  1. 서비스 계정을 만듭니다.

    gcloud --project=PROJECT_ID iam service-accounts create USER_SA_NAME
    

    다음을 바꿉니다.

    • PROJECT_ID: 서비스 계정을 만들려는 프로젝트 ID

    • USER_SA_NAME: 만들려는 서비스 계정의 고유한 이름

  2. 새 서비스 계정은 Vertex AI Training 서비스가 Google Cloud 서비스 및 리소스에 액세스하기 위해 사용됩니다. 필요한 경우 다음 명령어를 사용하여 이러한 역할을 부여합니다.

    SA_EMAIL="USER_SA_NAME@PROJECT_ID.iam.gserviceaccount.com"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member="serviceAccount:${SA_EMAIL}" \
       --role="roles/storage.admin"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member="serviceAccount:${SA_EMAIL}" \
       --role="roles/aiplatform.user"
    

Vertex AI TensorBoard 로그를 저장할 Cloud Storage 버킷 만들기

학습 스크립트가 생성하는 Vertex AI TensorBoard 로그를 저장하려면 Cloud Storage 버킷이 필요합니다. 버킷은 멀티 리전 또는 이중 리전이 아닌 리전이어야 하며 다음 리소스는 동일한 리전에 있어야 합니다.

  • Cloud Storage 버킷
  • Vertex AI 학습 작업
  • Vertex AI 텐서보드 인스턴스

여기서 설명한 버킷 생성 단계를 수행하는 대신 기존 버킷을 사용할 수 있습니다. 기존 버킷을 사용할 때 버킷의 위치는 Vertex AI 텐서보드 인스턴스가 생성된 위치와 동일한 위치에 있어야 합니다.

GCS_BUCKET_NAME="PROJECT_ID-tensorboard-logs-LOCATION_ID"
gcloud storage buckets create "gs://${GCS_BUCKET_NAME}" --location=LOCATION_ID

LOCATION_ID을 Vertex AI 텐서보드 인스턴스가 생성된 위치로 바꿉니다. 예를 들면 us-central1입니다.

Vertex AI 텐서보드 인스턴스 만들기

실험을 시각화하려면 먼저 Vertex AI 텐서보드 실험을 저장하는 리전별 리소스인 Vertex AI 텐서보드 인스턴스가 있어야 합니다. 다음 2가지 옵션이 있습니다. 기본 인스턴스를 사용하거나 수동으로 인스턴스를 만들 수 있습니다. 프로젝트와 리전 내에 인스턴스를 여러 개 만들 수 있지만 대부분의 사용자는 단일 인스턴스만 필요합니다.

기본 Vertex AI 텐서보드 인스턴스 사용

Vertex AI 실험을 초기화할 때 기본 텐서보드 인스턴스가 자동으로 생성됩니다. 이 지원 텐서보드는 Vertex AI 실험과 연결되어 있으며 이후의 모든 Vertex AI 실험 실행에서 사용됩니다. tensorboard_resource_name은 실험에서 직접 검색할 수 있습니다. 이 방법은 Vertex AI 텐서보드를 시작하는 가장 쉬운 방법이며 대부분의 사용자 니즈를 충족해야 합니다.

Python용 Vertex AI SDK

Python용 Vertex AI SDK를 사용하여 기본 인스턴스로 Vertex AI 텐서보드 실험을 만듭니다. 실험에서 tensorboard_resource_name을 검색합니다. Vertex AI SDK 참고 문서의 init실험을 참고하세요.

Python

from google.cloud import aiplatform


def create_experiment_default_tensorboard_sample(
    experiment_name: str,
    experiment_description: str,
    project: str,
    location: str,
):
    aiplatform.init(
        experiment=experiment_name,
        experiment_description=experiment_description,
        project=project,
        location=location,
    )

    tensorboard = aiplatform.Experiment(experiment_name).get_backing_tensorboard_resource()
    print(f"Tensorboard resource name: {tensorboard.name}")

experiment_name: str, experiment_description: str, project: str, location: str,
  • experiment_name: 실험 이름입니다.
  • experiment_description: 실험에 대한 설명입니다.
  • project: 텐서보드 인스턴스를 만들려는 프로젝트의 PROJECT_ID입니다.
  • location: 텐서보드 인스턴스를 만들 위치입니다. Vertex AI TensorBoard 위치는 리전별로 다릅니다. Vertex AI TensorBoard를 지원하는 리전을 선택 해야 합니다.

수동으로 Vertex AI 텐서보드 인스턴스 만들기

수동으로 Vertex AI 텐서보드를 만들 수 있습니다. 이는 Google Cloud 콘솔에 더 익숙한 사용자, CMEK가 사용 설정된 텐서보드가 필요한 사용자(CMEK 참조) 또는 텐서보드 여러 개를 사용하려는 사용자에게 유용합니다. 그런 다음 Vertex AI 실험을 초기화하거나 실험 실행을 시작하거나 학습 코드를 구성할 때 이 인스턴스를 직접 지정할 수 있습니다.

Python용 Vertex AI SDK

Python용 Vertex AI SDK를 사용하여 Vertex AI 텐서보드 인스턴스를 만듭니다.

Python

def create_tensorboard_sample(
    project: str,
    location: str,
    display_name: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    tensorboard = aiplatform.Tensorboard.create(
        display_name=display_name,
        project=project,
        location=location,
    )

    aiplatform.init(
        project=project,
        location=location,
        experiment_tensorboard=tensorboard
    )

    return tensorboard

  • project: 텐서보드 인스턴스를 만들려는 프로젝트의 PROJECT_ID입니다.
  • display_name: Vertex AI 텐서보드 인스턴스를 설명하는 이름입니다.
  • location: 텐서보드 인스턴스를 만들 위치입니다. Vertex AI TensorBoard 위치는 리전별로 다릅니다. Vertex AI TensorBoard를 지원하는 리전을 선택 해야 합니다.

Google Cloud CLI

Google Cloud CLI를 사용하여 Vertex AI 텐서보드 인스턴스를 만듭니다.

  1. gcloud CLI 설치
  2. gcloud init을 실행하여 Google Cloud CLI를 초기화합니다.
  3. 설치를 확인하려면 명령어를 살펴봅니다.
     gcloud ai tensorboards --help 

    명령어에는 create, describe, list, updatedelete가 포함됩니다. 계속하기 전에 필요한 경우 다음 단계를 수행하여 프로젝트와 위치의 기본값을 설정할 수 있습니다.
  4. gcloud CLI에 인증합니다.
    gcloud auth application-default login
  5. 프로젝트 이름과 표시 이름을 제공하여 Vertex AI 텐서보드 인스턴스를 만듭니다. 프로젝트에서 이 단계를 처음 완료하는 데 몇 분 정도 걸릴 수 있습니다. 다음 명령어 끝에 출력되는 Vertex AI 텐서보드 인스턴스 이름(예: projects/123/locations/us-central1/tensorboards/456)을 기록합니다. 이후 단계에서 필요합니다.
    gcloud ai tensorboards create --display-name DISPLAY_NAME \
           --project PROJECT_NAME
         

    다음을 바꿉니다.
    • PROJECT_NAME: 텐서보드 인스턴스를 만들려는 프로젝트
    • DISPLAY_NAME: 텐서보드 인스턴스를 설명하는 이름

Google Cloud 콘솔

Vertex AI 텐서보드 데이터를 암호화하려면 인스턴스를 만들 때 CMEK 키를 사용 설정해야 합니다.

Google Cloud 콘솔을 사용하여 Vertex AI 텐서보드 CMEK가 사용 설정된 인스턴스를 만들려면 다음 단계를 수행합니다.

  1. Vertex AI를 처음 사용하거나 새 프로젝트를 시작하는 경우 프로젝트 및 개발 환경을 설정합니다.
  2. Google Cloud 콘솔의 Vertex AI 섹션에서 실험 페이지로 이동합니다.

    실험 페이지로 이동
  3. 텐서보드 인스턴스 탭으로 이동합니다.
  4. 페이지 상단의 만들기를 클릭합니다.
  5. 리전 드롭다운 목록에서 위치를 선택합니다.
  6. (선택사항) 설명을 추가합니다.
  7. (선택사항) 암호화에서 고객 관리 암호화 키(CMEK)를 선택하고 고객 관리 키를 선택합니다.
  8. 만들기를 클릭하여 TensorBoard 인스턴스를 만듭니다.

텐서보드 인스턴스 만들기

Terraform

다음 샘플에서는 google_vertex_ai_tensorboard Terraform 리소스를 사용하여 암호화되지 않은 Vertex AI TensorBoard 인스턴스를 만듭니다.

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

Terraform

resource "google_vertex_ai_tensorboard" "default" {
  display_name = "vertex-ai-tensorboard-sample-name"
  region       = "us-central1"
}

텐서보드 인스턴스 삭제

텐서보드 인스턴스를 삭제하면 텐서보드, 연결된 모든 텐서보드 실험, 텐서보드 실행이 삭제됩니다. 인스턴스와 연결된 Vertex AI 실험은 삭제되지 않습니다.

Vertex AI 실험과 연결된 Vertex AI 텐서보드 실험을 삭제하려면 실험 삭제를 참조하세요.

Python용 Vertex AI SDK

Python용 Vertex AI SDK를 사용하여 Vertex AI 텐서보드 인스턴스를 삭제합니다.

Python

def delete_tensorboard_instance_sample(
    tensorboard_resource_name: str,
    project: str,
    location: str,
):
    aiplatform.init(project=project, location=location)

    tensorboard = aiplatform.Tensorboard(
        tensorboard_name=tensorboard_resource_name
    )

    tensorboard.delete()

  • tensorboard_resource_name: 텐서보드 리소스 이름을 제공합니다.
  • project: 텐서보드 인스턴스가 있는 PROJECT_ID입니다.
  • location: 텐서보드 인스턴스가 있는 위치입니다.

Google Cloud 콘솔

Google Cloud 콘솔을 사용하여 Vertex AI 텐서보드 인스턴스를 만들려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔의 Vertex AI 섹션에서 실험 페이지로 이동합니다.

    실험 페이지로 이동
  2. 텐서보드 인스턴스 탭을 선택합니다. 텐서보드 인스턴스 목록이 표시됩니다.
  3. 를 선택하고 삭제를 클릭합니다.

텐서보드 인스턴스 삭제

관련 용어

'텐서보드 리소스 이름' 및 '텐서보드 인스턴스 ID는를 여러 샘플에서 참조됩니다.

텐서보드 리소스 이름

텐서보드 리소스 이름은 Vertex AI 텐서보드 인스턴스를 완전히 식별하는 데 사용됩니다. 형식은 다음과 같습니다.

projects/PROJECT_ID_OR_NUMBER/locations/REGION/tensorboards/TENSORBOARD_INSTANCE_ID

텐서보드 리소스 이름은 gcloud CLI 또는 Vertex AI SDK를 사용하여 만들 때 로그 메시지에 출력되거나 적절한 자리표시자 값을 제공하면 생성될 수 있습니다.

Python용 Vertex AI SDK

텐서보드 리소스 이름은 Vertex AI SDK를 사용하는 Vertex AI 실험에서 가져올 수 있습니다.

Python

from google.cloud import aiplatform


def get_experiment_backing_tensorboard_sample(
    experiment_name: str,
    project: str,
    location: str,
):
    backing_tensorboard = aiplatform.Experiment(
        project=project,
        location=location,
        experiment_name=experiment_name
    ).get_backing_tensorboard_resource()

    return backing_tensorboard.name

  • experiment_name: 실험 이름입니다.
  • project: 실험의 PROJECT_ID입니다.
  • location: 실험이 있는 위치입니다.

텐서보드 인스턴스 ID

텐서보드 인스턴스 ID는 텐서보드 인스턴스와 연결된 생성된 ID 값입니다. TENSORBOARD_INSTANCE_ID를 찾으려면 Google Cloud 콘솔의 실험 페이지 Vertex AI 섹션으로 이동하고 텐서보드 인스턴스 탭을 선택합니다.

TensorBoard 리소스 이름에서 인스턴스 ID를 검색할 수도 있습니다. 텐서보드 ID