이 페이지에서는 Google Cloud 콘솔 또는 Vertex AI API를 사용해서 커스텀 학습 모델에서 일괄 예측을 가져오는 방법을 보여줍니다.
일괄 예측을 요청하려면 입력 소스와 출력 위치를 지정하거나, Vertex AI가 일괄 예측 결과를 저장하는 Cloud Storage 또는 BigQuery를 지정하세요.
제한사항 및 요구사항
일괄 예측을 가져올 때는 다음 제한사항 및 요구사항을 고려하세요.
- 처리 시간을 최소화하려면 입력 위치와 출력 위치가 동일한 리전 또는 멀티 리전에 있어야 합니다. 예를 들어 입력이
us-central1
인 경우 출력은us-central1
또는US
일 수 있지만europe-west4
일 수는 없습니다. 자세히 알아보려면 Cloud Storage 위치 및 BigQuery 위치를 참조하세요. - 입력과 출력도 모델과 동일한 리전 또는 멀티 리전에 있어야 합니다.
- Model Garden 모델은 지원되지 않습니다.
- BigQuery ML 모델은 맞춤 학습된 모델이 아닙니다. 하지만 이 페이지의 정보는 다음과 같은 조건에서 BigQuery ML 모델의 일괄 예측을 가져오는 데 사용할 수 있습니다.
- BigQuery ML 모델은 Vertex AI 모델 레지스트리에 등록되어야 합니다.
- BigQuery 테이블을 입력으로 사용하려면 Vertex AI API를 사용하여
InstanceConfig.instanceType
을"object"
로 설정해야 합니다.
입력 데이터 요구사항
일괄 요청의 입력은 예측을 위해 모델에 보낼 항목을 지정합니다. 다음과 같은 입력 형식이 지원됩니다.
JSON Lines
JSON Lines 파일을 사용하여 예측할 입력 인스턴스 목록을 지정합니다. Cloud Storage 버킷에 파일을 저장합니다.
예시 1
다음 예는 각 줄에 배열이 포함된 JSON Lines 파일을 보여줍니다.
[1, 2, 3, 4]
[5, 6, 7, 8]
다음은 HTTP 요청 본문의 예측 컨테이너로 전송되는 항목입니다.
다른 모든 컨테이너
{"instances": [ [1, 2, 3, 4], [5, 6, 7, 8] ]}
PyTorch 컨테이너
{"instances": [ { "data": [1, 2, 3, 4] }, { "data": [5, 6, 7, 8] } ]}
예시 2
다음 예는 각 줄에 객체가 포함된 JSON Lines 파일을 보여줍니다.
{ "values": [1, 2, 3, 4], "key": 1 }
{ "values": [5, 6, 7, 8], "key": 2 }
다음은 HTTP 요청 본문의 예측 컨테이너로 전송되는 항목입니다. 동일한 요청 본문이 모든 컨테이너로 전송됩니다.
{"instances": [
{ "values": [1, 2, 3, 4], "key": 1 },
{ "values": [5, 6, 7, 8], "key": 2 }
]}
예시 3
PyTorch의 사전 빌드된 TorchServe의 기본 핸들러에서 요청하는 대로 각 인스턴스를 data
필드로 래핑해야 합니다. Vertex AI는 인스턴스를 래핑하지 않습니다. 예를 들면 다음과 같습니다.
{ "data": { "values": [1, 2, 3, 4], "key": 1 } }
{ "data": { "values": [5, 6, 7, 8], "key": 2 } }
다음은 HTTP 요청 본문의 예측 컨테이너로 전송되는 항목입니다.
{"instances": [
{ "data": { "values": [1, 2, 3, 4], "key": 1 } },
{ "data": { "values": [5, 6, 7, 8], "key": 2 } }
]}
TFRecord
입력 인스턴스를 TFRecord 형식으로 저장합니다. 원하는 경우 Gzip으로 TFRecord 파일을 압축할 수 있습니다. TFRecord 파일을 Cloud Storage 버킷에 저장합니다.
Vertex AI는 TFRecord 파일의 각 인스턴스를 바이너리로 읽은 후 b64
라는 단일 키를 사용하여 인스턴스를 JSON 객체로 base64로 인코딩합니다.
다음은 HTTP 요청 본문의 예측 컨테이너로 전송되는 항목입니다.
다른 모든 컨테이너
{"instances": [ { "b64": "b64EncodedASCIIString" }, { "b64": "b64EncodedASCIIString" } ]}
PyTorch 컨테이너
{"instances": [ { "data": {"b64": "b64EncodedASCIIString" } }, { "data": {"b64": "b64EncodedASCIIString" } } ]}
예측 컨테이너가 인스턴스를 디코딩하는 방법을 알고 있는지 확인합니다.
CSV
CSV 파일에서 행마다 입력 인스턴스를 한 개 지정하세요. 첫 번째 행은 헤더 행이어야 합니다. 모든 문자열을 큰따옴표(")로 묶어야 합니다. Vertex AI는 줄바꿈이 포함된 셀 값을 허용하지 않습니다. 따옴표가 없는 값은 부동 소수점 숫자로 읽힙니다.
다음 예시는 두 개의 입력 인스턴스가 있는 CSV 파일을 보여줍니다.
"input1","input2","input3"
0.1,1.2,"cat1"
4.0,5.0,"cat2"
다음은 HTTP 요청 본문의 예측 컨테이너로 전송되는 항목입니다.
다른 모든 컨테이너
{"instances": [ [0.1,1.2,"cat1"], [4.0,5.0,"cat2"] ]}
PyTorch 컨테이너
{"instances": [ { "data": [0.1,1.2,"cat1"] }, { "data": [4.0,5.0,"cat2"] } ]}
파일 목록
각 행이 파일의 Cloud Storage URI인 텍스트 파일을 만듭니다. Vertex AI는 각 파일의 콘텐츠를 바이너리로 읽은 후 b64
라는 단일 키를 사용하여 인스턴스를 JSON 객체로 base64로 인코딩합니다.
Google Cloud 콘솔을 사용하여 일괄 예측을 가져오려면 먼저 Google Cloud 콘솔에 직접 파일 목록을 붙여넣습니다. 그렇지 않으면 목록을 Cloud Storage 버킷에 저장합니다.
다음 예시는 두 개의 입력 인스턴스가 있는 파일 목록을 보여줍니다.
gs://path/to/image/image1.jpg
gs://path/to/image/image2.jpg
다음은 HTTP 요청 본문의 예측 컨테이너로 전송되는 항목입니다.
다른 모든 컨테이너
{ "instances": [ { "b64": "b64EncodedASCIIString" }, { "b64": "b64EncodedASCIIString" } ]}
PyTorch 컨테이너
{ "instances": [ { "data": { "b64": "b64EncodedASCIIString" } }, { "data": { "b64": "b64EncodedASCIIString" } } ]}
예측 컨테이너가 인스턴스를 디코딩하는 방법을 알고 있는지 확인합니다.
BigQuery
BigQuery 테이블을 projectId.datasetId.tableId
로 지정합니다.
Vertex AI는 테이블의 각 행을 JSON 인스턴스로 변환합니다.
예를 들어 테이블에 다음이 포함되어 있다고 가정합니다.
열 1 | 열 2 | 열 3 |
---|---|---|
1.0 | 3.0 | "Cat1" |
2.0 | 4.0 | "Cat2" |
다음은 HTTP 요청 본문의 예측 컨테이너로 전송되는 항목입니다.
다른 모든 컨테이너
{"instances": [ [1.0,3.0,"cat1"], [2.0,4.0,"cat2"] ]}
PyTorch 컨테이너
{"instances": [ { "data": [1.0,3.0,"cat1"] }, { "data": [2.0,4.0,"cat2"] } ]}
BigQuery 데이터 유형이 JSON으로 변환되는 방식은 다음과 같습니다.
BigQuery 유형 | JSON 유형 | 예시 값 |
---|---|---|
문자열 | 문자열 | "abc" |
정수 | 정수 | 1 |
부동 소수점 수 | 부동 소수점 수 | 1.2 |
숫자 | 부동 소수점 수 | 4925.000000000 |
불리언 | 불리언 | true |
TimeStamp | 문자열 | "2019-01-01 23:59:59.999999+00:00" |
날짜 | 문자열 | "2018-12-31" |
시간 | 문자열 | "23:59:59.999999" |
DateTime | 문자열 | "2019-01-01T00:00:00" |
녹화 | 객체 | { "A": 1,"B": 2} |
반복 유형 | Array[Type] | [1, 2] |
중첩 레코드 | 객체 | {"A": {"a": 0}, "B": 1} |
데이터 파티션 나누기
일괄 예측은 맵리듀스를 사용하여 입력을 각 복제본으로 샤딩합니다. 맵리듀스 기능을 사용하려면 입력을 분할할 수 있어야 합니다.
Vertex AI는 BigQuery, 파일 목록, JSON lines 입력을 자동으로 분할합니다.
CSV 파일은 기본적으로 파티션 나누기에 적합하지 않으므로 Vertex AI는 자동으로 파티션을 나누지 않습니다. CSV 파일의 행은 자기 서술적이지 않으며 유형이 지정되지 않고 줄바꿈이 포함될 수 있습니다. 처리량에 민감한 애플리케이션에는 CSV 입력을 사용하지 않는 것이 좋습니다.
TFRecord 입력의 경우 인스턴스를 더 작은 파일로 분할하고 와일드 카드(예: gs://my-bucket/*.tfrecord
)를 사용하여 작업에 파일을 전달하여 데이터의 파티션을 수동으로 나눠야 합니다. 파일 수는 지정된 복제본 수 이상이어야 합니다.
입력 데이터 필터링 및 변환
BatchPredictionJob
요청에서 instanceConfig
를 지정하여 일괄 입력을 필터링하고 변환할 수 있습니다.
필터링을 사용하면 예측 컨테이너에서 커스텀 사전 처리 및 사후 처리를 수행할 필요 없이 예측 요청의 입력 데이터에 있는 특정 필드를 제외하거나 예측 요청의 입력 데이터에 있는 필드 하위 집합만 포함할 수 있습니다. 이는 입력 데이터 파일에 키나 추가 데이터와 같이 모델에 필요하지 않은 열이 있는 경우에 유용합니다.
변환을 사용하면 JSON array
또는 object
형식으로 인스턴스를 예측 컨테이너로 전송할 수 있습니다. 자세한 내용은 instanceType
을 참조하세요.
예를 들어 입력 테이블에 다음이 포함되어 있다고 가정합니다.
customerId | col1 | col2 |
---|---|---|
1001 | 1 | 2 |
1002 | 5 | 6 |
그리고 다음 instanceConfig
을 지정합니다.
{
"name": "batchJob1",
...
"instanceConfig": {
"excludedFields":["customerId"]
"instanceType":"object"
}
}
그런 다음 예측 요청의 인스턴스가 JSON 객체로 전송되고 customerId
열이 제외됩니다.
{"col1":1,"col2":2}
{"col1":5,"col2":6}
다음 instanceConfig
를 지정하면 동일한 결과가 발생하는 점에 유의하세요.
{
"name": "batchJob1",
...
"instanceConfig": {
"includedFields": ["col1","col2"]
"instanceType":"object"
}
}
특성 필터를 사용하는 방법을 보여주는 데모는 특성 필터링을 사용한 커스텀 모델 일괄 예측 노트북을 참고하세요.
일괄 예측 요청
일괄 예측 요청의 경우 Google Cloud 콘솔 또는 Vertex AI API를 사용할 수 있습니다. 제출한 입력 항목 수에 따라 일괄 예측 태스크를 완료하는 데 다소 시간이 걸릴 수 있습니다.
일괄 예측을 요청하면, 사용자가 제공한 커스텀 서비스 계정으로 예측 컨테이너가 실행됩니다. 데이터 소스에서 예측 인스턴스를 읽거나 예측 결과를 쓰는 등의 읽기/쓰기 작업은 기본적으로 BigQuery 및 Cloud Storage에 액세스할 수 있는 Vertex AI 서비스 에이전트를 사용하여 수행됩니다.
Google Cloud 콘솔
Google Cloud 콘솔을 사용하여 일괄 예측을 요청합니다.
- Google Cloud 콘솔의 Vertex AI 섹션에서 일괄 예측 페이지로 이동합니다.
만들기를 클릭하여 새 일괄 예측 창을 엽니다.
일괄 예측 정의에서 다음 단계를 완료합니다.
일괄 예측의 이름을 입력합니다.
모델 이름에서 이 일괄 예측에 사용할 모델의 이름을 선택합니다.
소스 선택에 대해 입력 데이터에 적용되는 소스를 선택합니다.
- 입력 형식을 JSON Lines, CSV 또는 TFRecord로 지정한 경우 Cloud Storage의 파일(JSON Lines, CSV, TFRecord, TFRecord Gzip)을 선택합니다. 그런 다음 소스 경로 필드에 입력 파일을 지정합니다.
- 파일 목록을 입력으로 사용하는 경우 Cloud Storage의 파일(기타)을 선택하고 다음 필드에 파일 목록을 붙여넣습니다.
- BigQuery 입력에 BigQuery 경로를 선택합니다. BigQuery를 입력으로 선택하면 BigQuery를 출력 및 Google 관리 암호화 키로 선택해야 합니다. 고객 관리 암호화 키(CMEK)는 BigQuery에서 입력/출력으로 지원되지 않습니다.
대상 경로 필드에 Vertex AI에서 일괄 예측 출력을 저장할 Cloud Storage 디렉터리를 지정하세요.
원하는 경우 일괄 예측 응답의 일부로 특성 기여 분석을 가져오려면 이 모델에 특성 기여 분석 사용 설정을 선택하면 됩니다. 그런 다음 수정을 클릭하여 설명 설정을 구성합니다. 이전에 모델에 대한 설명 설정을 구성한 경우 설명 설정 수정은 선택사항이며 그렇지 않으면 필요합니다.
일괄 예측 작업의 컴퓨팅 옵션인 컴퓨팅 노드 수, 머신 유형, 원하는 경우 가속기 유형 및 가속기 수를 지정합니다.
선택사항: 일괄 예측을 위한 모델 모니터링 분석은 미리보기로 제공됩니다. 일괄 예측 작업에 편향 감지 구성을 추가하는 방법은 기본 요건을 참조하세요.
이 일괄 예측에 모델 모니터링 사용 설정을 클릭하여 켜거나 끕니다.
학습 데이터 소스를 선택합니다. 선택한 학습 데이터 소스의 데이터 경로 또는 위치를 입력합니다.
선택사항: 알림 기준 아래에서 알림을 트리거할 임곗값을 지정합니다.
알림 이메일의 경우 모델이 알림 기준을 초과하면 알림을 받을 하나 이상의 이메일 주소를 쉼표로 구분하여 입력합니다.
선택사항: 알림 채널의 경우 모델이 알림 기준을 초과할 때 알림을 받을 Cloud Monitoring 채널을 추가합니다. 기존 Cloud Monitoring 채널을 선택하거나 알림 채널 관리를 클릭하여 새 항목을 만들 수 있습니다. Google Cloud 콘솔은 PagerDuty, Slack, Pub/Sub 알림 채널을 지원합니다.
만들기를 클릭합니다.
API
Vertex AI API를 사용하여 일괄 예측 요청을 전송합니다. 일괄 예측을 가져오는 데 사용할 도구에 따라 탭을 선택합니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
LOCATION_ID: 모델이 저장되고 일괄 예측 작업이 실행되는 리전입니다. 예를 들면
us-central1
입니다.PROJECT_ID: 프로젝트 ID
BATCH_JOB_NAME: 일괄 예측 작업의 표시 이름입니다.
MODEL_ID: 예측을 수행하는 데 사용할 모델의 ID입니다.
INPUT_FORMAT: 입력 데이터의 형식(
jsonl
,csv
,tf-record
,tf-record-gzip
또는file-list
)입니다.INPUT_URI: 입력 데이터의 Cloud Storage URI입니다. 와일드 카드를 포함할 수도 있습니다.
OUTPUT_DIRECTORY: Vertex AI에서 출력을 저장할 디렉터리의 Cloud Storage URI입니다.
MACHINE_TYPE: 이 일괄 예측 작업에 사용할 머신 리소스입니다.
원하는 경우 가속기를 사용하도록
machineSpec
필드를 구성할 수 있지만 다음 예시에서는 이를 보여주지 않습니다.BATCH_SIZE: 각 예측 요청에서 전송할 인스턴스 수로, 기본값은 64입니다. 배치 크기를 늘리면 처리량이 증가할 수 있지만 요청 시간 초과가 발생할 수도 있습니다.
STARTING_REPLICA_COUNT: 이 일괄 예측 작업의 노드 수입니다.
HTTP 메서드 및 URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
JSON 요청 본문:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "INPUT_FORMAT", "gcsSource": { "uris": ["INPUT_URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_DIRECTORY", }, }, "dedicatedResources" : { "machineSpec" : { "machineType": MACHINE_TYPE }, "startingReplicaCount": STARTING_REPLICA_COUNT }, "manualBatchTuningParameters": { "batch_size": BATCH_SIZE, } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME 202005291958", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "INPUT_URI" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_DIRECTORY" } }, "state": "JOB_STATE_PENDING", "createTime": "2020-05-30T02:58:44.341643Z", "updateTime": "2020-05-30T02:58:44.341643Z", }
Java
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 Vertex AI Java API 참고 문서를 참조하세요.
Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
다음 샘플에서 PREDICTIONS_FORMAT을 jsonl
로 바꿉니다.
다른 자리표시자를 바꾸는 방법을 알아보려면 이 섹션의 REST & CMD LINE
탭을 참조하세요.
Python
Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 확인하세요.
BigQuery
위의 REST 예에서는 소스와 대상에 Cloud Storage를 사용합니다. 대신 BigQuery를 사용하려면 다음과 같이 변경하세요.
inputConfig
필드를 다음과 같이 변경합니다."inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "bq://SOURCE_PROJECT_ID.SOURCE_DATASET_NAME.SOURCE_TABLE_NAME" } }
outputConfig
필드를 다음과 같이 변경합니다."outputConfig": { "predictionsFormat":"bigquery", "bigqueryDestination":{ "outputUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_DATASET_NAME.DESTINATION_TABLE_NAME" } }
다음을 바꿉니다.
SOURCE_PROJECT_ID
: 소스 Google Cloud 프로젝트의 ID입니다.SOURCE_DATASET_NAME
: 소스 BigQuery 데이터 세트의 이름SOURCE_TABLE_NAME
: BigQuery 소스 테이블 이름DESTINATION_PROJECT_ID
: 대상 Google Cloud 프로젝트의 IDDESTINATION_DATASET_NAME
: BigQuery 대상 데이터 세트의 이름DESTINATION_TABLE_NAME
: BigQuery 대상 테이블 이름
특성 중요도
예측에 특성 중요도 값을 반환하려면 generateExplanation
속성을 true
로 설정합니다. 예측 모델은 특성 중요도를 지원하지 않으므로 일괄 예측 요청에 포함할 수 없습니다.
특성 기여 분석이라고도 하는 특성 중요도는 Vertex Explainable AI의 일부입니다.
설명을 위해 Model
을 구성했거나 BatchPredictionJob
의 explanationSpec
필드를 지정한 경우에만 generateExplanation
을 true
로 설정할 수 있습니다.
머신 유형 및 복제본 수 선택
복제본 수를 늘려 수평으로 확장하면 더 큰 머신 유형을 사용할 때보다 처리량이 더욱 선형적이고 예측 가능하게 개선됩니다.
일반적으로 작업에 가능한 가장 작은 머신 유형을 지정하고 복제본 수를 늘리는 것이 좋습니다.
비용 효율을 위해 일괄 예측 작업이 10분 이상 실행되도록 복제본 수를 선택하는 것이 좋습니다. 각 복제본이 시작될 때마다 소요되는 약 5분을 포함하여 복제본 노드 시간당 요금이 부과되기 때문입니다. 몇 초만 처리하고 종료하는 방식은 비용 효율적이지 않습니다.
일반적으로 수천 개의 인스턴스의 경우 수십 개 단위의 starting_replica_count
를 사용하는 것이 좋습니다. 인스턴스가 수백만 개라면 수백 개 단위의 starting_replica_count
가 권장됩니다. 또한 다음 공식을 사용하여 복제본 수를 추정할 수 있습니다.
N / (T * (60 / Tb))
각 항목의 의미는 다음과 같습니다.
- N: 작업의 배치 수입니다. 예를 들어 100만 개의 인스턴스/100개의 배치 크기 = 10,000개의 배치입니다.
- T: 일괄 예측 작업의 예상 시간입니다. 예를 들면 10분입니다.
- Tb: 복제본이 단일 일괄 처리를 처리하는 데 걸리는 시간(초)입니다. 예를 들어 2코어 머신 유형에서는 배치당 1초입니다.
이 예시에서는 배치 10,000개/(10분 * (60/1초))가 복제본 17개로 올림됩니다.
온라인 예측과 달리 일괄 예측 작업은 자동 확장을 수행하지 않습니다. 모든 입력 데이터를 미리 알고 있으므로 작업이 시작될 때 시스템은 데이터를 각 복제본으로 분할합니다. 시스템은 starting_replica_count
매개변수를 사용합니다. max_replica_count
매개변수는 무시됩니다.
이 권장사항은 모두 대략적인 가이드라인입니다. 모든 모델에 대해 최적의 처리량을 제공한다는 보장은 없습니다. 처리 시간과 비용에 대한 정확한 예측을 제공하지는 않습니다. 또한 각 시나리오에 대해 비용 대비 처리량 측면에서 최적의 절충점을 반드시 포착하지는 못합니다. 적절한 시작점으로 사용하고 필요에 따라 조정하세요. 모델의 처리량과 같은 특성을 측정하려면 이상적인 머신 유형 찾기 노트북을 실행하세요.
GPU 또는 TPU 가속 머신
추가 고려 사항과 더불어 이전 가이드라인(CPU 전용 모델에도 적용됨)을 따릅니다.
- CPU와 GPU가 더 필요할 수 있습니다(예: 데이터 전처리).
- GPU 머신 유형은 시작하는 데 시간이 더 오래 걸리므로(10분) 일괄 예측 작업의 경우 더 긴 시간(예: 10분 대신 20분 이상)을 목표로 하여 예측 수행에 적절한 비율의 시간과 비용이 소요되도록 하는 것이 좋습니다.
일괄 예측 결과 검색
일괄 예측 태스크가 완료되면 예측 출력은 요청에서 지정한 Cloud Storage 버킷 또는 BigQuery 위치에 저장됩니다.
일괄 예측 결과 예시
출력 폴더에는 JSON Line 파일 집합이 있습니다.
파일 이름은 {gcs_path}/prediction.results-{file_number}-of-{number_of_files_generated}
입니다.
일괄 예측의 분산된 특성으로 인해 파일 수는 비결정적입니다.
파일의 각 줄은 입력의 인스턴스에 해당하며 다음과 같은 키-값 쌍이 있습니다.
prediction
: 예측 컨테이너에서 반환된 값이 포함됩니다.instance
: 파일 목록의 경우 Cloud Storage URI가 포함됩니다. 다른 모든 입력 형식의 경우 HTTP 요청 본문의 예측 컨테이너로 전송된 값이 포함됩니다.
예시 1
HTTP 요청에 다음이 포함된 경우 다음을 실행합니다.
{
"instances": [
[1, 2, 3, 4],
[5, 6, 7, 8]
]}
예측 컨테이너에서 다음을 반환합니다.
{
"predictions": [
[0.1,0.9],
[0.7,0.3]
],
}
JSON Lines 출력 파일은 다음과 같습니다.
{ "instance": [1, 2, 3, 4], "prediction": [0.1,0.9]}
{ "instance": [5, 6, 7, 8], "prediction": [0.7,0.3]}
예시 2
HTTP 요청에 다음이 포함된 경우 다음을 실행합니다.
{
"instances": [
{"values": [1, 2, 3, 4], "key": 1},
{"values": [5, 6, 7, 8], "key": 2}
]}
예측 컨테이너에서 다음을 반환합니다.
{
"predictions": [
{"result":1},
{"result":0}
],
}
JSON Lines 출력 파일은 다음과 같습니다.
{ "instance": {"values": [1, 2, 3, 4], "key": 1}, "prediction": {"result":1}}
{ "instance": {"values": [5, 6, 7, 8], "key": 2}, "prediction": {"result":0}}
Explainable AI 사용
많은 양의 데이터에는 특성 기반 설명을 실행하지 않는 것이 좋습니다. 이는 각 입력이 가능한 특성 값 세트에 따라 수천 개의 요청으로 팬아웃될 수 있으며, 이로 인해 처리 시간과 비용이 크게 증가할 수 있기 때문입니다. 일반적으로 작은 데이터 세트로도 특성 중요도를 파악할 수 있습니다.
일괄 예측에서는 예시 기반 설명을 지원하지 않습니다.
Notebooks
다음 단계
- 예측용 Compute 리소스 알아보기