실험 실행에 수동으로 데이터 로깅

로깅을 위해 Python용 Vertex AI SDK를 사용합니다.

지원되는 측정항목 및 매개변수:

  • 요약 측정항목
  • 시계열 측정항목
  • 매개변수
  • 분류 측정항목

Python용 Vertex AI SDK

참고: 선택적 resume 매개변수를 TRUE로 지정하면 이전에 시작된 실행이 다시 시작됩니다. 지정되지 않은 경우 resume의 기본값은 FALSE이고 새 실행이 생성됩니다.

다음 샘플은 aiplatform 함수에서 init 메서드를 사용합니다.

요약 측정항목

요약 측정항목은 시계열 측정항목 옆에 저장되는 단일 값 스칼라 측정항목이며 실험 실행의 최종 요약을 나타냅니다.

한 가지 사용 사례는 인내 구성이 지속적인 학습을 허용하지만 최신 시계열 측정항목이 복원된 모델을 대표하지 않기 때문에 후보 모델이 초기 단계에서 복원되고 해당 단계에서 모델에 대해 계산된 측정항목이 요약 측정항목으로 표시됩니다. 요약 측정항목에 대한 log_metrics API가 이 목적으로 사용됩니다.

Python

from typing import Dict

from google.cloud import aiplatform


def log_metrics_sample(
    experiment_name: str,
    run_name: str,
    metrics: Dict[str, float],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name)

    aiplatform.log_metrics(metrics)

  • experiment_name: 실험 이름을 입력합니다. 섹션 탐색 메뉴에서 실험을 선택하면 Google Cloud 콘솔에서 실험 목록을 찾을 수 있습니다.
  • run_name: 실행 이름을 지정합니다(start_run 참조).
  • metric: 측정항목 키-값 쌍입니다. 예를 들면 {'learning_rate': 0.1}입니다.
  • project: 프로젝트 ID 이러한 항목은 Google Cloud 콘솔 시작 페이지에서 찾을 수 있습니다.
  • location: 사용 가능한 위치 목록을 참조하세요.

시계열 측정항목

시계열 측정항목을 로깅하려면 Vertex AI 실험에서 지원 Vertex AI 텐서보드 인스턴스가 필요합니다.

시계열 측정항목 로깅의 백업 Vertex AI 텐서보드 리소스 할당

log_time_series_metrics를 통해 로깅된 모든 측정항목은 시계열 측정항목으로 저장됩니다. Vertex AI 텐서보드는 지원 시계열 측정항목 저장소입니다.

experiment_tensorboard실험실험 실행 수준 모두에서 설정할 수 있습니다. 실행 수준에서 experiment_tensorboard를 설정하면 실험 수준의 설정이 재정의됩니다. 실행에서 experiment_tensorboard를 설정한 다음에는 실행의 experiment_tensorboard를 변경할 수 없습니다.

  • 실험 수준에서 experiment_tensorboard를 설정합니다.
      aiplatform.init(experiment='my-experiment',
                   experiment_tensorboard='projects/.../tensorboard/my-tb-resource')
  • 실행 수준에서 experiment_tensorboard를 설정합니다. 참고: 실험 수준에서 설정을 재정의합니다.
      aiplatform.start_run(run_name='my-other-run',
                        tensorboard='projects/.../.../other-resource')
    aiplatform.log_time_series_metrics(...)

Python

from typing import Dict, Optional

from google.cloud import aiplatform
from google.protobuf import timestamp_pb2


def log_time_series_metrics_sample(
    experiment_name: str,
    run_name: str,
    metrics: Dict[str, float],
    step: Optional[int],
    wall_time: Optional[timestamp_pb2.Timestamp],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_time_series_metrics(metrics=metrics, step=step, wall_time=wall_time)

  • experiment_name: 실험 이름을 입력합니다. 섹션 탐색 메뉴에서 실험을 선택하면 Google Cloud 콘솔에서 실험 목록을 찾을 수 있습니다.
  • run_name: 실행 이름을 지정합니다(start_run 참조).
  • metrics: 키가 측정항목 이름이고 값이 측정항목 값인 사전입니다.
  • step: 선택사항. 실행 내에서 이 데이터 포인트의 단계 색인입니다.
  • wall_time: 선택사항. 이 데이터 포인트가 최종 사용자에 의해 생성된 시간 타임스탬프입니다. 제공하지 않으면 time.time()의 값을 기반으로 wall_time이 생성됩니다.
  • project: 프로젝트 ID 이러한 항목은 Google Cloud 콘솔 시작 페이지에서 찾을 수 있습니다.
  • location: 사용 가능한 위치 목록을 참조하세요.

단계 및 walltime

log_time_series_metrics API는 선택적으로 stepwalltime을 허용합니다.

  • step: 선택사항. 실행 내에서 이 데이터 포인트의 단계 색인입니다. 제공하지 않으면 이미 로깅된 모든 시계열 측정항목 중 최신 단계에 대한 증분이 사용됩니다. 제공된 측정항목 키에 대해 단계가 존재하면 해당 단계를 덮어씁니다.
  • wall_time: 선택사항. 로깅된 측정항목의 epoch 이후 시간(초)입니다. 제공되지 않은 경우 기본값은 Python의 time.time입니다.

예를 들면 다음과 같습니다.

aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00})
특정 단계에 로깅
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=8)
wall_time 포함
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=10)

