Vertex AI는 Gemini 및 지원되는 파트너 모델의 요청 및 응답 샘플을 로깅할 수 있습니다. 로그는 보기 및 분석을 위해 BigQuery 테이블에 저장됩니다. 이 페이지에서는 기본 기반 모델과 미세 조정된 모델의 요청-응답 로그를 구성하는 방법을 설명합니다.
로깅을 위한 지원되는 API 메서드
요청-응답 로그는 generateContent
또는 streamGenerateContent
를 사용하는 모든 Gemini 모델에서 지원됩니다.
rawPredict
또는 streamrawPredict
를 사용하는 다음 파트너 모델도 지원됩니다.
- Anthropic Claude
기본 기반 모델의 요청-응답 로그
REST API 또는 Python SDK를 사용하여 기본 기반 모델의 요청-응답 로그를 구성할 수 있습니다. 로깅 구성이 적용되는 데 몇 분 정도 걸릴 수 있습니다.
요청-응답 로깅 사용 설정
기본 기반 모델에 대한 요청-응답 로그를 사용 설정하는 방법을 알아보려면 다음 탭 중 하나를 선택하세요.
Anthropic 모델의 경우 로깅 구성에 REST만 지원됩니다. 게시자를 anthropic
로 설정하고 모델 이름을 지원되는 Claude 모델 중 하나로 설정하여 REST API를 통해 로깅 구성을 사용 설정합니다.
Python SDK
이 메서드는 PublisherModelConfig
를 만들거나 업데이트하는 데 사용할 수 있습니다.
publisher_model = GenerativeModel('gemini-2.0-pro-001')
# Set logging configuration
publisher_model.set_request_response_logging_config(
enabled=True,
sampling_rate=1.0,
bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME",
enable_otel_logging=True
)
REST API
setPublisherModelConfig
를 사용하여 PublisherModelConfig
를 만들거나 업데이트합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- ENDPOINT_PREFIX: 모델 리소스의 리전이며 뒤에
-
이 옵니다. 예를 들면us-central1-
입니다. 글로벌 엔드포인트를 사용하는 경우 이 필드를 비워 둡니다. 요청-응답 로깅은 모델에서 지원하는 모든 지역에서 지원됩니다. - PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 모델 리소스의 리전입니다.
글로벌 엔드포인트를 사용하는 경우
global
를 입력합니다. - PUBLISHER: 게시자 이름입니다. 예를 들면
google
입니다. - MODEL: 기반 모델 이름입니다. 예를 들면
gemini-2.0-flash-001
입니다. - SAMPLING_RATE: 스토리지 비용을 줄이기 위해 0과 1 사이의 숫자를 설정하여 로깅할 요청의 비율을 정의할 수 있습니다. 예를 들어 값이 1이면 모든 요청이 로깅되고 값이 0.1이면 요청의 10% 가 로깅됩니다.
- BQ_URI: 로깅에 사용할 BigQuery 테이블입니다. 프로젝트 이름만 지정하면
logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID
라는 이름으로 새 데이터 세트가 생성됩니다. 여기서ENDPOINT_DISPLAY_NAME
은 BigQuery 이름 지정 규칙을 따릅니다. 테이블 이름을 지정하지 않으면request_response_logging
이라는 이름의 새 테이블이 생성됩니다.
HTTP 메서드 및 URL:
POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
JSON 요청 본문:
{ "publisherModelConfig": { "loggingConfig": { "enabled": true, "samplingRate": SAMPLING_RATE, "bigqueryDestination": { "outputUri": "BQ_URI" }, "enableOtelLogging": true } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
로깅 구성 가져오기
REST API를 사용하여 기반 모델의 요청-응답 로깅 구성을 가져옵니다.
REST API
fetchPublisherModelConfig
를 사용하여 요청-응답 로깅 구성을 가져옵니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 모델 리소스의 위치입니다.
- PUBLISHER: 게시자 이름입니다. 예를 들면
google
입니다. - MODEL: 기반 모델 이름입니다. 예를 들면
gemini-2.0-flash-001
입니다.
HTTP 메서드 및 URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
로깅 중지
REST API 또는 Python SDK를 사용하여 기반 모델의 요청-응답 로깅을 사용 중지합니다.
Python SDK
publisher_model.set_request_response_logging_config(
enabled=False,
sampling_rate=0,
bigquery_destination=''
)
REST API
setPublisherModelConfig
를 사용하여 로깅을 사용 중지합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 모델 리소스의 위치입니다.
- PUBLISHER: 게시자 이름입니다. 예를 들면
google
입니다. - MODEL: 기반 모델 이름입니다. 예를 들면
gemini-2.0-flash-001
입니다.
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
JSON 요청 본문:
{ "publisherModelConfig": { "loggingConfig": { "enabled": false } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
미세 조정된 모델의 요청-응답 로그
REST API 또는 Python SDK를 사용하여 미세 조정된 모델의 요청-응답 로그를 구성할 수 있습니다.
요청-응답 로그 사용 설정
미세 조정된 모델에 대한 요청-응답 로그를 사용 설정하는 방법을 알아보려면 다음 탭 중 하나를 선택하세요.
Python SDK
이 메서드는 엔드포인트의 요청-응답 로깅 구성을 업데이트하는 데 사용할 수 있습니다.
tuned_model = GenerativeModel("projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID")
# Set logging configuration
tuned_model.set_request_response_logging_config(
enabled=True,
sampling_rate=1.0,
bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME",
enable_otel_logging=True
)
REST API
요청-응답 로깅은 projects.locations.endpoints.create
를 사용하여 엔드포인트를 만들거나 projects.locations.endpoints.patch
를 사용하여 기존 엔드포인트를 패치할 때만 사용 설정할 수 있습니다.
요청과 응답은 엔드포인트 수준에서 로깅되므로 동일한 엔드포인트에 있는 배포된 모델로 전송된 요청은 로깅됩니다.
엔드포인트를 만들거나 패치할 때 엔드포인트 리소스의 predictRequestResponseLoggingConfig
필드를 다음 항목으로 채웁니다.
enabled
:True
로 설정하여 요청-응답 로깅을 사용 설정합니다.samplingRate
: 스토리지 비용을 줄이기 위해 0과 1 사이의 숫자를 설정하여 로깅할 요청의 비율을 정의할 수 있습니다. 예를 들어 값이 1이면 모든 요청이 로깅되고 값이 0.1이면 요청의 10% 가 로깅됩니다.BigQueryDestination
: 로깅에 사용할 BigQuery 테이블입니다. 프로젝트 이름만 지정하면logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
라는 이름으로 새 데이터 세트가 생성됩니다. 여기서ENDPOINT_DISPLAY_NAME
은 BigQuery 이름 지정 규칙을 따릅니다. 테이블 이름을 지정하지 않으면request_response_logging
이라는 이름의 새 테이블이 생성됩니다.enableOtelLogging
:true
로 설정하여 기본 요청-응답 로깅 외에도 OpenTelemetry (OTEL) 로깅을 사용 설정합니다.
BigQuery 테이블 스키마를 보려면 로그 테이블 스키마를 참고하세요.
다음은 구성 예시입니다.
{ "predictRequestResponseLoggingConfig": { "enabled": true, "samplingRate": 0.5, "bigqueryDestination": { "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" }, "enableOtelLogging": true } }
로깅 구성 가져오기
REST API를 사용하여 미세 조정된 모델의 요청-응답 로깅 구성을 가져옵니다.
REST API
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 엔드포인트 리소스의 위치입니다.
- MODEL: 기반 모델 이름입니다. 예를 들면
gemini-2.0-flash-001
입니다. - ENDPOINT_ID: 엔드포인트의 ID입니다.
HTTP 메서드 및 URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
로깅 구성 사용 중지
엔드포인트의 요청-응답 로깅 구성을 사용 중지합니다.
Python SDK
tuned_model = GenerativeModel("projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID")
# Set logging configuration
tuned_model.set_request_response_logging_config(
enabled=False,
sampling_rate=1.0,
bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME",
enable_otel_logging=False
)
REST API
{ "predictRequestResponseLoggingConfig": { "enabled": false } }
로깅 테이블 스키마
BigQuery에서는 다음 스키마를 사용하여 로그가 기록됩니다.
필드 이름 | 유형 | 참고 |
---|---|---|
endpoint | 문자열 | 조정된 모델이 배포된 엔드포인트의 리소스 이름입니다. |
deployed_model_id | 문자열 | 엔드포인트에 배포된 조정된 모델의 배포된 모델 ID입니다. |
logging_time | TIMESTAMP | 로깅이 실행된 시간입니다. 대략 응답이 반환되는 시간입니다. |
request_id | 숫자 형식 | API 요청을 기반으로 자동 생성된 정수 요청 ID입니다. |
request_payload | 문자열 | 파트너 모델 로깅 및 Vertex AI 엔드포인트 요청-응답 로그와의 하위 호환성을 위해 포함되었습니다. |
response_payload | 문자열 | 파트너 모델 로깅 및 Vertex AI 엔드포인트 요청-응답 로그와의 하위 호환성을 위해 포함되었습니다. |
모델 | 문자열 | 모델 리소스 이름입니다. |
model_version | 문자열 | 모델 버전입니다. Gemini 모델의 경우 '기본값'인 경우가 많습니다. |
api_method | 문자열 | generateContent, streamGenerateContent, rawPredict, streamRawPredict |
full_request | JSON | 전체 GenerateContentRequest |
full_response | JSON | 전체 GenerateContentResponse |
메타데이터 | JSON | 호출의 메타데이터입니다. 요청 지연 시간이 포함됩니다. |
otel_log | JSON | OpenTelemetry 스키마 형식의 로그 로깅 구성에서 otel_logging 가 사용 설정된 경우에만 사용할 수 있습니다. |
BigQuery write API 10MB 행 한도보다 큰 요청-응답 쌍은 기록되지 않습니다.
다음 단계
- 온라인 예측 로깅 가격 예측
- Google Cloud 콘솔을 사용하거나 Vertex AI API를 사용하여 모델을 배포합니다.
- BigQuery 테이블 생성 방법 알아보기