Vertex AI 텐서보드로 작업 시각화

Gemini Enterprise Agent Platform 관리형 학습에 관심이 있으면 영업 담당자에게 문의하여 액세스 권한을 받으세요.

관리형 학습을 사용하면 Vertex AI 텐서보드를 통해 학습 로그를 거의 실시간으로 시각화할 수 있습니다. Cloud Storage 버킷에 로그를 저장하도록 워크로드를 구성하기만 하면, 해당 로그가 자동으로 텐서보드 인터페이스로 스트리밍되어 분석할 수 있습니다.

기본 요건

시작하기 전에 다음 사항을 확인하세요.

  • 실행 중인 관리형 학습 클러스터
  • 텐서보드 로그를 저장할 Cloud Storage 버킷. 이 버킷은 텐서보드 인스턴스와 동일한 리전에 있어야 합니다. 설정 방법은 Cloud Storage 버킷 만들기를 참조하세요.
  • Vertex AI 텐서보드 인스턴스. 만드는 방법은 Vertex AI 텐서보드 인스턴스 만들기를 참조하세요.
  • 올바른 IAM 권한. Cloud Storage FUSE가 스토리지 버킷에 읽기 및 쓰기 작업을 할 수 있도록 클러스터 VM이 사용하는 서비스 계정에 스토리지 객체 사용자(roles/storage.objectUser) 역할이 필요합니다.

텐서보드 업로드 사용 설정

Slurm 작업 제출 시 --extra 플래그를 사용하여 다음 인수를 전달하면 텐서보드 통합을 구성할 수 있습니다.

  • tensorboard_base_output_dir: 로그를 업로드할 Cloud Storage 경로를 지정합니다. 예를 들면 gs://my-bucket/my-logs입니다.

  • tensorboard_url: Vertex AI 텐서보드 인스턴스, 실험 또는 실행 URL을 지정합니다. 인스턴스만 제공하면 새로운 실험과 실행이 생성됩니다. 이 값을 생략하면 프로젝트의 기본 텐서보드 인스턴스가 사용됩니다. 예를 들면 projects/123/locations/us-central1/tensorboards/456입니다.

예

# Using specific tensorboard instance
sbatch --extra="tensorboard_base_output_dir=<your-cloud-storage-dir>,tensorboard_url=projects/<project-id>/locations/<location>/tensorboards/<tensorboard-instance-id>" your_script.sbatch

학습 작업에서 로그 작성

학습 스크립트 내에서 AIP_TENSORBOARD_LOG_DIR 환경 변수에 액세스합니다. 이 변수는 스크립트가 텐서보드 로그를 기록해야 하는 고유한 Cloud Storage 경로를 제공합니다.

경로는 다음 구조를 따릅니다.

gs://<your-cloud-storage-path>/<cluster-id>-<cluster-uuid>/tensorboard/job-<job-id>/

다음 예시는 두 가지 주요 구성요소를 포함한 전체 워크플로를 보여줍니다. 첫 번째는 작업을 구성하는 Slurm 제출 스크립트이고, 두 번째는 환경 변수를 읽어 로그를 기록하는 Python 학습 스크립트입니다.

Slurm 작업 스크립트(simple_job.sbatch):

#!/bin/bash
#SBATCH --job-name=tensorboard-simple-test
#SBATCH --output=tensorboard-simple-test-%j.out
# Activate your Python virtual environment if needed
# source /path/to/your/venv/bin/activate
python3 simple_logger.py

Python 스크립트(simple_logger.py):

import tensorflow as tf
import os

# Get the log directory from the environment variable
log_dir = os.environ.get("AIP_TENSORBOARD_LOG_DIR")

print(f"Writing TensorBoard logs to: {log_dir}")
writer = tf.summary.create_file_writer(log_dir)

with writer.as_default():
    for step in range(10):
        # Simulate some metrics
        loss = 1.0 - (step * 0.1)
        accuracy = 0.6 + (step * 0.04)

        # Log the metrics
        tf.summary.scalar('loss', loss, step=step)
        tf.summary.scalar('accuracy', accuracy, step=step)
        writer.flush()
        print(f"Step {step}: loss={loss:.4f}, accuracy={accuracy:.4f}")

writer.close()
print(f"--- Finished writing metrics to {log_dir} ---")

실시간 로그 동기화

실행 중인 작업의 측정항목을 시각화하려면 학습 코드에서 주기적으로 요약 작성기를 닫았다가 다시 만들어야 합니다. gcsfuse는 로그 파일이 닫힐 때에만 Cloud Storage로 동기화하기 때문입니다. 이러한 "플러시" 기법을 통해 작업이 완료되기 전에 중간 결과가 텐서보드 콘솔에 표시되도록 할 수 있습니다.

Vertex AI 텐서보드 보기

작업을 제출한 후에는 Cloud de Confiance 콘솔의 Vertex AI Experiments 페이지로 이동하여 진행 상황을 모니터링할 수 있습니다.

다음 단계

Vertex AI 텐서보드에서 학습 측정항목을 분석하고, 모델 그래프를 시각화하며, 성능을 프로파일링하여 문제를 디버깅하고, 모델을 최적화하며, 전체 MLOps 워크플로에 통합할 수 있도록 모델을 준비합니다.