매개변수

매개변수는 실행을 구성하고, 실행 동작을 조정하고, 실행 결과에 영향을 주는 키가 지정된 입력 값입니다. 예를 들어 학습률, 드롭아웃 비율, 학습 단계 수가 있습니다. log_params 메서드를 사용하여 매개변수를 로깅합니다.

Python

from typing import Dict, Union

from google.cloud import aiplatform


def log_params_sample(
    experiment_name: str,
    run_name: str,
    params: Dict[str, Union[float, int, str]],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_params(params)

aiplatform.log_params({"learning_rate": 0.01, "n_estimators": 10})
  • experiment_name: 실험 이름을 입력합니다. 섹션 탐색 메뉴에서 실험을 선택하면 Google Cloud 콘솔에서 실험 목록을 찾을 수 있습니다.
  • run_name: 실행 이름을 지정합니다(start_run 참조).
  • params: 매개변수 키-값 쌍입니다. 예: {'accuracy': 0.9}(log_params 참조). 시작 페이지.
  • location: 사용 가능한 위치 목록을 참조하세요.

분류 측정항목

요약 측정항목과 시계열 측정항목 외에 혼동 행렬 및 ROC 곡선이 일반적으로 사용되는 측정항목입니다. log_classification_metrics API를 사용하여 Vertex AI Experiments에 로깅할 수 있습니다.

Python

from typing import List, Optional

from google.cloud import aiplatform


def log_classification_metrics_sample(
    experiment_name: str,
    run_name: str,
    project: str,
    location: str,
    labels: Optional[List[str]] = None,
    matrix: Optional[List[List[int]]] = None,
    fpr: Optional[List[float]] = None,
    tpr: Optional[List[float]] = None,
    threshold: Optional[List[float]] = None,
    display_name: Optional[str] = None,
) -> None:
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_classification_metrics(
        labels=labels,
        matrix=matrix,
        fpr=fpr,
        tpr=tpr,
        threshold=threshold,
        display_name=display_name,
    )

  • experiment_name: 실험 이름을 입력합니다. 섹션 탐색 메뉴에서 실험을 선택하면 Google Cloud 콘솔에서 실험 목록을 찾을 수 있습니다.
  • run_name: 실행 이름을 지정합니다(start_run 참조).
  • project: 프로젝트 ID 이러한 항목은 Google Cloud 콘솔 시작 페이지에서 찾을 수 있습니다.
  • location: 사용 가능한 위치 목록을 참조하세요.
  • labels: 혼동 행렬의 라벨 이름 목록입니다. 'matrix'가 설정된 경우 설정해야 합니다.
  • matrix: 혼동 행렬의 값입니다. 'labels'가 설정된 경우 설정해야 합니다.
  • fpr: ROC 곡선의 거짓양성률 목록입니다. 'tpr' 또는 'thresholds'가 설정된 경우 설정해야 합니다.
  • tpr: ROC 곡선의 참양성률 목록입니다. 'fpr' 또는 'thresholds'가 설정된 경우 설정해야 합니다.
  • threshold: ROC 곡선의 임곗값 목록입니다. 'fpr' 또는 'tpr'이 설정된 경우 설정해야 합니다.
  • display_name: 분류 측정항목 아티팩트의 사용자 정의 이름입니다.

Google Cloud 콘솔에서 실험 실행 목록 보기

  1. Google Cloud 콘솔에서 실험 페이지로 이동합니다.
    실험으로 이동
    실험 목록이 표시됩니다.
  2. 확인할 실험을 선택합니다.
    실행 목록이 나타납니다.

Vertex AI 실험 목록 페이지
자세한 내용은 실행 비교 및 분석을 참고하세요.

다음 단계

노트북 튜토리얼

블로그 게시물