관리형 학습을 사용하면 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 워크플로에 통합할 수 있도록 모델을 준비합니다.
- 추론을 위해 모델 배포: 학습된 모델을 Gemini Enterprise Agent Platform 엔드포인트에 배포하여 온라인 추론 요청을 처리합니다.
- 모델 수명 주기 관리: Gemini Enterprise Agent Platform Model Registry를 사용하여 학습된 모델을 버전 관리, 추적, 비교하여 모델 거버넌스 및 재현성을 유지합니다.
- 모델 모니터링 설정: 배포 후 성능 드리프트 및 데이터 이상치를 모니터링하여 모델의 프로덕션 내 효과를 유지하십시오.
- 비용 최적화 및 클러스터 관리: 클러스터 사용률을 정기적으로 검토하고 수명 주기를 관리하여 (예: 사용하지 않을 때 클러스터 삭제) 예약된 하드웨어의 비용을 최적화합니다.