온라인 예측 로깅

AutoML 테이블 형식 모델, AutoML 이미지 모델, 커스텀 학습 모델에서는 모델 배포 또는 엔드포인트 생성 중에 로그를 사용 설정하거나 사용 중지할 수 있습니다. 이 페이지에서는 사용 가능한 여러 예측 로그 유형과 이러한 로그를 사용 설정하거나 사용 중지하는 방법을 설명합니다.

예측 로그 유형

예측 노드에서 정보를 가져오는 데 사용할 수 있는 예측 로그에는 여러 가지 유형이 있습니다.

  • 컨테이너 로깅: 예측 노드의 stdoutstderr 스트림을 Cloud Logging에 로깅합니다. 이러한 로그는 디버깅에 필요합니다.

    • v1 서비스 엔드포인트에서 컨테이너 로깅이 기본적으로 사용 설정됩니다. 모델을 배포할 때 이를 사용 중지할 수 있습니다. 또한 배포된 모델을 변형할 때 로깅을 사용 중지 또는 사용 설정할 수 있습니다.

    • v1beta1 서비스 엔드포인트에서 컨테이너 로깅이 기본적으로 사용 중지됩니다. 모델을 배포할 때 이를 사용 설정할 수 있습니다. 또한 배포된 모델을 변형할 때 로깅을 사용 중지 또는 사용 설정할 수 있습니다.

  • 액세스 로깅: Cloud Logging에 대한 각 요청의 타임스탬프 및 지연 시간과 같은 정보를 로깅합니다.

    v1v1beta1 서비스 엔드포인트 모두 액세스 로깅은 기본적으로 중지되어 있습니다. 엔드포인트에 모델을 배포할 때 액세스 로깅을 사용 설정할 수 있습니다.

  • 요청-응답 로깅: BigQuery 테이블에 대한 온라인 예측 요청 및 응답의 샘플을 로깅합니다.

    예측 엔드포인트를 만들거나 패치하여 요청-응답 로깅을 사용 설정할 수 있습니다.

각 로그 유형을 개별적으로 사용 설정하거나 중지할 수 있습니다.

예측 로그 설정

엔드포인트를 만들거나, 모델을 엔드포인트에 배포하거나, 배포된 모델을 변경할 때 온라인 예측 로그를 사용 설정하거나 사용 중지할 수 있습니다.

액세스 로그의 설정을 업데이트하려면 모델 배포를 취소한 후 새 설정으로 모델을 다시 배포해야 합니다. 모델을 다시 배포하지 않고 컨테이너 로그의 설정을 업데이트할 수 있습니다.

대량의 초당 쿼리 수(QPS)에 대해 온라인 예측을 수행하면 상당히 많은 수의 로그가 생성되며 Cloud Logging 가격 책정이 적용됩니다. 온라인 예측 로그의 가격을 산출하려면 로깅의 예상 청구액 확인을 참조하세요. 이 비용을 줄이려면 예측 로깅을 중지하면 됩니다.

예측 로그 사용 설정 및 사용 중지

다음 예시에서는 기본 로그 설정을 수정할 위치를 강조표시합니다.

콘솔

엔드포인트에 모델을 배포하거나 Google Cloud Console에서 새 엔드포인트를 만들 때 로깅 단계에서 사용 설정할 예측 로그 유형을 지정할 수 있습니다. 액세스 로깅 또는 컨테이너 로깅을 사용 설정하려면 체크박스를 선택하거나 이러한 로그를 중지하려면 체크박스를 선택 취소합니다.

REST API를 사용하여 컨테이너 로그의 설정을 업데이트합니다.

REST API를 사용하여 요청-응답 로깅을 사용 설정합니다. Google Cloud Console 및 gcloud CLI는 요청-응답 로깅 구성을 지원하지 않습니다.

모델 배포 방법에 대한 자세한 내용은 Google Cloud Console을 사용한 모델 배포를 참조하세요.

gcloud

배포된 모델에서 로그가 사용 설정되는 기본 동작을 변경하려면 플래그를 gcloud 명령어에 추가합니다.

v1 서비스 엔드포인트

gcloud ai endpoints deploy-model을 실행합니다.

gcloud ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --disable-container-logging \
  --enable-access-logging

v1beta1 서비스 엔드포인트

gcloud beta ai endpoints deploy-model을 실행합니다.

gcloud beta ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --enable-access-logging \
  --enable-container-logging

REST API를 사용하여 컨테이너 로그의 설정을 업데이트합니다.

REST API를 사용하여 요청-응답 로깅을 사용 설정합니다. Google Cloud Console 및 gcloud CLI는 요청-응답 로깅 구성을 지원하지 않습니다.

모델 배포 방법에 대한 자세한 내용은 Vertex AI API를 사용한 모델 배포를 참고하세요.

REST

배포된 모델에서 로그가 사용 설정되는 기본 동작을 변경하려면 관련 필드를 True로 설정합니다.

v1 서비스 엔드포인트

컨테이너 로깅을 사용 중지하려면 projects.locations.endpoints.deployModel 또는 projects.locations.endpoints.mutateDeployedModel을 호출할 때 disableContainerLogging 필드를 True로 설정합니다.

액세스 로깅을 사용 설정하려면 projects.locations.endpoints.deployModel을 사용하여 모델을 배포할 때 enableAccessLoggingTrue로 설정합니다.

v1beta1 서비스 엔드포인트

컨테이너 로깅을 사용 설정하려면 projects.locations.endpoints.deployModel 또는 projects.locations.endpoints.mutateDeployedModel을 호출할 때 enableContainerLogging 필드를 True로 설정합니다.

액세스 로깅을 사용 설정하려면 projects.locations.endpoints.deployModel을 사용하여 모델을 배포할 때 enableAccessLoggingTrue로 설정합니다.

모델 배포 방법에 대한 자세한 내용은 Vertex AI API를 사용한 모델 배포를 참고하세요.

요청-응답 로깅

요청-응답 로깅은 projects.locations.endpoints.create를 사용하여 엔드포인트 생성을 전송하거나 projects.locations.endpoints.patch를 사용하여 기존 엔드포인트를 패치할 때만 사용 설정할 수 있습니다.

요청-응답 로깅은 엔드포인트 수준에서 수행되므로 동일한 엔드포인트에 있는 배포된 모델로 전송된 요청은 로깅됩니다.

엔드포인트를 만들거나 패치할 때 엔드포인트 리소스predictRequestResponseLoggingConfig 필드를 다음 항목으로 채웁니다.

  • enabled: True로 설정하여 요청-응답 로깅을 사용 설정합니다.

  • samplingPercentage: 로깅할 요청의 비율을 정의하는 0 또는 1 사이의 숫자입니다. 예를 들어 모든 요청을 로깅하려면 이 값을 1로 설정하고, 10%의 요청을 로깅하려면 0.1로 설정합니다.

  • BigQueryDestination: 로깅에 사용할 BigQuery 테이블입니다. 프로젝트 이름만 지정하면 logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID라는 이름으로 새 데이터 세트가 생성됩니다. 여기서 ENDPOINT_DISPLAY_NAMEBigQuery 이름 지정 규칙을 따릅니다. 테이블 이름을 지정하지 않으면 request_response_logging이라는 이름의 새 테이블이 생성됩니다.

    BigQuery 테이블의 스키마는 다음과 같이 나타납니다.

    필드 이름유형모드
    endpoint문자열null 허용
    deployed_model_id문자열null 허용
    logging_time타임스탬프null 허용
    request_idNUMERICnull 허용
    request_payload문자열반복
    response_payload문자열반복

다음은 구성 예시입니다.

{
   "predict_request_response_logging_config": {
     "enabled": true,
     "sampling_rate": 0.5,
     "bigquery_destination": {
       "output_uri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
     }
}

요청-응답 로깅 및 모델 모니터링

요청-응답 로깅과 모델 모니터링은 백엔드의 동일한 BigQuery 테이블을 사용하여 수신 요청을 로깅합니다. 이 BigQuery 테이블의 예기치 않은 변경을 방지하기 위해 두 기능을 동시에 사용할 때는 다음과 같은 제한사항이 적용됩니다.

  • 엔드포인트에 모델 모니터링이 사용 설정된 경우 동일한 엔드포인트에 요청-응답 로깅을 사용 설정할 수 없습니다.

  • 요청-응답 로깅을 사용 설정한 후 동일한 엔드포인트에서 모델 모니터링을 사용 설정하면 요청-응답 로깅 구성을 변경할 수 없습니다.

다음 단계